{"version":3,"sources":["webpack://[name]/webpack/universalModuleDefinition","webpack://[name]/webpack/bootstrap","webpack://[name]/./node_modules/axios/lib/utils.js","webpack://[name]/./src/template/video.art","webpack://[name]/./node_modules/axios/index.js","webpack://[name]/./node_modules/css-loader/dist/runtime/api.js","webpack://[name]/(webpack)/buildin/global.js","webpack://[name]/./node_modules/process/browser.js","webpack://[name]/./node_modules/axios/lib/helpers/bind.js","webpack://[name]/./node_modules/axios/lib/helpers/buildURL.js","webpack://[name]/./node_modules/axios/lib/cancel/isCancel.js","webpack://[name]/./node_modules/axios/lib/defaults.js","webpack://[name]/./node_modules/axios/lib/adapters/xhr.js","webpack://[name]/./node_modules/axios/lib/core/createError.js","webpack://[name]/./node_modules/axios/lib/core/mergeConfig.js","webpack://[name]/./node_modules/axios/lib/cancel/Cancel.js","webpack://[name]/./node_modules/art-template/lib/runtime.js","webpack://[name]/./node_modules/promise-polyfill/src/index.js","webpack://[name]/./node_modules/promise-polyfill/src/finally.js","webpack://[name]/./src/assets/play.svg","webpack://[name]/./src/assets/pause.svg","webpack://[name]/./src/assets/volume-up.svg","webpack://[name]/./src/assets/volume-down.svg","webpack://[name]/./src/assets/volume-off.svg","webpack://[name]/./src/assets/full.svg","webpack://[name]/./src/assets/full-web.svg","webpack://[name]/./src/assets/setting.svg","webpack://[name]/./src/assets/right.svg","webpack://[name]/./src/assets/comment.svg","webpack://[name]/./src/assets/comment-off.svg","webpack://[name]/./src/assets/send.svg","webpack://[name]/./src/assets/pallette.svg","webpack://[name]/./src/assets/camera.svg","webpack://[name]/./src/assets/airplay.svg","webpack://[name]/./src/assets/subtitle.svg","webpack://[name]/./src/assets/loading.svg","webpack://[name]/./src/template/player.art","webpack://[name]/./src/css/index.scss?c83e","webpack://[name]/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://[name]/./src/css/index.scss","webpack://[name]/./node_modules/balloon-css/balloon.css","webpack://[name]/./node_modules/timers-browserify/main.js","webpack://[name]/./node_modules/setimmediate/setImmediate.js","webpack://[name]/./node_modules/axios/lib/axios.js","webpack://[name]/./node_modules/axios/lib/core/Axios.js","webpack://[name]/./node_modules/axios/lib/core/InterceptorManager.js","webpack://[name]/./node_modules/axios/lib/core/dispatchRequest.js","webpack://[name]/./node_modules/axios/lib/core/transformData.js","webpack://[name]/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://[name]/./node_modules/axios/lib/core/settle.js","webpack://[name]/./node_modules/axios/lib/core/enhanceError.js","webpack://[name]/./node_modules/axios/lib/core/buildFullPath.js","webpack://[name]/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://[name]/./node_modules/axios/lib/helpers/combineURLs.js","webpack://[name]/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://[name]/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://[name]/./node_modules/axios/lib/helpers/cookies.js","webpack://[name]/./node_modules/axios/lib/cancel/CancelToken.js","webpack://[name]/./node_modules/axios/lib/helpers/spread.js","webpack://[name]/./node_modules/art-template/lib/compile/runtime.js","webpack://[name]/./src/js/utils.js","webpack://[name]/./src/js/api.js","webpack://[name]/./src/js/options.js","webpack://[name]/./src/js/i18n.js","webpack://[name]/./src/js/icons.js","webpack://[name]/./src/js/template.js","webpack://[name]/./src/js/danmaku.js","webpack://[name]/./src/js/events.js","webpack://[name]/./src/js/fullscreen.js","webpack://[name]/./src/js/user.js","webpack://[name]/./src/js/subtitle.js","webpack://[name]/./src/js/bar.js","webpack://[name]/./src/js/timer.js","webpack://[name]/./src/js/bezel.js","webpack://[name]/./src/js/thumbnails.js","webpack://[name]/./src/js/controller.js","webpack://[name]/./src/js/setting.js","webpack://[name]/./src/js/comment.js","webpack://[name]/./src/js/hotkey.js","webpack://[name]/./src/js/contextmenu.js","webpack://[name]/./src/js/info-panel.js","webpack://[name]/./src/js/player.js","webpack://[name]/./src/js/index.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","obj","iterator","constructor","toString","isArray","val","isUndefined","isObject","isFunction","forEach","fn","length","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","document","merge","result","assignValue","arguments","deepMerge","extend","a","b","thisArg","trim","str","replace","useSourceMap","list","this","map","item","content","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","JSON","stringify","data","concat","sourceURLs","sources","source","sourceRoot","join","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","id","_i","push","g","Function","e","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","utils","encode","url","params","paramsSerializer","serializedParams","parts","v","toISOString","hashmarkIndex","indexOf","slice","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","adapter","defaults","XMLHttpRequest","transformRequest","transformResponse","parse","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","method","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","config","Promise","resolve","reject","requestData","requestHeaders","request","auth","username","password","Authorization","fullPath","baseURL","open","toUpperCase","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","cookies","xsrfValue","withCredentials","read","undefined","toLowerCase","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","enhanceError","message","code","error","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","prop","axiosKeys","otherKeys","keys","filter","Cancel","setTimeoutFunc","x","Boolean","TypeError","_state","_handled","_value","_deferreds","doResolve","handle","self","deferred","_immediateFn","cb","onFulfilled","onRejected","ret","newValue","finale","_unhandledRejectionFn","Handler","done","reason","ex","prom","all","arr","remaining","res","race","setImmediate","err","console","warn","callback","api","default","options","locals","memo","isOldIE","atob","getTarget","target","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","stylesInDom","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","count","index","css","media","references","updater","addStyle","insertStyleElement","style","createElement","attributes","nonce","setAttribute","insert","appendChild","textStore","replaceText","replacement","applyToSingletonTag","remove","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","removeAttribute","firstChild","singleton","singletonCounter","update","styleIndex","parentNode","removeStyleElement","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","splice","___CSS_LOADER_API_IMPORT___","___CSS_LOADER_AT_RULE_IMPORT_0___","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","clearImmediate","global","registerImmediate","html","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","getPrototypeOf","runIfPresent","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","event","port2","documentElement","script","Math","random","attachEvent","task","Axios","mergeConfig","createInstance","defaultConfig","context","instance","axios","instanceConfig","CancelToken","isCancel","promises","spread","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","unshift","fulfilled","rejected","shift","getUri","handlers","use","eject","h","transformData","throwIfCancellationRequested","throwIfRequested","fns","normalizedName","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","isAbsoluteURL","combineURLs","requestedURL","test","relativeURL","ignoreDuplicateOf","parsed","split","line","substr","originURL","msie","userAgent","urlParsingNode","resolveURL","href","protocol","host","search","hash","hostname","port","pathname","charAt","location","requestURL","write","expires","path","domain","secure","cookie","Date","toGMTString","match","RegExp","decodeURIComponent","now","executor","resolvePromise","token","globalThis","runtime","ESCAPE_REG","$escape","regexResult","exec","lastIndex","_char","charCodeAt","substring","xmlEscape","$each","isMobile","secondToTime","second","Infinity","hour","floor","min","sec","num","getElementViewLeft","element","actualLeft","offsetLeft","current","offsetParent","elementScrollLeft","body","scrollLeft","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","getBoundingClientRectViewLeft","scrollTop","scrollY","pageYOffset","getBoundingClientRect","offset","temp","top","rect","left","getScrollPosition","pageXOffset","setScrollPosition","_ref","_ref$left","_ref$top","isFirefox","scrollTo","isSafari","isChrome","storage","set","localStorage","setItem","getItem","nameMap","dragStart","dragMove","dragEnd","color2Number","color","parseInt","number2Color","number2Type","post","success","msg","time","type","author","text","defaultOption","container","getElementsByClassName","live","autoplay","theme","loop","lang","language","browserLanguage","screenshot","airplay","hotkey","preload","volume","playbackSpeed","apiBackend","video","contextmenu","mutex","pluginOptions","hls","flv","dash","webtorrent","defaultKey","danmaku","user","subtitle","fontSize","bottom","quality","defaultQuality","click","player","infoPanel","triggle","link","tranTxt","Top","Bottom","Rolling","Loop","Speed","Normal","FF","REW","Setting","Send","Screenshot","AirPlay","Volume","Live","_this","tran","play","pause","volumeUp","volumeDown","volumeOff","full","fullWeb","setting","right","comment","commentOff","pallette","camera","loading","_defineProperties","props","descriptor","configurable","writable","Template","Constructor","_classCallCheck","init","protoProps","staticProps","innerHTML","icons","mobile","pic","volumeBar","volumeBarWrap","volumeBarWrapWrap","volumeButton","volumeButtonIcon","volumeIcon","playedBar","loadedBar","playedBarWrap","playedBarTime","danmakuLoading","bezel","playButton","mobilePlayButton","videoWrap","controllerMask","ptime","settingButton","settingBox","mask","loopToggle","showDanmaku","showDanmakuToggle","unlimitDanmaku","unlimitDanmakuToggle","speed","speedItem","querySelectorAll","danmakuOpacityBar","danmakuOpacityBarWrap","danmakuOpacityBarWrapWrap","danmakuOpacityBox","dtime","controller","commentInput","commentButton","commentSettingBox","commentSettingButton","commentSettingFill","commentSendButton","commentSendFill","commentColorSettingBox","browserFullButton","webFullButton","menu","menuItem","qualityList","camareButton","airplayButton","subtitleButton","subtitleButtonInner","qualityButton","barPreview","barWrap","notice","infoPanelClose","infoVersion","infoFPS","infoType","infoUrl","infoResolution","infoDuration","infoDanmakuId","infoDanmakuApi","infoDanmakuAmount","Danmaku","danTunnel","danIndex","dan","showing","_opacity","opacity","events","unlimited","_measure","load","apiurl","maximum","address","endpoints","addition","trigger","_readAllEndpoints","results","sort","requestAnimationFrame","frame","newAPI","clear","_this2","readCount","_loop","_this3","danmakuData","htmlEncode","border","borderColor","draw","_this4","paused","parseFloat","percentage","items","_this5","itemHeight","height","danWidth","offsetWidth","danHeight","offsetHeight","itemY","danItemRight","ele","eleWidth","width","eleRight","danSpeed","getTunnel","tmp","_loop2","j","danRight","_ret","docFragment","createDocumentFragment","_loop3","classList","add","itemWidth","tunnel","transform","measureStyle","getComputedStyle","getContext","font","getPropertyValue","measureText","seek","_boolean","Events","videoEvents","playerEvents","info","FullScreen","lastScrollPosition","resize","fullscreenchange","isFullScreen","docfullscreenchange","fullEle","msFullscreenElement","contains","anotherType","anotherTypeOn","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","webkitEnterFullscreen","webkitEnterFullScreen","msRequestFullscreen","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","webkitCancelFullscreen","msCancelFullScreen","msExitFullscreen","User","storageName","Subtitle","textTracks","track","oncuechange","cue","activeCues","template","getCueAsHTML","trackHtml","show","hide","Bar","elements","played","loaded","direction","max","Timer","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","types","lastPlayPos","currentPlayPos","bufferingDetected","loadingChecker","enableloadingChecker","currentTime","enablefpsChecker","initfpsChecker","fpsStart","fpsIndex","fpsCurrent","fps","infoChecker","enableinfoChecker","Bezel","icon","Thumbnails","barWidth","backgroundImage","barWrapWidth","display","position","backgroundPosition","ceil","Controller","autoHideTimer","setAutoHide","initPlayButton","initThumbnails","initPlayedBar","initFullButton","initQualityButton","initScreenshotButton","initSubtitleButton","initHighlights","initAirplayButton","initVolumeButton","toggle","duration","highlight","highlights","thumbnails","videoHeight","videoWidth","thumbMove","clientX","changedTouches","clientWidth","bar","thumbUp","removeEventListener","timer","enable","disable","px","tx","move","innerText","_this6","fullScreen","_this7","volumeMove","muted","switchVolumeIcon","_this8","switchQuality","dataset","_this9","dataURL","canvas","drawImage","toBlob","blob","URL","createObjectURL","download","revokeObjectURL","WebKitPlaybackTargetAvailabilityEvent","availability","webkitShowPlaybackTargetPicker","_this10","balloon","_this11","disableAutoHide","isShow","checked","unlimit","danmakuMove","danmakuUp","Comment","toggleSetting","fill","hideSetting","keyCode","focus","showSetting","blur","HotKey","tag","activeElement","tagName","editable","getAttribute","preventDefault","ContextMenu","shown","clientRect","clientY","y","InfoPanel","beginTime","toFixed","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","_defineProperty","instances","DPlayer","getOwnPropertyDescriptors","defineProperties","_objectSpread","qualityIndex","arrow","plugins","initVideo","fromNative","nostorage","nonotice","isNaN","formatPercentage","danmakuAPI","poster","src","initMSE","reload","customType","canPlayType","Hls","isSupported","loadSource","attachMedia","destroy","flvjs","flvPlayer","createPlayer","assign","mediaDataSource","attachMediaElement","unload","detachMediaElement","dashjs","dashjsPlayer","MediaPlayer","initialize","_options","updateSettings","reset","WebTorrent","WEBRTC_SUPPORT","_options2","client","torrentId","torrent","files","find","file","endsWith","renderTo","controls","buffered","end","switchingQuality","videoHTML","videoEle","DOMParser","parseFromString","getElementsByTagName","prevVideo","noticeTime","rate","playbackRate","log"],"mappings":"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","file":"DPlayer.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DPlayer\"] = factory();\n\telse\n\t\troot[\"DPlayer\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 58);\n","'use strict';\nfunction _typeof(obj) {\n    '@babel/helpers - typeof';\n    if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n        _typeof = function _typeof(obj) {\n            return typeof obj;\n        };\n    } else {\n        _typeof = function _typeof(obj) {\n            return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n        };\n    }\n    return _typeof(obj);\n}\nvar bind = require('./helpers/bind');\nvar toString = Object.prototype.toString;\nfunction isArray(val) {\n    return toString.call(val) === '[object Array]';\n}\nfunction isUndefined(val) {\n    return typeof val === 'undefined';\n}\nfunction isBuffer(val) {\n    return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\nfunction isArrayBuffer(val) {\n    return toString.call(val) === '[object ArrayBuffer]';\n}\nfunction isFormData(val) {\n    return typeof FormData !== 'undefined' && val instanceof FormData;\n}\nfunction isArrayBufferView(val) {\n    var result;\n    if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n        result = ArrayBuffer.isView(val);\n    } else {\n        result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n    }\n    return result;\n}\nfunction isString(val) {\n    return typeof val === 'string';\n}\nfunction isNumber(val) {\n    return typeof val === 'number';\n}\nfunction isObject(val) {\n    return val !== null && _typeof(val) === 'object';\n}\nfunction isDate(val) {\n    return toString.call(val) === '[object Date]';\n}\nfunction isFile(val) {\n    return toString.call(val) === '[object File]';\n}\nfunction isBlob(val) {\n    return toString.call(val) === '[object Blob]';\n}\nfunction isFunction(val) {\n    return toString.call(val) === '[object Function]';\n}\nfunction isStream(val) {\n    return isObject(val) && isFunction(val.pipe);\n}\nfunction isURLSearchParams(val) {\n    return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\nfunction trim(str) {\n    return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\nfunction isStandardBrowserEnv() {\n    if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n        return false;\n    }\n    return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction forEach(obj, fn) {\n    if (obj === null || typeof obj === 'undefined') {\n        return;\n    }\n    if (_typeof(obj) !== 'object') {\n        obj = [obj];\n    }\n    if (isArray(obj)) {\n        for (var i = 0, l = obj.length; i < l; i++) {\n            fn.call(null, obj[i], i, obj);\n        }\n    } else {\n        for (var key in obj) {\n            if (Object.prototype.hasOwnProperty.call(obj, key)) {\n                fn.call(null, obj[key], key, obj);\n            }\n        }\n    }\n}\nfunction merge() {\n    var result = {};\n    function assignValue(val, key) {\n        if (_typeof(result[key]) === 'object' && _typeof(val) === 'object') {\n            result[key] = merge(result[key], val);\n        } else {\n            result[key] = val;\n        }\n    }\n    for (var i = 0, l = arguments.length; i < l; i++) {\n        forEach(arguments[i], assignValue);\n    }\n    return result;\n}\nfunction deepMerge() {\n    var result = {};\n    function assignValue(val, key) {\n        if (_typeof(result[key]) === 'object' && _typeof(val) === 'object') {\n            result[key] = deepMerge(result[key], val);\n        } else if (_typeof(val) === 'object') {\n            result[key] = deepMerge({}, val);\n        } else {\n            result[key] = val;\n        }\n    }\n    for (var i = 0, l = arguments.length; i < l; i++) {\n        forEach(arguments[i], assignValue);\n    }\n    return result;\n}\nfunction extend(a, b, thisArg) {\n    forEach(b, function assignValue(val, key) {\n        if (thisArg && typeof val === 'function') {\n            a[key] = bind(val, thisArg);\n        } else {\n            a[key] = val;\n        }\n    });\n    return a;\n}\nmodule.exports = {\n    isArray: isArray,\n    isArrayBuffer: isArrayBuffer,\n    isBuffer: isBuffer,\n    isFormData: isFormData,\n    isArrayBufferView: isArrayBufferView,\n    isString: isString,\n    isNumber: isNumber,\n    isObject: isObject,\n    isUndefined: isUndefined,\n    isDate: isDate,\n    isFile: isFile,\n    isBlob: isBlob,\n    isFunction: isFunction,\n    isStream: isStream,\n    isURLSearchParams: isURLSearchParams,\n    isStandardBrowserEnv: isStandardBrowserEnv,\n    forEach: forEach,\n    merge: merge,\n    deepMerge: deepMerge,\n    extend: extend,\n    trim: trim\n};","{{ set enableSubtitle = subtitle && subtitle.type === 'webvtt' }}\n<video\n    class=\"dplayer-video {{ if current }}dplayer-video-current{{ /if }}\"\n    webkit-playsinline\n    {{ if airplay }} x-webkit-airplay=\"allow\" {{ /if }}\n    playsinline\n    {{ if pic }}poster=\"{{ pic }}\"{{ /if }}\n    {{ if screenshot || enableSubtitle }}crossorigin=\"anonymous\"{{ /if }}\n    {{ if preload }}preload=\"{{ preload }}\"{{ /if }}\n    {{ if url }}src=\"{{ url }}\"{{ /if }}\n    >\n    {{ if enableSubtitle }}\n    <track kind=\"metadata\" default src=\"{{ subtitle.url }}\"></track>\n    {{ /if }}\n</video>","module.exports = require('./lib/axios');","'use strict';\nmodule.exports = function (useSourceMap) {\n    var list = [];\n    list.toString = function toString() {\n        return this.map(function (item) {\n            var content = cssWithMappingToString(item, useSourceMap);\n            if (item[2]) {\n                return '@media '.concat(item[2], ' {').concat(content, '}');\n            }\n            return content;\n        }).join('');\n    };\n    list.i = function (modules, mediaQuery, dedupe) {\n        if (typeof modules === 'string') {\n            modules = [[\n                    null,\n                    modules,\n                    ''\n                ]];\n        }\n        var alreadyImportedModules = {};\n        if (dedupe) {\n            for (var i = 0; i < this.length; i++) {\n                var id = this[i][0];\n                if (id != null) {\n                    alreadyImportedModules[id] = true;\n                }\n            }\n        }\n        for (var _i = 0; _i < modules.length; _i++) {\n            var item = [].concat(modules[_i]);\n            if (dedupe && alreadyImportedModules[item[0]]) {\n                continue;\n            }\n            if (mediaQuery) {\n                if (!item[2]) {\n                    item[2] = mediaQuery;\n                } else {\n                    item[2] = ''.concat(mediaQuery, ' and ').concat(item[2]);\n                }\n            }\n            list.push(item);\n        }\n    };\n    return list;\n};\nfunction cssWithMappingToString(item, useSourceMap) {\n    var content = item[1] || '';\n    var cssMapping = item[3];\n    if (!cssMapping) {\n        return content;\n    }\n    if (useSourceMap && typeof btoa === 'function') {\n        var sourceMapping = toComment(cssMapping);\n        var sourceURLs = cssMapping.sources.map(function (source) {\n            return '/*# sourceURL='.concat(cssMapping.sourceRoot || '').concat(source, ' */');\n        });\n        return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n    }\n    return [content].join('\\n');\n}\nfunction toComment(sourceMap) {\n    var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n    var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,'.concat(base64);\n    return '/*# '.concat(data, ' */');\n}","function _typeof(obj) {\n    '@babel/helpers - typeof';\n    if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n        _typeof = function _typeof(obj) {\n            return typeof obj;\n        };\n    } else {\n        _typeof = function _typeof(obj) {\n            return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n        };\n    }\n    return _typeof(obj);\n}\nvar g;\ng = function () {\n    return this;\n}();\ntry {\n    g = g || new Function('return this')();\n} catch (e) {\n    if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object')\n        g = window;\n}\nmodule.exports = g;","var process = module.exports = {};\nvar cachedSetTimeout;\nvar cachedClearTimeout;\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout() {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n}());\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        return setTimeout(fun, 0);\n    }\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        return cachedSetTimeout(fun, 0);\n    } catch (e) {\n        try {\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch (e) {\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        return clearTimeout(marker);\n    }\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        return cachedClearTimeout(marker);\n    } catch (e) {\n        try {\n            return cachedClearTimeout.call(null, marker);\n        } catch (e) {\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n    var len = queue.length;\n    while (len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = '';\nprocess.versions = {};\nfunction noop() {\n}\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\nprocess.listeners = function (name) {\n    return [];\n};\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\nprocess.cwd = function () {\n    return '/';\n};\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function () {\n    return 0;\n};","'use strict';\nmodule.exports = function bind(fn, thisArg) {\n    return function wrap() {\n        var args = new Array(arguments.length);\n        for (var i = 0; i < args.length; i++) {\n            args[i] = arguments[i];\n        }\n        return fn.apply(thisArg, args);\n    };\n};","'use strict';\nvar utils = require('./../utils');\nfunction encode(val) {\n    return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n    if (!params) {\n        return url;\n    }\n    var serializedParams;\n    if (paramsSerializer) {\n        serializedParams = paramsSerializer(params);\n    } else if (utils.isURLSearchParams(params)) {\n        serializedParams = params.toString();\n    } else {\n        var parts = [];\n        utils.forEach(params, function serialize(val, key) {\n            if (val === null || typeof val === 'undefined') {\n                return;\n            }\n            if (utils.isArray(val)) {\n                key = key + '[]';\n            } else {\n                val = [val];\n            }\n            utils.forEach(val, function parseValue(v) {\n                if (utils.isDate(v)) {\n                    v = v.toISOString();\n                } else if (utils.isObject(v)) {\n                    v = JSON.stringify(v);\n                }\n                parts.push(encode(key) + '=' + encode(v));\n            });\n        });\n        serializedParams = parts.join('&');\n    }\n    if (serializedParams) {\n        var hashmarkIndex = url.indexOf('#');\n        if (hashmarkIndex !== -1) {\n            url = url.slice(0, hashmarkIndex);\n        }\n        url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n    }\n    return url;\n};","'use strict';\nmodule.exports = function isCancel(value) {\n    return !!(value && value.__CANCEL__);\n};","'use strict';\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar DEFAULT_CONTENT_TYPE = { 'Content-Type': 'application/x-www-form-urlencoded' };\nfunction setContentTypeIfUnset(headers, value) {\n    if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n        headers['Content-Type'] = value;\n    }\n}\nfunction getDefaultAdapter() {\n    var adapter;\n    if (typeof XMLHttpRequest !== 'undefined') {\n        adapter = require('./adapters/xhr');\n    } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n        adapter = require('./adapters/http');\n    }\n    return adapter;\n}\nvar defaults = {\n    adapter: getDefaultAdapter(),\n    transformRequest: [function transformRequest(data, headers) {\n            normalizeHeaderName(headers, 'Accept');\n            normalizeHeaderName(headers, 'Content-Type');\n            if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n                return data;\n            }\n            if (utils.isArrayBufferView(data)) {\n                return data.buffer;\n            }\n            if (utils.isURLSearchParams(data)) {\n                setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n                return data.toString();\n            }\n            if (utils.isObject(data)) {\n                setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n                return JSON.stringify(data);\n            }\n            return data;\n        }],\n    transformResponse: [function transformResponse(data) {\n            if (typeof data === 'string') {\n                try {\n                    data = JSON.parse(data);\n                } catch (e) {\n                }\n            }\n            return data;\n        }],\n    timeout: 0,\n    xsrfCookieName: 'XSRF-TOKEN',\n    xsrfHeaderName: 'X-XSRF-TOKEN',\n    maxContentLength: -1,\n    validateStatus: function validateStatus(status) {\n        return status >= 200 && status < 300;\n    }\n};\ndefaults.headers = { common: { 'Accept': 'application/json, text/plain, */*' } };\nutils.forEach([\n    'delete',\n    'get',\n    'head'\n], function forEachMethodNoData(method) {\n    defaults.headers[method] = {};\n});\nutils.forEach([\n    'post',\n    'put',\n    'patch'\n], function forEachMethodWithData(method) {\n    defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nmodule.exports = function xhrAdapter(config) {\n    return new Promise(function dispatchXhrRequest(resolve, reject) {\n        var requestData = config.data;\n        var requestHeaders = config.headers;\n        if (utils.isFormData(requestData)) {\n            delete requestHeaders['Content-Type'];\n        }\n        var request = new XMLHttpRequest();\n        if (config.auth) {\n            var username = config.auth.username || '';\n            var password = config.auth.password || '';\n            requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n        }\n        var fullPath = buildFullPath(config.baseURL, config.url);\n        request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n        request.timeout = config.timeout;\n        request.onreadystatechange = function handleLoad() {\n            if (!request || request.readyState !== 4) {\n                return;\n            }\n            if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n                return;\n            }\n            var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n            var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n            var response = {\n                data: responseData,\n                status: request.status,\n                statusText: request.statusText,\n                headers: responseHeaders,\n                config: config,\n                request: request\n            };\n            settle(resolve, reject, response);\n            request = null;\n        };\n        request.onabort = function handleAbort() {\n            if (!request) {\n                return;\n            }\n            reject(createError('Request aborted', config, 'ECONNABORTED', request));\n            request = null;\n        };\n        request.onerror = function handleError() {\n            reject(createError('Network Error', config, null, request));\n            request = null;\n        };\n        request.ontimeout = function handleTimeout() {\n            var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n            if (config.timeoutErrorMessage) {\n                timeoutErrorMessage = config.timeoutErrorMessage;\n            }\n            reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', request));\n            request = null;\n        };\n        if (utils.isStandardBrowserEnv()) {\n            var cookies = require('./../helpers/cookies');\n            var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n            if (xsrfValue) {\n                requestHeaders[config.xsrfHeaderName] = xsrfValue;\n            }\n        }\n        if ('setRequestHeader' in request) {\n            utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n                if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n                    delete requestHeaders[key];\n                } else {\n                    request.setRequestHeader(key, val);\n                }\n            });\n        }\n        if (!utils.isUndefined(config.withCredentials)) {\n            request.withCredentials = !!config.withCredentials;\n        }\n        if (config.responseType) {\n            try {\n                request.responseType = config.responseType;\n            } catch (e) {\n                if (config.responseType !== 'json') {\n                    throw e;\n                }\n            }\n        }\n        if (typeof config.onDownloadProgress === 'function') {\n            request.addEventListener('progress', config.onDownloadProgress);\n        }\n        if (typeof config.onUploadProgress === 'function' && request.upload) {\n            request.upload.addEventListener('progress', config.onUploadProgress);\n        }\n        if (config.cancelToken) {\n            config.cancelToken.promise.then(function onCanceled(cancel) {\n                if (!request) {\n                    return;\n                }\n                request.abort();\n                reject(cancel);\n                request = null;\n            });\n        }\n        if (requestData === undefined) {\n            requestData = null;\n        }\n        request.send(requestData);\n    });\n};","'use strict';\nvar enhanceError = require('./enhanceError');\nmodule.exports = function createError(message, config, code, request, response) {\n    var error = new Error(message);\n    return enhanceError(error, config, code, request, response);\n};","'use strict';\nvar utils = require('../utils');\nmodule.exports = function mergeConfig(config1, config2) {\n    config2 = config2 || {};\n    var config = {};\n    var valueFromConfig2Keys = [\n        'url',\n        'method',\n        'params',\n        'data'\n    ];\n    var mergeDeepPropertiesKeys = [\n        'headers',\n        'auth',\n        'proxy'\n    ];\n    var defaultToConfig2Keys = [\n        'baseURL',\n        'url',\n        'transformRequest',\n        'transformResponse',\n        'paramsSerializer',\n        'timeout',\n        'withCredentials',\n        'adapter',\n        'responseType',\n        'xsrfCookieName',\n        'xsrfHeaderName',\n        'onUploadProgress',\n        'onDownloadProgress',\n        'maxContentLength',\n        'validateStatus',\n        'maxRedirects',\n        'httpAgent',\n        'httpsAgent',\n        'cancelToken',\n        'socketPath'\n    ];\n    utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n        if (typeof config2[prop] !== 'undefined') {\n            config[prop] = config2[prop];\n        }\n    });\n    utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) {\n        if (utils.isObject(config2[prop])) {\n            config[prop] = utils.deepMerge(config1[prop], config2[prop]);\n        } else if (typeof config2[prop] !== 'undefined') {\n            config[prop] = config2[prop];\n        } else if (utils.isObject(config1[prop])) {\n            config[prop] = utils.deepMerge(config1[prop]);\n        } else if (typeof config1[prop] !== 'undefined') {\n            config[prop] = config1[prop];\n        }\n    });\n    utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n        if (typeof config2[prop] !== 'undefined') {\n            config[prop] = config2[prop];\n        } else if (typeof config1[prop] !== 'undefined') {\n            config[prop] = config1[prop];\n        }\n    });\n    var axiosKeys = valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys);\n    var otherKeys = Object.keys(config2).filter(function filterAxiosKeys(key) {\n        return axiosKeys.indexOf(key) === -1;\n    });\n    utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) {\n        if (typeof config2[prop] !== 'undefined') {\n            config[prop] = config2[prop];\n        } else if (typeof config1[prop] !== 'undefined') {\n            config[prop] = config1[prop];\n        }\n    });\n    return config;\n};","'use strict';\nfunction Cancel(message) {\n    this.message = message;\n}\nCancel.prototype.toString = function toString() {\n    return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","'use strict';\nmodule.exports = require('./compile/runtime');","function _typeof(obj) {\n    '@babel/helpers - typeof';\n    if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n        _typeof = function _typeof(obj) {\n            return typeof obj;\n        };\n    } else {\n        _typeof = function _typeof(obj) {\n            return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n        };\n    }\n    return _typeof(obj);\n}\nimport promiseFinally from './finally';\nvar setTimeoutFunc = setTimeout;\nfunction isArray(x) {\n    return Boolean(x && typeof x.length !== 'undefined');\n}\nfunction noop() {\n}\nfunction bind(fn, thisArg) {\n    return function () {\n        fn.apply(thisArg, arguments);\n    };\n}\nfunction Promise(fn) {\n    if (!(this instanceof Promise))\n        throw new TypeError('Promises must be constructed via new');\n    if (typeof fn !== 'function')\n        throw new TypeError('not a function');\n    this._state = 0;\n    this._handled = false;\n    this._value = undefined;\n    this._deferreds = [];\n    doResolve(fn, this);\n}\nfunction handle(self, deferred) {\n    while (self._state === 3) {\n        self = self._value;\n    }\n    if (self._state === 0) {\n        self._deferreds.push(deferred);\n        return;\n    }\n    self._handled = true;\n    Promise._immediateFn(function () {\n        var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n        if (cb === null) {\n            (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n            return;\n        }\n        var ret;\n        try {\n            ret = cb(self._value);\n        } catch (e) {\n            reject(deferred.promise, e);\n            return;\n        }\n        resolve(deferred.promise, ret);\n    });\n}\nfunction resolve(self, newValue) {\n    try {\n        if (newValue === self)\n            throw new TypeError('A promise cannot be resolved with itself.');\n        if (newValue && (_typeof(newValue) === 'object' || typeof newValue === 'function')) {\n            var then = newValue.then;\n            if (newValue instanceof Promise) {\n                self._state = 3;\n                self._value = newValue;\n                finale(self);\n                return;\n            } else if (typeof then === 'function') {\n                doResolve(bind(then, newValue), self);\n                return;\n            }\n        }\n        self._state = 1;\n        self._value = newValue;\n        finale(self);\n    } catch (e) {\n        reject(self, e);\n    }\n}\nfunction reject(self, newValue) {\n    self._state = 2;\n    self._value = newValue;\n    finale(self);\n}\nfunction finale(self) {\n    if (self._state === 2 && self._deferreds.length === 0) {\n        Promise._immediateFn(function () {\n            if (!self._handled) {\n                Promise._unhandledRejectionFn(self._value);\n            }\n        });\n    }\n    for (var i = 0, len = self._deferreds.length; i < len; i++) {\n        handle(self, self._deferreds[i]);\n    }\n    self._deferreds = null;\n}\nfunction Handler(onFulfilled, onRejected, promise) {\n    this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n    this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n    this.promise = promise;\n}\nfunction doResolve(fn, self) {\n    var done = false;\n    try {\n        fn(function (value) {\n            if (done)\n                return;\n            done = true;\n            resolve(self, value);\n        }, function (reason) {\n            if (done)\n                return;\n            done = true;\n            reject(self, reason);\n        });\n    } catch (ex) {\n        if (done)\n            return;\n        done = true;\n        reject(self, ex);\n    }\n}\nPromise.prototype['catch'] = function (onRejected) {\n    return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n    var prom = new this.constructor(noop);\n    handle(this, new Handler(onFulfilled, onRejected, prom));\n    return prom;\n};\nPromise.prototype['finally'] = promiseFinally;\nPromise.all = function (arr) {\n    return new Promise(function (resolve, reject) {\n        if (!isArray(arr)) {\n            return reject(new TypeError('Promise.all accepts an array'));\n        }\n        var args = Array.prototype.slice.call(arr);\n        if (args.length === 0)\n            return resolve([]);\n        var remaining = args.length;\n        function res(i, val) {\n            try {\n                if (val && (_typeof(val) === 'object' || typeof val === 'function')) {\n                    var then = val.then;\n                    if (typeof then === 'function') {\n                        then.call(val, function (val) {\n                            res(i, val);\n                        }, reject);\n                        return;\n                    }\n                }\n                args[i] = val;\n                if (--remaining === 0) {\n                    resolve(args);\n                }\n            } catch (ex) {\n                reject(ex);\n            }\n        }\n        for (var i = 0; i < args.length; i++) {\n            res(i, args[i]);\n        }\n    });\n};\nPromise.resolve = function (value) {\n    if (value && _typeof(value) === 'object' && value.constructor === Promise) {\n        return value;\n    }\n    return new Promise(function (resolve) {\n        resolve(value);\n    });\n};\nPromise.reject = function (value) {\n    return new Promise(function (resolve, reject) {\n        reject(value);\n    });\n};\nPromise.race = function (arr) {\n    return new Promise(function (resolve, reject) {\n        if (!isArray(arr)) {\n            return reject(new TypeError('Promise.race accepts an array'));\n        }\n        for (var i = 0, len = arr.length; i < len; i++) {\n            Promise.resolve(arr[i]).then(resolve, reject);\n        }\n    });\n};\nPromise._immediateFn = typeof setImmediate === 'function' && function (fn) {\n    setImmediate(fn);\n} || function (fn) {\n    setTimeoutFunc(fn, 0);\n};\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n    if (typeof console !== 'undefined' && console) {\n        console.warn('Possible Unhandled Promise Rejection:', err);\n    }\n};\nexport default Promise;","function finallyConstructor(callback) {\n    var constructor = this.constructor;\n    return this.then(function (value) {\n        return constructor.resolve(callback()).then(function () {\n            return value;\n        });\n    }, function (reason) {\n        return constructor.resolve(callback()).then(function () {\n            return constructor.reject(reason);\n        });\n    });\n}\nexport default finallyConstructor;","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 16 32\\\"><path d=\\\"M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 17 32\\\"><path d=\\\"M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 21 32\\\"><path d=\\\"M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 21 32\\\"><path d=\\\"M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 21 32\\\"><path d=\\\"M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 32 33\\\"><path d=\\\"M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 32 33\\\"><path d=\\\"M24.965 24.38h-18.132c-1.366 0-2.478-1.113-2.478-2.478v-11.806c0-1.364 1.111-2.478 2.478-2.478h18.132c1.366 0 2.478 1.113 2.478 2.478v11.806c0 1.364-1.11 2.478-2.478 2.478zM6.833 10.097v11.806h18.134l-0.002-11.806h-18.132zM2.478 28.928h5.952c0.684 0 1.238-0.554 1.238-1.239 0-0.684-0.554-1.238-1.238-1.238h-5.952v-5.802c0-0.684-0.554-1.239-1.238-1.239s-1.239 0.556-1.239 1.239v5.802c0 1.365 1.111 2.478 2.478 2.478zM30.761 19.412c-0.684 0-1.238 0.554-1.238 1.238v5.801h-5.951c-0.686 0-1.239 0.554-1.239 1.238 0 0.686 0.554 1.239 1.239 1.239h5.951c1.366 0 2.478-1.111 2.478-2.478v-5.801c0-0.683-0.554-1.238-1.239-1.238zM0 5.55v5.802c0 0.683 0.554 1.238 1.238 1.238s1.238-0.555 1.238-1.238v-5.802h5.952c0.684 0 1.238-0.554 1.238-1.238s-0.554-1.238-1.238-1.238h-5.951c-1.366-0.001-2.478 1.111-2.478 2.476zM32 11.35v-5.801c0-1.365-1.11-2.478-2.478-2.478h-5.951c-0.686 0-1.239 0.554-1.239 1.238s0.554 1.238 1.239 1.238h5.951v5.801c0 0.683 0.554 1.237 1.238 1.237 0.686 0.002 1.239-0.553 1.239-1.236z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 32 28\\\"><path d=\\\"M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 32 32\\\"><path d=\\\"M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 32 32\\\"><path d=\\\"M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 32 32\\\"><path d=\\\"M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 32 32\\\"><path d=\\\"M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 32 32\\\"><path d=\\\"M19.357 2.88c1.749 0 3.366 0.316 4.851 0.946 1.485 0.632 2.768 1.474 3.845 2.533s1.922 2.279 2.532 3.661c0.611 1.383 0.915 2.829 0.915 4.334 0 1.425-0.304 2.847-0.915 4.271-0.611 1.425-1.587 2.767-2.928 4.028-0.855 0.813-1.811 1.607-2.869 2.38s-2.136 1.465-3.233 2.075c-1.099 0.61-2.198 1.098-3.296 1.465-1.098 0.366-2.115 0.549-3.051 0.549-1.343 0-2.441-0.438-3.296-1.311-0.854-0.876-1.281-2.41-1.281-4.608 0-0.366 0.020-0.773 0.060-1.221s0.062-0.895 0.062-1.343c0-0.773-0.183-1.353-0.55-1.738-0.366-0.387-0.793-0.58-1.281-0.58-0.652 0-1.21 0.295-1.678 0.886s-0.926 1.23-1.373 1.921c-0.447 0.693-0.905 1.334-1.372 1.923s-1.028 0.886-1.679 0.886c-0.529 0-1.048-0.427-1.556-1.282s-0.763-2.259-0.763-4.212c0-2.197 0.529-4.241 1.587-6.133s2.462-3.529 4.21-4.912c1.75-1.383 3.762-2.471 6.041-3.264 2.277-0.796 4.617-1.212 7.018-1.253zM7.334 15.817c0.569 0 1.047-0.204 1.434-0.611s0.579-0.875 0.579-1.404c0-0.569-0.193-1.047-0.579-1.434s-0.864-0.579-1.434-0.579c-0.529 0-0.987 0.193-1.373 0.579s-0.58 0.864-0.58 1.434c0 0.53 0.194 0.998 0.58 1.404 0.388 0.407 0.845 0.611 1.373 0.611zM12.216 11.79c0.691 0 1.292-0.254 1.8-0.763s0.762-1.107 0.762-1.8c0-0.732-0.255-1.343-0.762-1.831-0.509-0.489-1.109-0.732-1.8-0.732-0.732 0-1.342 0.244-1.831 0.732-0.488 0.488-0.732 1.098-0.732 1.831 0 0.693 0.244 1.292 0.732 1.8s1.099 0.763 1.831 0.763zM16.366 25.947c0.692 0 1.282-0.214 1.77-0.64s0.732-0.987 0.732-1.678-0.244-1.261-0.732-1.709c-0.489-0.448-1.078-0.671-1.77-0.671-0.65 0-1.21 0.223-1.678 0.671s-0.702 1.018-0.702 1.709c0 0.692 0.234 1.25 0.702 1.678s1.027 0.64 1.678 0.64zM19.113 9.592c0.651 0 1.129-0.203 1.433-0.611 0.305-0.406 0.459-0.874 0.459-1.404 0-0.488-0.154-0.947-0.459-1.373-0.304-0.427-0.782-0.641-1.433-0.641-0.529 0-1.008 0.193-1.434 0.58s-0.64 0.865-0.64 1.434c0 0.571 0.213 1.049 0.64 1.434 0.427 0.389 0.905 0.581 1.434 0.581zM24.848 12.826c0.57 0 1.067-0.213 1.495-0.64 0.427-0.427 0.64-0.947 0.64-1.556 0-0.57-0.214-1.068-0.64-1.495-0.428-0.427-0.927-0.64-1.495-0.64-0.611 0-1.129 0.213-1.555 0.64-0.428 0.427-0.642 0.926-0.642 1.495 0 0.611 0.213 1.129 0.642 1.556s0.947 0.64 1.555 0.64z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 32 32\\\"><path d=\\\"M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z\\\"></path></svg>\"","module.exports = \"<svg viewBox=\\\"0 0 288 288\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M288 90v96c0 20-16 36-36 36h-10c-16 0-16-24 0-24h10c7 0 12-5 12-12V90c0-7-5-12-12-12H36c-7 0-12 5-12 12v96c0 7 5 12 12 12h10c16 0 16 24 0 24H36c-20 0-36-16-36-36V90c0-20 16-36 36-36h216c20 0 36 16 36 36zm-120 62l48 68c14 20 1 38-20 38H92c-21 0-34-18-20-38l48-68c13-18 35-18 48 0z\\\"></path></svg>\"","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 32 32\\\"><path d=\\\"M26.667 5.333h-21.333c-0 0-0.001 0-0.001 0-1.472 0-2.666 1.194-2.666 2.666 0 0 0 0.001 0 0.001v-0 16c0 0 0 0.001 0 0.001 0 1.472 1.194 2.666 2.666 2.666 0 0 0.001 0 0.001 0h21.333c0 0 0.001 0 0.001 0 1.472 0 2.666-1.194 2.666-2.666 0-0 0-0.001 0-0.001v0-16c0-0 0-0.001 0-0.001 0-1.472-1.194-2.666-2.666-2.666-0 0-0.001 0-0.001 0h0zM5.333 16h5.333v2.667h-5.333v-2.667zM18.667 24h-13.333v-2.667h13.333v2.667zM26.667 24h-5.333v-2.667h5.333v2.667zM26.667 18.667h-13.333v-2.667h13.333v2.667z\\\"></path></svg>\"","module.exports = \"<svg version=\\\"1.1\\\" viewBox=\\\"0 0 22 22\\\"><svg x=\\\"7\\\" y=\\\"1\\\"><circle class=\\\"diplayer-loading-dot diplayer-loading-dot-0\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle></svg><svg x=\\\"11\\\" y=\\\"3\\\"><circle class=\\\"diplayer-loading-dot diplayer-loading-dot-1\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle></svg><svg x=\\\"13\\\" y=\\\"7\\\"><circle class=\\\"diplayer-loading-dot diplayer-loading-dot-2\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle></svg><svg x=\\\"11\\\" y=\\\"11\\\"><circle class=\\\"diplayer-loading-dot diplayer-loading-dot-3\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle></svg><svg x=\\\"7\\\" y=\\\"13\\\"><circle class=\\\"diplayer-loading-dot diplayer-loading-dot-4\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle></svg><svg x=\\\"3\\\" y=\\\"11\\\"><circle class=\\\"diplayer-loading-dot diplayer-loading-dot-5\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle></svg><svg x=\\\"1\\\" y=\\\"7\\\"><circle class=\\\"diplayer-loading-dot diplayer-loading-dot-6\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle></svg><svg x=\\\"3\\\" y=\\\"3\\\"><circle class=\\\"diplayer-loading-dot diplayer-loading-dot-7\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle></svg></svg>\"","<div class=\"dplayer-mask\"></div>\n<div class=\"dplayer-video-wrap\">\n    {{ include './video.art' video }}\n    {{ if options.logo }}\n    <div class=\"dplayer-logo\">\n        <img src=\"{{ options.logo }}\">\n    </div>\n    {{ /if }}\n    <div class=\"dplayer-danmaku\"{{ if options.danmaku && options.danmaku.bottm }} style=\"margin-bottom:{{ options.danmaku.bottm }}\"{{ /if }}>\n        <div class=\"dplayer-danmaku-item dplayer-danmaku-item--demo\"></div>\n    </div>\n    <div class=\"dplayer-subtitle\"></div>\n    <div class=\"dplayer-bezel\">\n        <span class=\"dplayer-bezel-icon\"></span>\n        {{ if options.danmaku }}\n        <span class=\"dplayer-danloading\">{{ tran('Danmaku is loading') }}</span>\n        {{ /if }}\n        <span class=\"diplayer-loading-icon\">{{@ icons.loading }}</span>\n    </div>\n</div>\n<div class=\"dplayer-controller-mask\"></div>\n<div class=\"dplayer-controller\">\n    <div class=\"dplayer-icons dplayer-comment-box\">\n        <button class=\"dplayer-icon dplayer-comment-setting-icon\" data-balloon=\"{{ tran('Setting') }}\" data-balloon-pos=\"up\">\n            <span class=\"dplayer-icon-content\">{{@ icons.pallette }}</span>\n        </button>\n        <div class=\"dplayer-comment-setting-box\">\n            <div class=\"dplayer-comment-setting-color\">\n                <div class=\"dplayer-comment-setting-title\">{{ tran('Set danmaku color') }}</div>\n                <label>\n                    <input type=\"radio\" name=\"dplayer-danmaku-color-{{ index }}\" value=\"#fff\" checked>\n                    <span style=\"background: #fff;\"></span>\n                </label>\n                <label>\n                    <input type=\"radio\" name=\"dplayer-danmaku-color-{{ index }}\" value=\"#e54256\">\n                    <span style=\"background: #e54256\"></span>\n                </label>\n                <label>\n                    <input type=\"radio\" name=\"dplayer-danmaku-color-{{ index }}\" value=\"#ffe133\">\n                    <span style=\"background: #ffe133\"></span>\n                </label>\n                <label>\n                    <input type=\"radio\" name=\"dplayer-danmaku-color-{{ index }}\" value=\"#64DD17\">\n                    <span style=\"background: #64DD17\"></span>\n                </label>\n                <label>\n                    <input type=\"radio\" name=\"dplayer-danmaku-color-{{ index }}\" value=\"#39ccff\">\n                    <span style=\"background: #39ccff\"></span>\n                </label>\n                <label>\n                    <input type=\"radio\" name=\"dplayer-danmaku-color-{{ index }}\" value=\"#D500F9\">\n                    <span style=\"background: #D500F9\"></span>\n                </label>\n            </div>\n            <div class=\"dplayer-comment-setting-type\">\n                <div class=\"dplayer-comment-setting-title\">{{ tran('Set danmaku type') }}</div>\n                <label>\n                    <input type=\"radio\" name=\"dplayer-danmaku-type-{{ index }}\" value=\"1\">\n                    <span>{{ tran('Top') }}</span>\n                </label>\n                <label>\n                    <input type=\"radio\" name=\"dplayer-danmaku-type-{{ index }}\" value=\"0\" checked>\n                    <span>{{ tran('Rolling') }}</span>\n                </label>\n                <label>\n                    <input type=\"radio\" name=\"dplayer-danmaku-type-{{ index }}\" value=\"2\">\n                    <span>{{ tran('Bottom') }}</span>\n                </label>\n            </div>\n        </div>\n        <input class=\"dplayer-comment-input\" type=\"text\" placeholder=\"{{ tran('Input danmaku, hit Enter') }}\" maxlength=\"30\">\n        <button class=\"dplayer-icon dplayer-send-icon\" data-balloon=\"{{ tran('Send') }}\" data-balloon-pos=\"up\">\n            <span class=\"dplayer-icon-content\">{{@ icons.send }}</span>\n        </button>\n    </div>\n    <div class=\"dplayer-icons dplayer-icons-left\">\n        <button class=\"dplayer-icon dplayer-play-icon\">\n            <span class=\"dplayer-icon-content\">{{@ icons.play }}</span>\n        </button>\n        <div class=\"dplayer-volume\">\n            <button class=\"dplayer-icon dplayer-volume-icon\">\n                <span class=\"dplayer-icon-content\">{{@ icons.volumeDown }}</span>\n            </button>\n            <div class=\"dplayer-volume-bar-wrap\" data-balloon-pos=\"up\">\n                <div class=\"dplayer-volume-bar\">\n                    <div class=\"dplayer-volume-bar-inner\" style=\"background: {{ options.theme }};\">\n                        <span class=\"dplayer-thumb\" style=\"background: {{ options.theme }}\"></span>\n                    </div>\n                </div>\n            </div>\n        </div>\n        <span class=\"dplayer-time\">\n            <span class=\"dplayer-ptime\">0:00</span> /\n            <span class=\"dplayer-dtime\">0:00</span>\n        </span>\n        {{ if options.live }}\n        <span class=\"dplayer-live-badge\"><span class=\"dplayer-live-dot\" style=\"background: {{ options.theme }};\"></span>{{ tran('Live') }}</span>\n        {{ /if }}\n    </div>\n    <div class=\"dplayer-icons dplayer-icons-right\">\n        {{ if options.video.quality }}\n        <div class=\"dplayer-quality\">\n            <button class=\"dplayer-icon dplayer-quality-icon\">{{ options.video.quality[options.video.defaultQuality].name }}</button>\n            <div class=\"dplayer-quality-mask\">\n                <div class=\"dplayer-quality-list\">\n                {{ each options.video.quality }}\n                    <div class=\"dplayer-quality-item\" data-index=\"{{ $index }}\">{{ $value.name }}</div>\n                {{ /each }}\n                </div>\n            </div>\n        </div>\n        {{ /if }}\n        {{ if options.screenshot }}\n        <div class=\"dplayer-icon dplayer-camera-icon\" data-balloon=\"{{ tran('Screenshot') }}\" data-balloon-pos=\"up\">\n            <span class=\"dplayer-icon-content\">{{@ icons.camera }}</span>\n        </div>\n        {{ /if }}\n        {{ if options.airplay }}\n        <div class=\"dplayer-icon dplayer-airplay-icon\" data-balloon=\"{{ tran('AirPlay') }}\" data-balloon-pos=\"up\">\n            <span class=\"dplayer-icon-content\">{{@ icons.airplay }}</span>\n        </div>\n        {{ /if }}\n        <div class=\"dplayer-comment\">\n            <button class=\"dplayer-icon dplayer-comment-icon\" data-balloon=\"{{ tran('Send danmaku') }}\" data-balloon-pos=\"up\">\n                <span class=\"dplayer-icon-content\">{{@ icons.comment }}</span>\n            </button>\n        </div>\n        {{ if options.subtitle }}\n        <div class=\"dplayer-subtitle-btn\">\n            <button class=\"dplayer-icon dplayer-subtitle-icon\" data-balloon=\"{{ tran('Hide subtitle') }}\" data-balloon-pos=\"up\">\n                <span class=\"dplayer-icon-content\">{{@ icons.subtitle }}</span>\n            </button>\n        </div>\n        {{ /if }}\n        <div class=\"dplayer-setting\">\n            <button class=\"dplayer-icon dplayer-setting-icon\" data-balloon=\"{{ tran('Setting') }}\" data-balloon-pos=\"up\">\n                <span class=\"dplayer-icon-content\">{{@ icons.setting }}</span>\n            </button>\n            <div class=\"dplayer-setting-box\">\n                <div class=\"dplayer-setting-origin-panel\">\n                    <div class=\"dplayer-setting-item dplayer-setting-speed\">\n                        <span class=\"dplayer-label\">{{ tran('Speed') }}</span>\n                        <div class=\"dplayer-toggle\">{{@ icons.right }}</div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-loop\">\n                        <span class=\"dplayer-label\">{{ tran('Loop') }}</span>\n                        <div class=\"dplayer-toggle\">\n                            <input class=\"dplayer-toggle-setting-input\" type=\"checkbox\" name=\"dplayer-toggle\">\n                            <label for=\"dplayer-toggle\"></label>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-showdan\">\n                        <span class=\"dplayer-label\">{{ tran('Show danmaku') }}</span>\n                        <div class=\"dplayer-toggle\">\n                            <input class=\"dplayer-showdan-setting-input\" type=\"checkbox\" name=\"dplayer-toggle-dan\">\n                            <label for=\"dplayer-toggle-dan\"></label>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-danunlimit\">\n                        <span class=\"dplayer-label\">{{ tran('Unlimited danmaku') }}</span>\n                        <div class=\"dplayer-toggle\">\n                            <input class=\"dplayer-danunlimit-setting-input\" type=\"checkbox\" name=\"dplayer-toggle-danunlimit\">\n                            <label for=\"dplayer-toggle-danunlimit\"></label>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-danmaku\">\n                        <span class=\"dplayer-label\">{{ tran('Opacity for danmaku') }}</span>\n                        <div class=\"dplayer-danmaku-bar-wrap\">\n                            <div class=\"dplayer-danmaku-bar\">\n                                <div class=\"dplayer-danmaku-bar-inner\">\n                                    <span class=\"dplayer-thumb\"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div class=\"dplayer-setting-speed-panel\">\n                    {{ each options.playbackSpeed }}\n                        <div class=\"dplayer-setting-speed-item\" data-speed=\"{{ $value }}\">\n                            <span class=\"dplayer-label\">{{ $value === 1 ? tran('Normal') : $value }}</span>\n                        </div>\n                    {{ /each }}\n                </div>\n            </div>\n        </div>\n        <div class=\"dplayer-full\">\n            <button class=\"dplayer-icon dplayer-full-in-icon\" data-balloon=\"{{ tran('Web full screen') }}\" data-balloon-pos=\"up\">\n                <span class=\"dplayer-icon-content\">{{@ icons.fullWeb }}</span>\n            </button>\n            <button class=\"dplayer-icon dplayer-full-icon\" data-balloon=\"{{ tran('Full screen') }}\" data-balloon-pos=\"up\">\n                <span class=\"dplayer-icon-content\">{{@ icons.full }}</span>\n            </button>\n        </div>\n    </div>\n    <div class=\"dplayer-bar-wrap\">\n        <div class=\"dplayer-bar-time hidden\">00:00</div>\n        <div class=\"dplayer-bar-preview\"></div>\n        <div class=\"dplayer-bar\">\n            <div class=\"dplayer-loaded\" style=\"width: 0;\"></div>\n            <div class=\"dplayer-played\" style=\"width: 0; background: {{ options.theme }}\">\n                <span class=\"dplayer-thumb\" style=\"background: {{ options.theme }}\"></span>\n            </div>\n        </div>\n    </div>\n</div>\n<div class=\"dplayer-info-panel dplayer-info-panel-hide\">\n    <div class=\"dplayer-info-panel-close\">[x]</div>\n    <div class=\"dplayer-info-panel-item dplayer-info-panel-item-version\">\n        <span class=\"dplayer-info-panel-item-title\">Player version</span>\n        <span class=\"dplayer-info-panel-item-data\"></span>\n    </div>\n    <div class=\"dplayer-info-panel-item dplayer-info-panel-item-fps\">\n        <span class=\"dplayer-info-panel-item-title\">Player FPS</span>\n        <span class=\"dplayer-info-panel-item-data\"></span>\n    </div>\n    <div class=\"dplayer-info-panel-item dplayer-info-panel-item-type\">\n        <span class=\"dplayer-info-panel-item-title\">Video type</span>\n        <span class=\"dplayer-info-panel-item-data\"></span>\n    </div>\n    <div class=\"dplayer-info-panel-item dplayer-info-panel-item-url\">\n        <span class=\"dplayer-info-panel-item-title\">Video url</span>\n        <span class=\"dplayer-info-panel-item-data\"></span>\n    </div>\n    <div class=\"dplayer-info-panel-item dplayer-info-panel-item-resolution\">\n        <span class=\"dplayer-info-panel-item-title\">Video resolution</span>\n        <span class=\"dplayer-info-panel-item-data\"></span>\n    </div>\n    <div class=\"dplayer-info-panel-item dplayer-info-panel-item-duration\">\n        <span class=\"dplayer-info-panel-item-title\">Video duration</span>\n        <span class=\"dplayer-info-panel-item-data\"></span>\n    </div>\n    {{ if options.danmaku }}\n    <div class=\"dplayer-info-panel-item dplayer-info-panel-item-danmaku-id\">\n        <span class=\"dplayer-info-panel-item-title\">Danmaku id</span>\n        <span class=\"dplayer-info-panel-item-data\"></span>\n    </div>\n    <div class=\"dplayer-info-panel-item dplayer-info-panel-item-danmaku-api\">\n        <span class=\"dplayer-info-panel-item-title\">Danmaku api</span>\n        <span class=\"dplayer-info-panel-item-data\"></span>\n    </div>\n    <div class=\"dplayer-info-panel-item dplayer-info-panel-item-danmaku-amount\">\n        <span class=\"dplayer-info-panel-item-title\">Danmaku amount</span>\n        <span class=\"dplayer-info-panel-item-data\"></span>\n    </div>\n    {{ /if }}\n</div>\n<div class=\"dplayer-menu\">\n    {{ each options.contextmenu }}\n        <div class=\"dplayer-menu-item\">\n            <a{{ if $value.link }} target=\"_blank\"{{ /if }} href=\"{{ $value.link || 'javascript:void(0);' }}\">{{ tran($value.text) }}</a>\n        </div>\n    {{ /each }}\n</div>\n<div class=\"dplayer-notice\"></div>\n<button class=\"dplayer-mobile-play\">\n    {{@ icons.play }}\n</button>","var api = require(\"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n            var content = require(\"!!../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../node_modules/postcss-loader/src/index.js??ref--5-2!../../node_modules/sass-loader/dist/cjs.js!./index.scss\");\n\n            content = content.__esModule ? content.default : content;\n\n            if (typeof content === 'string') {\n              content = [[module.id, content, '']];\n            }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n  var memo;\n  return function memorize() {\n    if (typeof memo === 'undefined') {\n      // Test for IE <= 9 as proposed by Browserhacks\n      // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n      // Tests for existence of standard globals is to allow style-loader\n      // to operate correctly into non-standard environments\n      // @see https://github.com/webpack-contrib/style-loader/issues/177\n      memo = Boolean(window && document && document.all && !window.atob);\n    }\n\n    return memo;\n  };\n}();\n\nvar getTarget = function getTarget() {\n  var memo = {};\n  return function memorize(target) {\n    if (typeof memo[target] === 'undefined') {\n      var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n      if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n        try {\n          // This will throw an exception if access to iframe is blocked\n          // due to cross-origin restrictions\n          styleTarget = styleTarget.contentDocument.head;\n        } catch (e) {\n          // istanbul ignore next\n          styleTarget = null;\n        }\n      }\n\n      memo[target] = styleTarget;\n    }\n\n    return memo[target];\n  };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n  var result = -1;\n\n  for (var i = 0; i < stylesInDom.length; i++) {\n    if (stylesInDom[i].identifier === identifier) {\n      result = i;\n      break;\n    }\n  }\n\n  return result;\n}\n\nfunction modulesToDom(list, options) {\n  var idCountMap = {};\n  var identifiers = [];\n\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i];\n    var id = options.base ? item[0] + options.base : item[0];\n    var count = idCountMap[id] || 0;\n    var identifier = \"\".concat(id, \" \").concat(count);\n    idCountMap[id] = count + 1;\n    var index = getIndexByIdentifier(identifier);\n    var obj = {\n      css: item[1],\n      media: item[2],\n      sourceMap: item[3]\n    };\n\n    if (index !== -1) {\n      stylesInDom[index].references++;\n      stylesInDom[index].updater(obj);\n    } else {\n      stylesInDom.push({\n        identifier: identifier,\n        updater: addStyle(obj, options),\n        references: 1\n      });\n    }\n\n    identifiers.push(identifier);\n  }\n\n  return identifiers;\n}\n\nfunction insertStyleElement(options) {\n  var style = document.createElement('style');\n  var attributes = options.attributes || {};\n\n  if (typeof attributes.nonce === 'undefined') {\n    var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n    if (nonce) {\n      attributes.nonce = nonce;\n    }\n  }\n\n  Object.keys(attributes).forEach(function (key) {\n    style.setAttribute(key, attributes[key]);\n  });\n\n  if (typeof options.insert === 'function') {\n    options.insert(style);\n  } else {\n    var target = getTarget(options.insert || 'head');\n\n    if (!target) {\n      throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n    }\n\n    target.appendChild(style);\n  }\n\n  return style;\n}\n\nfunction removeStyleElement(style) {\n  // istanbul ignore if\n  if (style.parentNode === null) {\n    return false;\n  }\n\n  style.parentNode.removeChild(style);\n}\n/* istanbul ignore next  */\n\n\nvar replaceText = function replaceText() {\n  var textStore = [];\n  return function replace(index, replacement) {\n    textStore[index] = replacement;\n    return textStore.filter(Boolean).join('\\n');\n  };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n  var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n  /* istanbul ignore if  */\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = replaceText(index, css);\n  } else {\n    var cssNode = document.createTextNode(css);\n    var childNodes = style.childNodes;\n\n    if (childNodes[index]) {\n      style.removeChild(childNodes[index]);\n    }\n\n    if (childNodes.length) {\n      style.insertBefore(cssNode, childNodes[index]);\n    } else {\n      style.appendChild(cssNode);\n    }\n  }\n}\n\nfunction applyToTag(style, options, obj) {\n  var css = obj.css;\n  var media = obj.media;\n  var sourceMap = obj.sourceMap;\n\n  if (media) {\n    style.setAttribute('media', media);\n  } else {\n    style.removeAttribute('media');\n  }\n\n  if (sourceMap && btoa) {\n    css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n  } // For old IE\n\n  /* istanbul ignore if  */\n\n\n  if (style.styleSheet) {\n    style.styleSheet.cssText = css;\n  } else {\n    while (style.firstChild) {\n      style.removeChild(style.firstChild);\n    }\n\n    style.appendChild(document.createTextNode(css));\n  }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n  var style;\n  var update;\n  var remove;\n\n  if (options.singleton) {\n    var styleIndex = singletonCounter++;\n    style = singleton || (singleton = insertStyleElement(options));\n    update = applyToSingletonTag.bind(null, style, styleIndex, false);\n    remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n  } else {\n    style = insertStyleElement(options);\n    update = applyToTag.bind(null, style, options);\n\n    remove = function remove() {\n      removeStyleElement(style);\n    };\n  }\n\n  update(obj);\n  return function updateStyle(newObj) {\n    if (newObj) {\n      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n        return;\n      }\n\n      update(obj = newObj);\n    } else {\n      remove();\n    }\n  };\n}\n\nmodule.exports = function (list, options) {\n  options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n  // tags it will allow on a page\n\n  if (!options.singleton && typeof options.singleton !== 'boolean') {\n    options.singleton = isOldIE();\n  }\n\n  list = list || [];\n  var lastIdentifiers = modulesToDom(list, options);\n  return function update(newList) {\n    newList = newList || [];\n\n    if (Object.prototype.toString.call(newList) !== '[object Array]') {\n      return;\n    }\n\n    for (var i = 0; i < lastIdentifiers.length; i++) {\n      var identifier = lastIdentifiers[i];\n      var index = getIndexByIdentifier(identifier);\n      stylesInDom[index].references--;\n    }\n\n    var newLastIdentifiers = modulesToDom(newList, options);\n\n    for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n      var _identifier = lastIdentifiers[_i];\n\n      var _index = getIndexByIdentifier(_identifier);\n\n      if (stylesInDom[_index].references === 0) {\n        stylesInDom[_index].updater();\n\n        stylesInDom.splice(_index, 1);\n      }\n    }\n\n    lastIdentifiers = newLastIdentifiers;\n  };\n};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../node_modules/css-loader/dist/runtime/api.js\");\nvar ___CSS_LOADER_AT_RULE_IMPORT_0___ = require(\"-!../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../node_modules/postcss-loader/src/index.js??ref--5-2!../../node_modules/balloon-css/balloon.css\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\nexports.i(___CSS_LOADER_AT_RULE_IMPORT_0___);\n// Module\nexports.push([module.id, \"@-webkit-keyframes my-face{2%{transform:translateY(1.5px) rotate(1.5deg)}4%{transform:translateY(-1.5px) rotate(-.5deg)}6%{transform:translateY(1.5px) rotate(-1.5deg)}8%{transform:translateY(-1.5px) rotate(-1.5deg)}10%{transform:translateY(2.5px) rotate(1.5deg)}12%{transform:translateY(-.5px) rotate(1.5deg)}14%{transform:translateY(-1.5px) rotate(1.5deg)}16%{transform:translateY(-.5px) rotate(-1.5deg)}18%{transform:translateY(.5px) rotate(-1.5deg)}20%{transform:translateY(-1.5px) rotate(2.5deg)}22%{transform:translateY(.5px) rotate(-1.5deg)}24%{transform:translateY(1.5px) rotate(1.5deg)}26%{transform:translateY(.5px) rotate(.5deg)}28%{transform:translateY(.5px) rotate(1.5deg)}30%{transform:translateY(-.5px) rotate(2.5deg)}32%{transform:translateY(1.5px) rotate(-.5deg)}34%{transform:translateY(1.5px) rotate(-.5deg)}36%{transform:translateY(-1.5px) rotate(2.5deg)}38%{transform:translateY(1.5px) rotate(-1.5deg)}40%{transform:translateY(-.5px) rotate(2.5deg)}42%{transform:translateY(2.5px) rotate(-1.5deg)}44%{transform:translateY(1.5px) rotate(.5deg)}46%{transform:translateY(-1.5px) rotate(2.5deg)}48%{transform:translateY(-.5px) rotate(.5deg)}50%{transform:translateY(.5px) rotate(.5deg)}52%{transform:translateY(2.5px) rotate(2.5deg)}54%{transform:translateY(-1.5px) rotate(1.5deg)}56%{transform:translateY(2.5px) rotate(2.5deg)}58%{transform:translateY(.5px) rotate(2.5deg)}60%{transform:translateY(2.5px) rotate(2.5deg)}62%{transform:translateY(-.5px) rotate(2.5deg)}64%{transform:translateY(-.5px) rotate(1.5deg)}66%{transform:translateY(1.5px) rotate(-.5deg)}68%{transform:translateY(-1.5px) rotate(-.5deg)}70%{transform:translateY(1.5px) rotate(.5deg)}72%{transform:translateY(2.5px) rotate(1.5deg)}74%{transform:translateY(-.5px) rotate(.5deg)}76%{transform:translateY(-.5px) rotate(2.5deg)}78%{transform:translateY(-.5px) rotate(1.5deg)}80%{transform:translateY(1.5px) rotate(1.5deg)}82%{transform:translateY(-.5px) rotate(.5deg)}84%{transform:translateY(1.5px) rotate(2.5deg)}86%{transform:translateY(-1.5px) rotate(-1.5deg)}88%{transform:translateY(-.5px) rotate(2.5deg)}90%{transform:translateY(2.5px) rotate(-.5deg)}92%{transform:translateY(.5px) rotate(-.5deg)}94%{transform:translateY(2.5px) rotate(.5deg)}96%{transform:translateY(-.5px) rotate(1.5deg)}98%{transform:translateY(-1.5px) rotate(-.5deg)}0%,to{transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{transform:translateY(1.5px) rotate(1.5deg)}4%{transform:translateY(-1.5px) rotate(-.5deg)}6%{transform:translateY(1.5px) rotate(-1.5deg)}8%{transform:translateY(-1.5px) rotate(-1.5deg)}10%{transform:translateY(2.5px) rotate(1.5deg)}12%{transform:translateY(-.5px) rotate(1.5deg)}14%{transform:translateY(-1.5px) rotate(1.5deg)}16%{transform:translateY(-.5px) rotate(-1.5deg)}18%{transform:translateY(.5px) rotate(-1.5deg)}20%{transform:translateY(-1.5px) rotate(2.5deg)}22%{transform:translateY(.5px) rotate(-1.5deg)}24%{transform:translateY(1.5px) rotate(1.5deg)}26%{transform:translateY(.5px) rotate(.5deg)}28%{transform:translateY(.5px) rotate(1.5deg)}30%{transform:translateY(-.5px) rotate(2.5deg)}32%{transform:translateY(1.5px) rotate(-.5deg)}34%{transform:translateY(1.5px) rotate(-.5deg)}36%{transform:translateY(-1.5px) rotate(2.5deg)}38%{transform:translateY(1.5px) rotate(-1.5deg)}40%{transform:translateY(-.5px) rotate(2.5deg)}42%{transform:translateY(2.5px) rotate(-1.5deg)}44%{transform:translateY(1.5px) rotate(.5deg)}46%{transform:translateY(-1.5px) rotate(2.5deg)}48%{transform:translateY(-.5px) rotate(.5deg)}50%{transform:translateY(.5px) rotate(.5deg)}52%{transform:translateY(2.5px) rotate(2.5deg)}54%{transform:translateY(-1.5px) rotate(1.5deg)}56%{transform:translateY(2.5px) rotate(2.5deg)}58%{transform:translateY(.5px) rotate(2.5deg)}60%{transform:translateY(2.5px) rotate(2.5deg)}62%{transform:translateY(-.5px) rotate(2.5deg)}64%{transform:translateY(-.5px) rotate(1.5deg)}66%{transform:translateY(1.5px) rotate(-.5deg)}68%{transform:translateY(-1.5px) rotate(-.5deg)}70%{transform:translateY(1.5px) rotate(.5deg)}72%{transform:translateY(2.5px) rotate(1.5deg)}74%{transform:translateY(-.5px) rotate(.5deg)}76%{transform:translateY(-.5px) rotate(2.5deg)}78%{transform:translateY(-.5px) rotate(1.5deg)}80%{transform:translateY(1.5px) rotate(1.5deg)}82%{transform:translateY(-.5px) rotate(.5deg)}84%{transform:translateY(1.5px) rotate(2.5deg)}86%{transform:translateY(-1.5px) rotate(-1.5deg)}88%{transform:translateY(-.5px) rotate(2.5deg)}90%{transform:translateY(2.5px) rotate(-.5deg)}92%{transform:translateY(.5px) rotate(-.5deg)}94%{transform:translateY(2.5px) rotate(.5deg)}96%{transform:translateY(-.5px) rotate(1.5deg)}98%{transform:translateY(-1.5px) rotate(-.5deg)}0%,to{transform:translate(0) rotate(0deg)}}.dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer *{box-sizing:content-box}.dplayer svg{width:100%;height:100%}.dplayer svg circle,.dplayer svg path{fill:#fff}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000;position:fixed;z-index:100000;left:0;top:0;margin:0;padding:0;transform:translate(0)}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:inherit;animation-play-state:inherit}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:inherit;animation-play-state:inherit}.dplayer.dplayer-live .dplayer-bar-wrap,.dplayer.dplayer-live.dplayer-no-danmaku .dplayer-setting,.dplayer.dplayer-live .dplayer-setting-loop,.dplayer.dplayer-live .dplayer-setting-speed,.dplayer.dplayer-live .dplayer-time,.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box .dplayer-setting-danmaku,.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box .dplayer-setting-danunlimit,.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box .dplayer-setting-showdan,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-arrow .dplayer-danmaku{font-size:18px}.dplayer.dplayer-arrow .dplayer-icon{margin:0 -3px}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running;animation-play-state:running}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku,.dplayer.dplayer-loading .dplayer-danmaku-move,.dplayer.dplayer-paused .dplayer-danmaku,.dplayer.dplayer-paused .dplayer-danmaku-move{-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-hide-controller{cursor:none}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer.dplayer-fulled{position:fixed;z-index:100000;left:0;top:0;width:100%!important;height:100%!important}.dplayer.dplayer-mobile .dplayer-controller .dplayer-icons .dplayer-airplay-icon,.dplayer.dplayer-mobile .dplayer-controller .dplayer-icons .dplayer-camera-icon,.dplayer.dplayer-mobile .dplayer-controller .dplayer-icons .dplayer-play-icon,.dplayer.dplayer-mobile .dplayer-controller .dplayer-icons .dplayer-volume{display:none}.dplayer.dplayer-mobile .dplayer-controller .dplayer-icons .dplayer-full .dplayer-full-in-icon{position:static;display:inline-block}.dplayer.dplayer-mobile .dplayer-bar-time,.dplayer.dplayer-mobile.dplayer-hide-controller .dplayer-mobile-play{display:none}.dplayer.dplayer-mobile .dplayer-mobile-play{display:block}.dplayer-web-fullscreen-fix{position:fixed;top:0;left:0;margin:0;padding:0}[data-balloon]:before{display:none}[data-balloon]:after{padding:.3em .7em;background:rgba(17,17,17,.7)}[data-balloon][data-balloon-pos=up]:after{margin-bottom:0}.dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(2)}}.dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s ease-in-out infinite;animation:my-face 5s ease-in-out infinite}.dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;transform-origin:4px 4px}.dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;transform:scale(1.2)}50%{opacity:.25;transform:scale(.9)}to{opacity:.25;transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;transform:scale(1.2)}50%{opacity:.25;transform:scale(.9)}to{opacity:.25;transform:scale(.85)}}.dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer-controller,.dplayer-controller-mask{position:absolute;bottom:0;transition:all .3s ease}.dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer-controller.dplayer-controller-comment .dplayer-icons{display:none}.dplayer-controller.dplayer-controller-comment .dplayer-icons.dplayer-comment-box{display:block}.dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer-controller .dplayer-bar-wrap:hover .dplayer-bar .dplayer-played .dplayer-thumb{transform:scale(1)}.dplayer-controller .dplayer-bar-wrap:hover .dplayer-highlight{display:block;width:8px;transform:translateX(-4px);top:4px;height:40%}.dplayer-controller .dplayer-bar-wrap .dplayer-highlight{z-index:12;position:absolute;top:5px;width:6px;height:20%;border-radius:6px;background-color:#fff;text-align:center;transform:translateX(-3px);transition:all .2s ease-in-out}.dplayer-controller .dplayer-bar-wrap .dplayer-highlight:hover .dplayer-highlight-text{display:block}.dplayer-controller .dplayer-bar-wrap .dplayer-highlight:hover~.dplayer-bar-preview,.dplayer-controller .dplayer-bar-wrap .dplayer-highlight:hover~.dplayer-bar-time{opacity:0}.dplayer-controller .dplayer-bar-wrap .dplayer-highlight .dplayer-highlight-text{display:none;position:absolute;left:50%;top:-24px;padding:5px 8px;background-color:rgba(0,0,0,.62);color:#fff;border-radius:4px;font-size:12px;white-space:nowrap;transform:translateX(-50%)}.dplayer-controller .dplayer-bar-wrap .dplayer-bar-preview{position:absolute;background:#fff;pointer-events:none;display:none;background-size:16000px 100%}.dplayer-controller .dplayer-bar-wrap .dplayer-bar-preview-canvas{position:absolute;width:100%;height:100%;z-index:1;pointer-events:none}.dplayer-controller .dplayer-bar-wrap .dplayer-bar-time{position:absolute;left:0;top:-20px;border-radius:4px;padding:5px 7px;background-color:rgba(0,0,0,.62);color:#fff;font-size:12px;text-align:center;opacity:1;transition:opacity .1s ease-in-out;word-wrap:normal;word-break:normal;z-index:2;pointer-events:none}.dplayer-controller .dplayer-bar-wrap .dplayer-bar-time.hidden{opacity:0}.dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer}.dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{background:hsla(0,0%,100%,.4);transition:all .5s ease}.dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded,.dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer;transition:all .3s ease-in-out;transform:scale(0)}.dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer-controller .dplayer-icons.dplayer-comment-box{display:none;position:absolute;transition:all .3s ease-in-out;z-index:2;height:38px;bottom:0;left:20px;right:20px;color:#fff}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-icon{padding:7px}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-icon{position:absolute;left:0;top:0}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-send-icon{position:absolute;right:0;top:0}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:rgba(28,28,28,.9);bottom:41px;left:0;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;transition:all .3s ease-in-out;transform:scale(0)}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{transform:scale(1)}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:13px;color:#fff;line-height:30px}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type .dplayer-comment-setting-title{margin-bottom:6px}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#fff;border:1px solid #fff;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6;color:#1c1c1c}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s ease-in-out infinite;animation:my-face 5s ease-in-out infinite}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;background:none;margin:0;height:100%;box-sizing:border-box;width:100%;color:#fff}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-input::-webkit-input-placeholder{color:#fff;opacity:.8}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-input::-moz-placeholder{color:#fff;opacity:.8}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-input:-ms-input-placeholder{color:#fff;opacity:.8}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-input::-ms-input-placeholder{color:#fff;opacity:.8}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-input::placeholder{color:#fff;opacity:.8}.dplayer-controller .dplayer-icons.dplayer-comment-box .dplayer-comment-input::-ms-clear{display:none}.dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer-controller .dplayer-icons .dplayer-live-badge,.dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer-controller .dplayer-icons .dplayer-live-dot{display:inline-block;width:6px;height:6px;vertical-align:4%;margin-right:5px;content:\\\"\\\";border-radius:6px}.dplayer-controller .dplayer-icons .dplayer-icon{width:40px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;vertical-align:middle;box-sizing:border-box;display:inline-block}.dplayer-controller .dplayer-icons .dplayer-icon .dplayer-icon-content{transition:all .2s ease-in-out;opacity:.8}.dplayer-controller .dplayer-icons .dplayer-icon:hover .dplayer-icon-content{opacity:1}.dplayer-controller .dplayer-icons .dplayer-icon.dplayer-quality-icon{color:#fff;width:auto;line-height:22px;font-size:14px}.dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer-controller .dplayer-icons .dplayer-icon.dplayer-volume-icon{width:43px}.dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer;height:100%}.dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar-wrap .dplayer-volume-bar{width:45px}.dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{transform:scale(1)}.dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar-wrap .dplayer-volume-bar{width:45px}.dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{transform:scale(1)}.dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 10px 0 -5px;vertical-align:middle;height:100%}.dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;transition:all .3s ease-in-out}.dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;transition:all .1s ease;will-change:width}.dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer;transition:all .3s ease-in-out;transform:scale(0)}.dplayer-controller .dplayer-icons .dplayer-setting,.dplayer-controller .dplayer-icons .dplayer-subtitle-btn{display:inline-block;height:100%}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;transform:scale(0);width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box>div{display:none}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box>div.dplayer-setting-origin-panel{display:block}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{transform:scale(1)}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;text-align:center}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-speed .dplayer-setting-origin-panel{display:none}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-speed .dplayer-setting-speed-panel{display:block}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer;position:relative}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;transition:all .3s ease-in-out}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;transition:all .1s ease;background:#aaa;will-change:width}.dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer;transition:all .3s ease-in-out;background:#aaa}.dplayer-controller .dplayer-icons .dplayer-full{display:inline-block;height:100%;position:relative}.dplayer-controller .dplayer-icons .dplayer-full:hover .dplayer-full-in-icon{display:block}.dplayer-controller .dplayer-icons .dplayer-full .dplayer-full-in-icon{position:absolute;top:-30px;z-index:1;display:none}.dplayer-controller .dplayer-icons .dplayer-quality{position:relative;display:inline-block;height:100%;z-index:2}.dplayer-controller .dplayer-icons .dplayer-quality:hover .dplayer-quality-list,.dplayer-controller .dplayer-icons .dplayer-quality:hover .dplayer-quality-mask{display:block}.dplayer-controller .dplayer-icons .dplayer-quality .dplayer-quality-mask{display:none;position:absolute;bottom:38px;left:-18px;width:80px;padding-bottom:12px}.dplayer-controller .dplayer-icons .dplayer-quality .dplayer-quality-list{display:none;font-size:12px;width:80px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;transition:all .3s ease-in-out;overflow:hidden;color:#fff;text-align:center}.dplayer-controller .dplayer-icons .dplayer-quality .dplayer-quality-item{height:25px;box-sizing:border-box;cursor:pointer;line-height:25px}.dplayer-controller .dplayer-icons .dplayer-quality .dplayer-quality-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle;white-space:nowrap}.dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:20px;text-align:center;font-size:0;vertical-align:middle;position:absolute;top:5px;right:10px}.dplayer-controller .dplayer-icons .dplayer-toggle input{max-height:0;max-width:0;display:none}.dplayer-controller .dplayer-icons .dplayer-toggle input+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;transition:.2s ease-in-out}.dplayer-controller .dplayer-icons .dplayer-toggle input+label:after,.dplayer-controller .dplayer-icons .dplayer-toggle input+label:before{content:\\\"\\\";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;transition:.2s ease-in-out}.dplayer-controller .dplayer-icons .dplayer-toggle input+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:after{left:12px}.dplayer-mobile-play{display:none;width:50px;height:50px;border:none;background-color:transparent;outline:none;cursor:pointer;box-sizing:border-box;bottom:0;opacity:.8;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer-danmaku .dplayer-danmaku-item--demo{position:absolute;visibility:hidden}.dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;transform:translateX(100%)}.dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{transform:translateX(100%)}}@keyframes danmaku{0%{transform:translateX(100%)}}.dplayer-danmaku .dplayer-danmaku-bottom,.dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer-logo{pointer-events:none;position:absolute;left:20px;top:20px;max-width:50px;max-height:50px}.dplayer-logo img{max-width:100%;max-height:100%;background:none}.dplayer-menu{position:absolute;width:170px;border-radius:2px;background:rgba(28,28,28,.85);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer-menu.dplayer-menu-show{display:block}.dplayer-menu .dplayer-menu-item{height:30px;box-sizing:border-box;cursor:pointer}.dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer-menu .dplayer-menu-item a{padding:0 10px;line-height:30px;color:#eee;font-size:13px;display:inline-block;vertical-align:middle;width:100%;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dplayer-menu .dplayer-menu-item a:hover{text-decoration:none}.dplayer-notice{opacity:0;position:absolute;bottom:60px;left:20px;font-size:14px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 20px;transition:all .3s ease-in-out;overflow:hidden;color:#fff;pointer-events:none}.dplayer-subtitle{position:absolute;bottom:40px;width:90%;left:5%;text-align:center;color:#fff;text-shadow:.5px .5px .5px rgba(0,0,0,.5);font-size:20px}.dplayer-subtitle.dplayer-subtitle-hide{display:none}.dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer-mask.dplayer-mask-show{display:block}.dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer-video-wrap .dplayer-video{width:100%;height:100%;display:none}.dplayer-video-wrap .dplayer-video-current{display:block}.dplayer-video-wrap .dplayer-video-prepare{display:none}.dplayer-info-panel{position:absolute;top:10px;left:10px;width:400px;background:rgba(28,28,28,.8);padding:10px;color:#fff;font-size:12px;border-radius:2px}.dplayer-info-panel-hide{display:none}.dplayer-info-panel .dplayer-info-panel-close{cursor:pointer;position:absolute;right:10px;top:10px}.dplayer-info-panel .dplayer-info-panel-item>span{display:inline-block;vertical-align:middle;line-height:15px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dplayer-info-panel .dplayer-info-panel-item-title{width:100px;text-align:right;margin-right:10px}.dplayer-info-panel .dplayer-info-panel-item-data{width:260px}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \":root{--balloon-border-radius:2px;--balloon-color:rgba(16,16,16,0.95);--balloon-text-color:#fff;--balloon-font-size:12px;--balloon-move:4px}button[aria-label][data-balloon-pos]{overflow:visible}[aria-label][data-balloon-pos]{position:relative;cursor:pointer}[aria-label][data-balloon-pos]:after{text-indent:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-weight:400;font-style:normal;text-shadow:none;font-size:var(--balloon-font-size);background:var(--balloon-color);border-radius:2px;color:var(--balloon-text-color);border-radius:var(--balloon-border-radius);content:attr(aria-label);padding:.5em 1em;white-space:nowrap}[aria-label][data-balloon-pos]:after,[aria-label][data-balloon-pos]:before{opacity:0;pointer-events:none;transition:all .18s ease-out .18s;position:absolute;z-index:10}[aria-label][data-balloon-pos]:before{width:0;height:0;border:5px solid transparent;border-top:5px solid var(--balloon-color);content:\\\"\\\"}[aria-label][data-balloon-pos]:hover:after,[aria-label][data-balloon-pos]:hover:before,[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:after,[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:before,[aria-label][data-balloon-pos][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-visible]:before{opacity:1;pointer-events:none}[aria-label][data-balloon-pos].font-awesome:after{font-family:FontAwesome,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}[aria-label][data-balloon-pos][data-balloon-break]:after{white-space:pre}[aria-label][data-balloon-pos][data-balloon-break][data-balloon-length]:after{white-space:pre-line;word-break:break-word}[aria-label][data-balloon-pos][data-balloon-blunt]:after,[aria-label][data-balloon-pos][data-balloon-blunt]:before{transition:none}[aria-label][data-balloon-pos][data-balloon-pos=up]:after{margin-bottom:10px}[aria-label][data-balloon-pos][data-balloon-pos=up]:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:before{bottom:100%;left:50%;transform:translate(-50%,var(--balloon-move));transform-origin:top}[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=up]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=up][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=up][data-balloon-visible]:before{transform:translate(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=up-left]:after{bottom:100%;left:0;margin-bottom:10px;transform:translateY(var(--balloon-move));transform-origin:top}[aria-label][data-balloon-pos][data-balloon-pos=up-left]:before{bottom:100%;left:5px;transform:translateY(var(--balloon-move));transform-origin:top}[aria-label][data-balloon-pos][data-balloon-pos=up-left]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=up-left]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=up-left][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=up-left][data-balloon-visible]:before{transform:translate(0)}[aria-label][data-balloon-pos][data-balloon-pos=up-right]:after{bottom:100%;right:0;margin-bottom:10px;transform:translateY(var(--balloon-move));transform-origin:top}[aria-label][data-balloon-pos][data-balloon-pos=up-right]:before{bottom:100%;right:5px;transform:translateY(var(--balloon-move));transform-origin:top}[aria-label][data-balloon-pos][data-balloon-pos=up-right]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=up-right]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=up-right][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=up-right][data-balloon-visible]:before{transform:translate(0)}[aria-label][data-balloon-pos][data-balloon-pos=down]:after{left:50%;margin-top:10px;top:100%;transform:translate(-50%,calc(var(--balloon-move)*-1))}[aria-label][data-balloon-pos][data-balloon-pos=down]:before{width:0;height:0;border:5px solid transparent;border-bottom:5px solid var(--balloon-color);left:50%;top:100%;transform:translate(-50%,calc(var(--balloon-move)*-1))}[aria-label][data-balloon-pos][data-balloon-pos=down]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=down]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=down][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=down][data-balloon-visible]:before{transform:translate(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=down-left]:after{left:0;margin-top:10px;top:100%;transform:translateY(calc(var(--balloon-move)*-1))}[aria-label][data-balloon-pos][data-balloon-pos=down-left]:before{width:0;height:0;border:5px solid transparent;border-bottom:5px solid var(--balloon-color);left:5px;top:100%;transform:translateY(calc(var(--balloon-move)*-1))}[aria-label][data-balloon-pos][data-balloon-pos=down-left]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=down-left]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=down-left][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=down-left][data-balloon-visible]:before{transform:translate(0)}[aria-label][data-balloon-pos][data-balloon-pos=down-right]:after{right:0;margin-top:10px;top:100%;transform:translateY(calc(var(--balloon-move)*-1))}[aria-label][data-balloon-pos][data-balloon-pos=down-right]:before{width:0;height:0;border:5px solid transparent;border-bottom:5px solid var(--balloon-color);right:5px;top:100%;transform:translateY(calc(var(--balloon-move)*-1))}[aria-label][data-balloon-pos][data-balloon-pos=down-right]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=down-right]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=down-right][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=down-right][data-balloon-visible]:before{transform:translate(0)}[aria-label][data-balloon-pos][data-balloon-pos=left]:after{margin-right:10px;right:100%;top:50%;transform:translate(var(--balloon-move),-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:before{width:0;height:0;border:5px solid transparent;border-left:5px solid var(--balloon-color);right:100%;top:50%;transform:translate(var(--balloon-move),-50%)}[aria-label][data-balloon-pos][data-balloon-pos=left]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=left]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=left][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=left][data-balloon-visible]:before{transform:translateY(-50%)}[aria-label][data-balloon-pos][data-balloon-pos=right]:after{left:100%;margin-left:10px;top:50%;transform:translate(calc(var(--balloon-move)*-1),-50%)}[aria-label][data-balloon-pos][data-balloon-pos=right]:before{width:0;height:0;border:5px solid transparent;border-right:5px solid var(--balloon-color);left:100%;top:50%;transform:translate(calc(var(--balloon-move)*-1),-50%)}[aria-label][data-balloon-pos][data-balloon-pos=right]:hover:after,[aria-label][data-balloon-pos][data-balloon-pos=right]:hover:before,[aria-label][data-balloon-pos][data-balloon-pos=right][data-balloon-visible]:after,[aria-label][data-balloon-pos][data-balloon-pos=right][data-balloon-visible]:before{transform:translateY(-50%)}[aria-label][data-balloon-pos][data-balloon-length=small]:after{white-space:normal;width:80px}[aria-label][data-balloon-pos][data-balloon-length=medium]:after{white-space:normal;width:150px}[aria-label][data-balloon-pos][data-balloon-length=large]:after{white-space:normal;width:260px}[aria-label][data-balloon-pos][data-balloon-length=xlarge]:after{white-space:normal;width:380px}@media screen and (max-width:768px){[aria-label][data-balloon-pos][data-balloon-length=xlarge]:after{white-space:normal;width:90vw}}[aria-label][data-balloon-pos][data-balloon-length=fit]:after{white-space:normal;width:100%}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","var apply = Function.prototype.apply;\nexports.setTimeout = function () {\n    return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function () {\n    return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n    if (timeout) {\n        timeout.close();\n    }\n};\nfunction Timeout(id, clearFn) {\n    this._id = id;\n    this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function () {\n};\nTimeout.prototype.close = function () {\n    this._clearFn.call(window, this._id);\n};\nexports.enroll = function (item, msecs) {\n    clearTimeout(item._idleTimeoutId);\n    item._idleTimeout = msecs;\n};\nexports.unenroll = function (item) {\n    clearTimeout(item._idleTimeoutId);\n    item._idleTimeout = -1;\n};\nexports._unrefActive = exports.active = function (item) {\n    clearTimeout(item._idleTimeoutId);\n    var msecs = item._idleTimeout;\n    if (msecs >= 0) {\n        item._idleTimeoutId = setTimeout(function onTimeout() {\n            if (item._onTimeout)\n                item._onTimeout();\n        }, msecs);\n    }\n};\nrequire('setimmediate');\nexports.setImmediate = setImmediate;\nexports.clearImmediate = clearImmediate;","(function (global, undefined) {\n    'use strict';\n    if (global.setImmediate) {\n        return;\n    }\n    var nextHandle = 1;\n    var tasksByHandle = {};\n    var currentlyRunningATask = false;\n    var doc = global.document;\n    var registerImmediate;\n    function setImmediate(callback) {\n        if (typeof callback !== 'function') {\n            callback = new Function('' + callback);\n        }\n        var args = new Array(arguments.length - 1);\n        for (var i = 0; i < args.length; i++) {\n            args[i] = arguments[i + 1];\n        }\n        var task = {\n            callback: callback,\n            args: args\n        };\n        tasksByHandle[nextHandle] = task;\n        registerImmediate(nextHandle);\n        return nextHandle++;\n    }\n    function clearImmediate(handle) {\n        delete tasksByHandle[handle];\n    }\n    function run(task) {\n        var callback = task.callback;\n        var args = task.args;\n        switch (args.length) {\n        case 0:\n            callback();\n            break;\n        case 1:\n            callback(args[0]);\n            break;\n        case 2:\n            callback(args[0], args[1]);\n            break;\n        case 3:\n            callback(args[0], args[1], args[2]);\n            break;\n        default:\n            callback.apply(undefined, args);\n            break;\n        }\n    }\n    function runIfPresent(handle) {\n        if (currentlyRunningATask) {\n            setTimeout(runIfPresent, 0, handle);\n        } else {\n            var task = tasksByHandle[handle];\n            if (task) {\n                currentlyRunningATask = true;\n                try {\n                    run(task);\n                } finally {\n                    clearImmediate(handle);\n                    currentlyRunningATask = false;\n                }\n            }\n        }\n    }\n    function installNextTickImplementation() {\n        registerImmediate = function registerImmediate(handle) {\n            process.nextTick(function () {\n                runIfPresent(handle);\n            });\n        };\n    }\n    function canUsePostMessage() {\n        if (global.postMessage && !global.importScripts) {\n            var postMessageIsAsynchronous = true;\n            var oldOnMessage = global.onmessage;\n            global.onmessage = function () {\n                postMessageIsAsynchronous = false;\n            };\n            global.postMessage('', '*');\n            global.onmessage = oldOnMessage;\n            return postMessageIsAsynchronous;\n        }\n    }\n    function installPostMessageImplementation() {\n        var messagePrefix = 'setImmediate$' + Math.random() + '$';\n        var onGlobalMessage = function onGlobalMessage(event) {\n            if (event.source === global && typeof event.data === 'string' && event.data.indexOf(messagePrefix) === 0) {\n                runIfPresent(+event.data.slice(messagePrefix.length));\n            }\n        };\n        if (global.addEventListener) {\n            global.addEventListener('message', onGlobalMessage, false);\n        } else {\n            global.attachEvent('onmessage', onGlobalMessage);\n        }\n        registerImmediate = function registerImmediate(handle) {\n            global.postMessage(messagePrefix + handle, '*');\n        };\n    }\n    function installMessageChannelImplementation() {\n        var channel = new MessageChannel();\n        channel.port1.onmessage = function (event) {\n            var handle = event.data;\n            runIfPresent(handle);\n        };\n        registerImmediate = function registerImmediate(handle) {\n            channel.port2.postMessage(handle);\n        };\n    }\n    function installReadyStateChangeImplementation() {\n        var html = doc.documentElement;\n        registerImmediate = function registerImmediate(handle) {\n            var script = doc.createElement('script');\n            script.onreadystatechange = function () {\n                runIfPresent(handle);\n                script.onreadystatechange = null;\n                html.removeChild(script);\n                script = null;\n            };\n            html.appendChild(script);\n        };\n    }\n    function installSetTimeoutImplementation() {\n        registerImmediate = function registerImmediate(handle) {\n            setTimeout(runIfPresent, 0, handle);\n        };\n    }\n    var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n    attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n    if ({}.toString.call(global.process) === '[object process]') {\n        installNextTickImplementation();\n    } else if (canUsePostMessage()) {\n        installPostMessageImplementation();\n    } else if (global.MessageChannel) {\n        installMessageChannelImplementation();\n    } else if (doc && 'onreadystatechange' in doc.createElement('script')) {\n        installReadyStateChangeImplementation();\n    } else {\n        installSetTimeoutImplementation();\n    }\n    attachTo.setImmediate = setImmediate;\n    attachTo.clearImmediate = clearImmediate;\n}(typeof self === 'undefined' ? typeof global === 'undefined' ? this : global : self));","'use strict';\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\nfunction createInstance(defaultConfig) {\n    var context = new Axios(defaultConfig);\n    var instance = bind(Axios.prototype.request, context);\n    utils.extend(instance, Axios.prototype, context);\n    utils.extend(instance, context);\n    return instance;\n}\nvar axios = createInstance(defaults);\naxios.Axios = Axios;\naxios.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.all = function all(promises) {\n    return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\nmodule.exports = axios;\nmodule.exports['default'] = axios;","'use strict';\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nfunction Axios(instanceConfig) {\n    this.defaults = instanceConfig;\n    this.interceptors = {\n        request: new InterceptorManager(),\n        response: new InterceptorManager()\n    };\n}\nAxios.prototype.request = function request(config) {\n    if (typeof config === 'string') {\n        config = arguments[1] || {};\n        config.url = arguments[0];\n    } else {\n        config = config || {};\n    }\n    config = mergeConfig(this.defaults, config);\n    if (config.method) {\n        config.method = config.method.toLowerCase();\n    } else if (this.defaults.method) {\n        config.method = this.defaults.method.toLowerCase();\n    } else {\n        config.method = 'get';\n    }\n    var chain = [\n        dispatchRequest,\n        undefined\n    ];\n    var promise = Promise.resolve(config);\n    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n        chain.unshift(interceptor.fulfilled, interceptor.rejected);\n    });\n    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n        chain.push(interceptor.fulfilled, interceptor.rejected);\n    });\n    while (chain.length) {\n        promise = promise.then(chain.shift(), chain.shift());\n    }\n    return promise;\n};\nAxios.prototype.getUri = function getUri(config) {\n    config = mergeConfig(this.defaults, config);\n    return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\nutils.forEach([\n    'delete',\n    'get',\n    'head',\n    'options'\n], function forEachMethodNoData(method) {\n    Axios.prototype[method] = function (url, config) {\n        return this.request(utils.merge(config || {}, {\n            method: method,\n            url: url\n        }));\n    };\n});\nutils.forEach([\n    'post',\n    'put',\n    'patch'\n], function forEachMethodWithData(method) {\n    Axios.prototype[method] = function (url, data, config) {\n        return this.request(utils.merge(config || {}, {\n            method: method,\n            url: url,\n            data: data\n        }));\n    };\n});\nmodule.exports = Axios;","'use strict';\nvar utils = require('./../utils');\nfunction InterceptorManager() {\n    this.handlers = [];\n}\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n    this.handlers.push({\n        fulfilled: fulfilled,\n        rejected: rejected\n    });\n    return this.handlers.length - 1;\n};\nInterceptorManager.prototype.eject = function eject(id) {\n    if (this.handlers[id]) {\n        this.handlers[id] = null;\n    }\n};\nInterceptorManager.prototype.forEach = function forEach(fn) {\n    utils.forEach(this.handlers, function forEachHandler(h) {\n        if (h !== null) {\n            fn(h);\n        }\n    });\n};\nmodule.exports = InterceptorManager;","'use strict';\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nfunction throwIfCancellationRequested(config) {\n    if (config.cancelToken) {\n        config.cancelToken.throwIfRequested();\n    }\n}\nmodule.exports = function dispatchRequest(config) {\n    throwIfCancellationRequested(config);\n    config.headers = config.headers || {};\n    config.data = transformData(config.data, config.headers, config.transformRequest);\n    config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n    utils.forEach([\n        'delete',\n        'get',\n        'head',\n        'post',\n        'put',\n        'patch',\n        'common'\n    ], function cleanHeaderConfig(method) {\n        delete config.headers[method];\n    });\n    var adapter = config.adapter || defaults.adapter;\n    return adapter(config).then(function onAdapterResolution(response) {\n        throwIfCancellationRequested(config);\n        response.data = transformData(response.data, response.headers, config.transformResponse);\n        return response;\n    }, function onAdapterRejection(reason) {\n        if (!isCancel(reason)) {\n            throwIfCancellationRequested(config);\n            if (reason && reason.response) {\n                reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n            }\n        }\n        return Promise.reject(reason);\n    });\n};","'use strict';\nvar utils = require('./../utils');\nmodule.exports = function transformData(data, headers, fns) {\n    utils.forEach(fns, function transform(fn) {\n        data = fn(data, headers);\n    });\n    return data;\n};","'use strict';\nvar utils = require('../utils');\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n    utils.forEach(headers, function processHeader(value, name) {\n        if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n            headers[normalizedName] = value;\n            delete headers[name];\n        }\n    });\n};","'use strict';\nvar createError = require('./createError');\nmodule.exports = function settle(resolve, reject, response) {\n    var validateStatus = response.config.validateStatus;\n    if (!validateStatus || validateStatus(response.status)) {\n        resolve(response);\n    } else {\n        reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n    }\n};","'use strict';\nmodule.exports = function enhanceError(error, config, code, request, response) {\n    error.config = config;\n    if (code) {\n        error.code = code;\n    }\n    error.request = request;\n    error.response = response;\n    error.isAxiosError = true;\n    error.toJSON = function () {\n        return {\n            message: this.message,\n            name: this.name,\n            description: this.description,\n            number: this.number,\n            fileName: this.fileName,\n            lineNumber: this.lineNumber,\n            columnNumber: this.columnNumber,\n            stack: this.stack,\n            config: this.config,\n            code: this.code\n        };\n    };\n    return error;\n};","'use strict';\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n    if (baseURL && !isAbsoluteURL(requestedURL)) {\n        return combineURLs(baseURL, requestedURL);\n    }\n    return requestedURL;\n};","'use strict';\nmodule.exports = function isAbsoluteURL(url) {\n    return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n    return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\nvar utils = require('./../utils');\nvar ignoreDuplicateOf = [\n    'age',\n    'authorization',\n    'content-length',\n    'content-type',\n    'etag',\n    'expires',\n    'from',\n    'host',\n    'if-modified-since',\n    'if-unmodified-since',\n    'last-modified',\n    'location',\n    'max-forwards',\n    'proxy-authorization',\n    'referer',\n    'retry-after',\n    'user-agent'\n];\nmodule.exports = function parseHeaders(headers) {\n    var parsed = {};\n    var key;\n    var val;\n    var i;\n    if (!headers) {\n        return parsed;\n    }\n    utils.forEach(headers.split('\\n'), function parser(line) {\n        i = line.indexOf(':');\n        key = utils.trim(line.substr(0, i)).toLowerCase();\n        val = utils.trim(line.substr(i + 1));\n        if (key) {\n            if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n                return;\n            }\n            if (key === 'set-cookie') {\n                parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n            } else {\n                parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n            }\n        }\n    });\n    return parsed;\n};","'use strict';\nvar utils = require('./../utils');\nmodule.exports = utils.isStandardBrowserEnv() ? function standardBrowserEnv() {\n    var msie = /(msie|trident)/i.test(navigator.userAgent);\n    var urlParsingNode = document.createElement('a');\n    var originURL;\n    function resolveURL(url) {\n        var href = url;\n        if (msie) {\n            urlParsingNode.setAttribute('href', href);\n            href = urlParsingNode.href;\n        }\n        urlParsingNode.setAttribute('href', href);\n        return {\n            href: urlParsingNode.href,\n            protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n            host: urlParsingNode.host,\n            search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n            hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n            hostname: urlParsingNode.hostname,\n            port: urlParsingNode.port,\n            pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n        };\n    }\n    originURL = resolveURL(window.location.href);\n    return function isURLSameOrigin(requestURL) {\n        var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n        return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n    };\n}() : function nonStandardBrowserEnv() {\n    return function isURLSameOrigin() {\n        return true;\n    };\n}();","'use strict';\nvar utils = require('./../utils');\nmodule.exports = utils.isStandardBrowserEnv() ? function standardBrowserEnv() {\n    return {\n        write: function write(name, value, expires, path, domain, secure) {\n            var cookie = [];\n            cookie.push(name + '=' + encodeURIComponent(value));\n            if (utils.isNumber(expires)) {\n                cookie.push('expires=' + new Date(expires).toGMTString());\n            }\n            if (utils.isString(path)) {\n                cookie.push('path=' + path);\n            }\n            if (utils.isString(domain)) {\n                cookie.push('domain=' + domain);\n            }\n            if (secure === true) {\n                cookie.push('secure');\n            }\n            document.cookie = cookie.join('; ');\n        },\n        read: function read(name) {\n            var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n            return match ? decodeURIComponent(match[3]) : null;\n        },\n        remove: function remove(name) {\n            this.write(name, '', Date.now() - 86400000);\n        }\n    };\n}() : function nonStandardBrowserEnv() {\n    return {\n        write: function write() {\n        },\n        read: function read() {\n            return null;\n        },\n        remove: function remove() {\n        }\n    };\n}();","'use strict';\nvar Cancel = require('./Cancel');\nfunction CancelToken(executor) {\n    if (typeof executor !== 'function') {\n        throw new TypeError('executor must be a function.');\n    }\n    var resolvePromise;\n    this.promise = new Promise(function promiseExecutor(resolve) {\n        resolvePromise = resolve;\n    });\n    var token = this;\n    executor(function cancel(message) {\n        if (token.reason) {\n            return;\n        }\n        token.reason = new Cancel(message);\n        resolvePromise(token.reason);\n    });\n}\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n    if (this.reason) {\n        throw this.reason;\n    }\n};\nCancelToken.source = function source() {\n    var cancel;\n    var token = new CancelToken(function executor(c) {\n        cancel = c;\n    });\n    return {\n        token: token,\n        cancel: cancel\n    };\n};\nmodule.exports = CancelToken;","'use strict';\nmodule.exports = function spread(callback) {\n    return function wrap(arr) {\n        return callback.apply(null, arr);\n    };\n};","'use strict';\nvar globalThis = typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\nvar runtime = Object.create(globalThis);\nvar ESCAPE_REG = /[\"&'<>]/;\nruntime.$escape = function (content) {\n    return xmlEscape(toString(content));\n};\nruntime.$each = function (data, callback) {\n    if (Array.isArray(data)) {\n        for (var i = 0, len = data.length; i < len; i++) {\n            callback(data[i], i);\n        }\n    } else {\n        for (var _i in data) {\n            callback(data[_i], _i);\n        }\n    }\n};\nfunction toString(value) {\n    if (typeof value !== 'string') {\n        if (value === undefined || value === null) {\n            value = '';\n        } else if (typeof value === 'function') {\n            value = toString(value.call(value));\n        } else {\n            value = JSON.stringify(value);\n        }\n    }\n    return value;\n}\nfunction xmlEscape(content) {\n    var html = '' + content;\n    var regexResult = ESCAPE_REG.exec(html);\n    if (!regexResult) {\n        return content;\n    }\n    var result = '';\n    var i = void 0, lastIndex = void 0, _char = void 0;\n    for (i = regexResult.index, lastIndex = 0; i < html.length; i++) {\n        switch (html.charCodeAt(i)) {\n        case 34:\n            _char = '&#34;';\n            break;\n        case 38:\n            _char = '&#38;';\n            break;\n        case 39:\n            _char = '&#39;';\n            break;\n        case 60:\n            _char = '&#60;';\n            break;\n        case 62:\n            _char = '&#62;';\n            break;\n        default:\n            continue;\n        }\n        if (lastIndex !== i) {\n            result += html.substring(lastIndex, i);\n        }\n        lastIndex = i + 1;\n        result += _char;\n    }\n    if (lastIndex !== i) {\n        return result + html.substring(lastIndex, i);\n    } else {\n        return result;\n    }\n}\nmodule.exports = runtime;","var isMobile = /mobile/i.test(window.navigator.userAgent);\nvar isSafari = /Safari/i.test(window.navigator.userAgent);\nvar utils = {\n    secondToTime: function secondToTime(second) {\n        second = second || 0;\n        if (second === 0 || second === Infinity || second.toString() === 'NaN') {\n            return '00:00';\n        }\n        var add0 = function add0(num) {\n            return num < 10 ? '0' + num : '' + num;\n        };\n        var hour = Math.floor(second / 3600);\n        var min = Math.floor((second - hour * 3600) / 60);\n        var sec = Math.floor(second - hour * 3600 - min * 60);\n        return (hour > 0 ? [\n            hour,\n            min,\n            sec\n        ] : [\n            min,\n            sec\n        ]).map(add0).join(':');\n    },\n    getElementViewLeft: function getElementViewLeft(element) {\n        var actualLeft = element.offsetLeft;\n        var current = element.offsetParent;\n        var elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n        if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n            while (current !== null) {\n                actualLeft += current.offsetLeft;\n                current = current.offsetParent;\n            }\n        } else {\n            while (current !== null && current !== element) {\n                actualLeft += current.offsetLeft;\n                current = current.offsetParent;\n            }\n        }\n        return actualLeft - elementScrollLeft;\n    },\n    getBoundingClientRectViewLeft: function getBoundingClientRectViewLeft(element) {\n        var scrollTop = window.scrollY || window.pageYOffset || document.body.scrollTop + (document.documentElement && document.documentElement.scrollTop || 0);\n        if (element.getBoundingClientRect) {\n            if (typeof this.getBoundingClientRectViewLeft.offset !== 'number') {\n                var temp = document.createElement('div');\n                temp.style.cssText = 'position:absolute;top:0;left:0;';\n                document.body.appendChild(temp);\n                this.getBoundingClientRectViewLeft.offset = -temp.getBoundingClientRect().top - scrollTop;\n                document.body.removeChild(temp);\n                temp = null;\n            }\n            var rect = element.getBoundingClientRect();\n            var offset = this.getBoundingClientRectViewLeft.offset;\n            return rect.left + offset;\n        } else {\n            return this.getElementViewLeft(element);\n        }\n    },\n    getScrollPosition: function getScrollPosition() {\n        return {\n            left: window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0,\n            top: window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0\n        };\n    },\n    setScrollPosition: function setScrollPosition(_ref) {\n        var _ref$left = _ref.left, left = _ref$left === void 0 ? 0 : _ref$left, _ref$top = _ref.top, top = _ref$top === void 0 ? 0 : _ref$top;\n        if (this.isFirefox) {\n            document.documentElement.scrollLeft = left;\n            document.documentElement.scrollTop = top;\n        } else {\n            window.scrollTo(left, top);\n        }\n    },\n    isMobile: isMobile,\n    isSafari: isSafari,\n    isFirefox: /firefox/i.test(window.navigator.userAgent),\n    isChrome: /chrome/i.test(window.navigator.userAgent),\n    storage: {\n        set: function set(key, value) {\n            localStorage.setItem(key, value);\n        },\n        get: function get(key) {\n            return localStorage.getItem(key);\n        }\n    },\n    nameMap: {\n        dragStart: isMobile ? 'touchstart' : 'mousedown',\n        dragMove: isMobile ? 'touchmove' : 'mousemove',\n        dragEnd: isMobile ? 'touchend' : 'mouseup'\n    },\n    color2Number: function color2Number(color) {\n        if (color[0] === '#') {\n            color = color.substr(1);\n        }\n        if (color.length === 3) {\n            color = ''.concat(color[0]).concat(color[0]).concat(color[1]).concat(color[1]).concat(color[2]).concat(color[2]);\n        }\n        return parseInt(color, 16) + 0 & 16777215;\n    },\n    number2Color: function number2Color(number) {\n        return '#' + ('00000' + number.toString(16)).slice(-6);\n    },\n    number2Type: function number2Type(number) {\n        switch (number) {\n        case 0:\n            return 'right';\n        case 1:\n            return 'top';\n        case 2:\n            return 'bottom';\n        default:\n            return 'right';\n        }\n    }\n};\nexport default utils;","import axios from 'axios';\nexport default {\n    send: function send(options) {\n        axios.post(options.url, options.data).then(function (response) {\n            var data = response.data;\n            if (!data || data.code !== 0) {\n                options.error && options.error(data && data.msg);\n                return;\n            }\n            options.success && options.success(data);\n        })['catch'](function (e) {\n            console.error(e);\n            options.error && options.error();\n        });\n    },\n    read: function read(options) {\n        axios.get(options.url).then(function (response) {\n            var data = response.data;\n            if (!data || data.code !== 0) {\n                options.error && options.error(data && data.msg);\n                return;\n            }\n            options.success && options.success(data.data.map(function (item) {\n                return {\n                    time: item[0],\n                    type: item[1],\n                    color: item[2],\n                    author: item[3],\n                    text: item[4]\n                };\n            }));\n        })['catch'](function (e) {\n            console.error(e);\n            options.error && options.error();\n        });\n    }\n};","function _typeof(obj) {\n    '@babel/helpers - typeof';\n    if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n        _typeof = function _typeof(obj) {\n            return typeof obj;\n        };\n    } else {\n        _typeof = function _typeof(obj) {\n            return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n        };\n    }\n    return _typeof(obj);\n}\nimport defaultApiBackend from './api.js';\nexport default function (options) {\n    var defaultOption = {\n        container: options.element || document.getElementsByClassName('dplayer')[0],\n        live: false,\n        autoplay: false,\n        theme: '#b7daff',\n        loop: false,\n        lang: (navigator.language || navigator.browserLanguage).toLowerCase(),\n        screenshot: false,\n        airplay: true,\n        hotkey: true,\n        preload: 'metadata',\n        volume: 0.7,\n        playbackSpeed: [\n            0.5,\n            0.75,\n            1,\n            1.25,\n            1.5,\n            2\n        ],\n        apiBackend: defaultApiBackend,\n        video: {},\n        contextmenu: [],\n        mutex: true,\n        pluginOptions: {\n            hls: {},\n            flv: {},\n            dash: {},\n            webtorrent: {}\n        }\n    };\n    for (var defaultKey in defaultOption) {\n        if (defaultOption.hasOwnProperty(defaultKey) && !options.hasOwnProperty(defaultKey)) {\n            options[defaultKey] = defaultOption[defaultKey];\n        }\n    }\n    if (options.video) {\n        !options.video.type && (options.video.type = 'auto');\n    }\n    if (_typeof(options.danmaku) === 'object' && options.danmaku) {\n        !options.danmaku.user && (options.danmaku.user = 'DIYgod');\n    }\n    if (options.subtitle) {\n        !options.subtitle.type && (options.subtitle.type = 'webvtt');\n        !options.subtitle.fontSize && (options.subtitle.fontSize = '20px');\n        !options.subtitle.bottom && (options.subtitle.bottom = '40px');\n        !options.subtitle.color && (options.subtitle.color = '#fff');\n    }\n    if (options.video.quality) {\n        options.video.url = options.video.quality[options.video.defaultQuality].url;\n    }\n    if (options.lang) {\n        options.lang = options.lang.toLowerCase();\n    }\n    options.contextmenu = options.contextmenu.concat([\n        {\n            text: 'Video info',\n            click: function click(player) {\n                player.infoPanel.triggle();\n            }\n        },\n        {\n            text: 'About author',\n            link: 'https://diygod.me'\n        },\n        {\n            text: 'DPlayer v'.concat(DPLAYER_VERSION),\n            link: 'https://github.com/MoePlayer/DPlayer'\n        }\n    ]);\n    return options;\n};","function i18n(lang) {\n    var _this = this;\n    this.lang = lang;\n    this.tran = function (text) {\n        if (tranTxt[_this.lang] && tranTxt[_this.lang][text]) {\n            return tranTxt[_this.lang][text];\n        } else {\n            return text;\n        }\n    };\n}\nvar tranTxt = {\n    'zh-cn': {\n        'Danmaku is loading': '弹幕加载中',\n        Top: '顶部',\n        Bottom: '底部',\n        Rolling: '滚动',\n        'Input danmaku, hit Enter': '输入弹幕\\uFF0C回车发送',\n        'About author': '关于作者',\n        'DPlayer feedback': '播放器意见反馈',\n        'About DPlayer': '关于 DPlayer 播放器',\n        Loop: '洗脑循环',\n        Speed: '速度',\n        'Opacity for danmaku': '弹幕透明度',\n        Normal: '正常',\n        'Please input danmaku content!': '要输入弹幕内容啊喂\\uFF01',\n        'Set danmaku color': '设置弹幕颜色',\n        'Set danmaku type': '设置弹幕类型',\n        'Show danmaku': '显示弹幕',\n        'Video load failed': '视频加载失败',\n        'Danmaku load failed': '弹幕加载失败',\n        'Danmaku send failed': '弹幕发送失败',\n        'Switching to': '正在切换至',\n        'Switched to': '已经切换至',\n        quality: '画质',\n        FF: '快进',\n        REW: '快退',\n        'Unlimited danmaku': '海量弹幕',\n        'Send danmaku': '发送弹幕',\n        Setting: '设置',\n        'Full screen': '全屏',\n        'Web full screen': '页面全屏',\n        Send: '发送',\n        Screenshot: '截图',\n        AirPlay: '无线投屏',\n        s: '秒',\n        'Show subtitle': '显示字幕',\n        'Hide subtitle': '隐藏字幕',\n        Volume: '音量',\n        Live: '直播',\n        'Video info': '视频统计信息'\n    },\n    'zh-tw': {\n        'Danmaku is loading': '彈幕載入中',\n        Top: '頂部',\n        Bottom: '底部',\n        Rolling: '滾動',\n        'Input danmaku, hit Enter': '輸入彈幕\\uFF0CEnter 發送',\n        'About author': '關於作者',\n        'DPlayer feedback': '播放器意見回饋',\n        'About DPlayer': '關於 DPlayer 播放器',\n        Loop: '循環播放',\n        Speed: '速度',\n        'Opacity for danmaku': '彈幕透明度',\n        Normal: '正常',\n        'Please input danmaku content!': '請輸入彈幕內容啊\\uFF01',\n        'Set danmaku color': '設定彈幕顏色',\n        'Set danmaku type': '設定彈幕類型',\n        'Show danmaku': '顯示彈幕',\n        'Video load failed': '影片載入失敗',\n        'Danmaku load failed': '彈幕載入失敗',\n        'Danmaku send failed': '彈幕發送失敗',\n        'Switching to': '正在切換至',\n        'Switched to': '已經切換至',\n        quality: '畫質',\n        FF: '快進',\n        REW: '快退',\n        'Unlimited danmaku': '巨量彈幕',\n        'Send danmaku': '發送彈幕',\n        Setting: '設定',\n        'Full screen': '全螢幕',\n        'Web full screen': '頁面全螢幕',\n        Send: '發送',\n        Screenshot: '截圖',\n        AirPlay: '無線投屏',\n        s: '秒',\n        'Show subtitle': '顯示字幕',\n        'Hide subtitle': '隱藏字幕',\n        Volume: '音量',\n        Live: '直播',\n        'Video info': '影片統計訊息'\n    }\n};\nexport default i18n;","import play from '../assets/play.svg';\nimport pause from '../assets/pause.svg';\nimport volumeUp from '../assets/volume-up.svg';\nimport volumeDown from '../assets/volume-down.svg';\nimport volumeOff from '../assets/volume-off.svg';\nimport full from '../assets/full.svg';\nimport fullWeb from '../assets/full-web.svg';\nimport setting from '../assets/setting.svg';\nimport right from '../assets/right.svg';\nimport comment from '../assets/comment.svg';\nimport commentOff from '../assets/comment-off.svg';\nimport send from '../assets/send.svg';\nimport pallette from '../assets/pallette.svg';\nimport camera from '../assets/camera.svg';\nimport airplay from '../assets/airplay.svg';\nimport subtitle from '../assets/subtitle.svg';\nimport loading from '../assets/loading.svg';\nvar Icons = {\n    play: play,\n    pause: pause,\n    volumeUp: volumeUp,\n    volumeDown: volumeDown,\n    volumeOff: volumeOff,\n    full: full,\n    fullWeb: fullWeb,\n    setting: setting,\n    right: right,\n    comment: comment,\n    commentOff: commentOff,\n    send: send,\n    pallette: pallette,\n    camera: camera,\n    subtitle: subtitle,\n    loading: loading,\n    airplay: airplay\n};\nexport default Icons;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nimport Icons from './icons';\nimport tplPlayer from '../template/player.art';\nimport utils from './utils';\nvar Template = function () {\n    function Template(options) {\n        _classCallCheck(this, Template);\n        this.container = options.container;\n        this.options = options.options;\n        this.index = options.index;\n        this.tran = options.tran;\n        this.init();\n    }\n    _createClass(Template, [{\n            key: 'init',\n            value: function init() {\n                this.container.innerHTML = tplPlayer({\n                    options: this.options,\n                    index: this.index,\n                    tran: this.tran,\n                    icons: Icons,\n                    mobile: utils.isMobile,\n                    video: {\n                        current: true,\n                        pic: this.options.video.pic,\n                        screenshot: this.options.screenshot,\n                        airplay: this.options.airplay,\n                        preload: this.options.preload,\n                        url: this.options.video.url,\n                        subtitle: this.options.subtitle\n                    }\n                });\n                this.volumeBar = this.container.querySelector('.dplayer-volume-bar-inner');\n                this.volumeBarWrap = this.container.querySelector('.dplayer-volume-bar');\n                this.volumeBarWrapWrap = this.container.querySelector('.dplayer-volume-bar-wrap');\n                this.volumeButton = this.container.querySelector('.dplayer-volume');\n                this.volumeButtonIcon = this.container.querySelector('.dplayer-volume-icon');\n                this.volumeIcon = this.container.querySelector('.dplayer-volume-icon .dplayer-icon-content');\n                this.playedBar = this.container.querySelector('.dplayer-played');\n                this.loadedBar = this.container.querySelector('.dplayer-loaded');\n                this.playedBarWrap = this.container.querySelector('.dplayer-bar-wrap');\n                this.playedBarTime = this.container.querySelector('.dplayer-bar-time');\n                this.danmaku = this.container.querySelector('.dplayer-danmaku');\n                this.danmakuLoading = this.container.querySelector('.dplayer-danloading');\n                this.video = this.container.querySelector('.dplayer-video-current');\n                this.bezel = this.container.querySelector('.dplayer-bezel-icon');\n                this.playButton = this.container.querySelector('.dplayer-play-icon');\n                this.mobilePlayButton = this.container.querySelector('.dplayer-mobile-play');\n                this.videoWrap = this.container.querySelector('.dplayer-video-wrap');\n                this.controllerMask = this.container.querySelector('.dplayer-controller-mask');\n                this.ptime = this.container.querySelector('.dplayer-ptime');\n                this.settingButton = this.container.querySelector('.dplayer-setting-icon');\n                this.settingBox = this.container.querySelector('.dplayer-setting-box');\n                this.mask = this.container.querySelector('.dplayer-mask');\n                this.loop = this.container.querySelector('.dplayer-setting-loop');\n                this.loopToggle = this.container.querySelector('.dplayer-setting-loop .dplayer-toggle-setting-input');\n                this.showDanmaku = this.container.querySelector('.dplayer-setting-showdan');\n                this.showDanmakuToggle = this.container.querySelector('.dplayer-showdan-setting-input');\n                this.unlimitDanmaku = this.container.querySelector('.dplayer-setting-danunlimit');\n                this.unlimitDanmakuToggle = this.container.querySelector('.dplayer-danunlimit-setting-input');\n                this.speed = this.container.querySelector('.dplayer-setting-speed');\n                this.speedItem = this.container.querySelectorAll('.dplayer-setting-speed-item');\n                this.danmakuOpacityBar = this.container.querySelector('.dplayer-danmaku-bar-inner');\n                this.danmakuOpacityBarWrap = this.container.querySelector('.dplayer-danmaku-bar');\n                this.danmakuOpacityBarWrapWrap = this.container.querySelector('.dplayer-danmaku-bar-wrap');\n                this.danmakuOpacityBox = this.container.querySelector('.dplayer-setting-danmaku');\n                this.dtime = this.container.querySelector('.dplayer-dtime');\n                this.controller = this.container.querySelector('.dplayer-controller');\n                this.commentInput = this.container.querySelector('.dplayer-comment-input');\n                this.commentButton = this.container.querySelector('.dplayer-comment-icon');\n                this.commentSettingBox = this.container.querySelector('.dplayer-comment-setting-box');\n                this.commentSettingButton = this.container.querySelector('.dplayer-comment-setting-icon');\n                this.commentSettingFill = this.container.querySelector('.dplayer-comment-setting-icon path');\n                this.commentSendButton = this.container.querySelector('.dplayer-send-icon');\n                this.commentSendFill = this.container.querySelector('.dplayer-send-icon path');\n                this.commentColorSettingBox = this.container.querySelector('.dplayer-comment-setting-color');\n                this.browserFullButton = this.container.querySelector('.dplayer-full-icon');\n                this.webFullButton = this.container.querySelector('.dplayer-full-in-icon');\n                this.menu = this.container.querySelector('.dplayer-menu');\n                this.menuItem = this.container.querySelectorAll('.dplayer-menu-item');\n                this.qualityList = this.container.querySelector('.dplayer-quality-list');\n                this.camareButton = this.container.querySelector('.dplayer-camera-icon');\n                this.airplayButton = this.container.querySelector('.dplayer-airplay-icon');\n                this.subtitleButton = this.container.querySelector('.dplayer-subtitle-icon');\n                this.subtitleButtonInner = this.container.querySelector('.dplayer-subtitle-icon .dplayer-icon-content');\n                this.subtitle = this.container.querySelector('.dplayer-subtitle');\n                this.qualityButton = this.container.querySelector('.dplayer-quality-icon');\n                this.barPreview = this.container.querySelector('.dplayer-bar-preview');\n                this.barWrap = this.container.querySelector('.dplayer-bar-wrap');\n                this.notice = this.container.querySelector('.dplayer-notice');\n                this.infoPanel = this.container.querySelector('.dplayer-info-panel');\n                this.infoPanelClose = this.container.querySelector('.dplayer-info-panel-close');\n                this.infoVersion = this.container.querySelector('.dplayer-info-panel-item-version .dplayer-info-panel-item-data');\n                this.infoFPS = this.container.querySelector('.dplayer-info-panel-item-fps .dplayer-info-panel-item-data');\n                this.infoType = this.container.querySelector('.dplayer-info-panel-item-type .dplayer-info-panel-item-data');\n                this.infoUrl = this.container.querySelector('.dplayer-info-panel-item-url .dplayer-info-panel-item-data');\n                this.infoResolution = this.container.querySelector('.dplayer-info-panel-item-resolution .dplayer-info-panel-item-data');\n                this.infoDuration = this.container.querySelector('.dplayer-info-panel-item-duration .dplayer-info-panel-item-data');\n                this.infoDanmakuId = this.container.querySelector('.dplayer-info-panel-item-danmaku-id .dplayer-info-panel-item-data');\n                this.infoDanmakuApi = this.container.querySelector('.dplayer-info-panel-item-danmaku-api .dplayer-info-panel-item-data');\n                this.infoDanmakuAmount = this.container.querySelector('.dplayer-info-panel-item-danmaku-amount .dplayer-info-panel-item-data');\n            }\n        }]);\n    return Template;\n}();\nexport default Template;","function _typeof(obj) {\n    '@babel/helpers - typeof';\n    if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n        _typeof = function _typeof(obj) {\n            return typeof obj;\n        };\n    } else {\n        _typeof = function _typeof(obj) {\n            return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n        };\n    }\n    return _typeof(obj);\n}\nfunction _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nimport utils from './utils';\nvar Danmaku = function () {\n    function Danmaku(options) {\n        _classCallCheck(this, Danmaku);\n        this.options = options;\n        this.container = this.options.container;\n        this.danTunnel = {\n            right: {},\n            top: {},\n            bottom: {}\n        };\n        this.danIndex = 0;\n        this.dan = [];\n        this.showing = true;\n        this._opacity = this.options.opacity;\n        this.events = this.options.events;\n        this.unlimited = this.options.unlimited;\n        this._measure('');\n        this.load();\n    }\n    _createClass(Danmaku, [\n        {\n            key: 'load',\n            value: function load() {\n                var _this = this;\n                var apiurl;\n                if (this.options.api.maximum) {\n                    apiurl = ''.concat(this.options.api.address, 'v3/?id=').concat(this.options.api.id, '&max=').concat(this.options.api.maximum);\n                } else {\n                    apiurl = ''.concat(this.options.api.address, 'v3/?id=').concat(this.options.api.id);\n                }\n                var endpoints = (this.options.api.addition || []).slice(0);\n                endpoints.push(apiurl);\n                this.events && this.events.trigger('danmaku_load_start', endpoints);\n                this._readAllEndpoints(endpoints, function (results) {\n                    _this.dan = [].concat.apply([], results).sort(function (a, b) {\n                        return a.time - b.time;\n                    });\n                    window.requestAnimationFrame(function () {\n                        _this.frame();\n                    });\n                    _this.options.callback();\n                    _this.events && _this.events.trigger('danmaku_load_end');\n                });\n            }\n        },\n        {\n            key: 'reload',\n            value: function reload(newAPI) {\n                this.options.api = newAPI;\n                this.dan = [];\n                this.clear();\n                this.load();\n            }\n        },\n        {\n            key: '_readAllEndpoints',\n            value: function _readAllEndpoints(endpoints, callback) {\n                var _this2 = this;\n                var results = [];\n                var readCount = 0;\n                var _loop = function _loop(i) {\n                    _this2.options.apiBackend.read({\n                        url: endpoints[i],\n                        success: function success(data) {\n                            results[i] = data;\n                            ++readCount;\n                            if (readCount === endpoints.length) {\n                                callback(results);\n                            }\n                        },\n                        error: function error(msg) {\n                            _this2.options.error(msg || _this2.options.tran('Danmaku load failed'));\n                            results[i] = [];\n                            ++readCount;\n                            if (readCount === endpoints.length) {\n                                callback(results);\n                            }\n                        }\n                    });\n                };\n                for (var i = 0; i < endpoints.length; ++i) {\n                    _loop(i);\n                }\n            }\n        },\n        {\n            key: 'send',\n            value: function send(dan, callback) {\n                var _this3 = this;\n                var danmakuData = {\n                    token: this.options.api.token,\n                    id: this.options.api.id,\n                    author: this.options.api.user,\n                    time: this.options.time(),\n                    text: dan.text,\n                    color: dan.color,\n                    type: dan.type\n                };\n                this.options.apiBackend.send({\n                    url: this.options.api.address + 'v3/',\n                    data: danmakuData,\n                    success: callback,\n                    error: function error(msg) {\n                        _this3.options.error(msg || _this3.options.tran('Danmaku send failed'));\n                    }\n                });\n                this.dan.splice(this.danIndex, 0, danmakuData);\n                this.danIndex++;\n                var danmaku = {\n                    text: this.htmlEncode(danmakuData.text),\n                    color: danmakuData.color,\n                    type: danmakuData.type,\n                    border: '2px solid '.concat(this.options.borderColor)\n                };\n                this.draw(danmaku);\n                this.events && this.events.trigger('danmaku_send', danmakuData);\n            }\n        },\n        {\n            key: 'frame',\n            value: function frame() {\n                var _this4 = this;\n                if (this.dan.length && !this.paused && this.showing) {\n                    var item = this.dan[this.danIndex];\n                    var dan = [];\n                    while (item && this.options.time() > parseFloat(item.time)) {\n                        dan.push(item);\n                        item = this.dan[++this.danIndex];\n                    }\n                    this.draw(dan);\n                }\n                window.requestAnimationFrame(function () {\n                    _this4.frame();\n                });\n            }\n        },\n        {\n            key: 'opacity',\n            value: function opacity(percentage) {\n                if (percentage !== undefined) {\n                    var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n                    for (var i = 0; i < items.length; i++) {\n                        items[i].style.opacity = percentage;\n                    }\n                    this._opacity = percentage;\n                    this.events && this.events.trigger('danmaku_opacity', this._opacity);\n                }\n                return this._opacity;\n            }\n        },\n        {\n            key: 'draw',\n            value: function draw(dan) {\n                var _this5 = this;\n                if (this.showing) {\n                    var itemHeight = this.options.height;\n                    var danWidth = this.container.offsetWidth;\n                    var danHeight = this.container.offsetHeight;\n                    var itemY = parseInt(danHeight / itemHeight);\n                    var danItemRight = function danItemRight(ele) {\n                        var eleWidth = ele.offsetWidth || parseInt(ele.style.width);\n                        var eleRight = ele.getBoundingClientRect().right || _this5.container.getBoundingClientRect().right + eleWidth;\n                        return _this5.container.getBoundingClientRect().right - eleRight;\n                    };\n                    var danSpeed = function danSpeed(width) {\n                        return (danWidth + width) / 5;\n                    };\n                    var getTunnel = function getTunnel(ele, type, width) {\n                        var tmp = danWidth / danSpeed(width);\n                        var _loop2 = function _loop2(i) {\n                            var item = _this5.danTunnel[type][i + ''];\n                            if (item && item.length) {\n                                if (type !== 'right') {\n                                    return 'continue';\n                                }\n                                for (var j = 0; j < item.length; j++) {\n                                    var danRight = danItemRight(item[j]) - 10;\n                                    if (danRight <= danWidth - tmp * danSpeed(parseInt(item[j].style.width)) || danRight <= 0) {\n                                        break;\n                                    }\n                                    if (j === item.length - 1) {\n                                        _this5.danTunnel[type][i + ''].push(ele);\n                                        ele.addEventListener('animationend', function () {\n                                            _this5.danTunnel[type][i + ''].splice(0, 1);\n                                        });\n                                        return { v: i % itemY };\n                                    }\n                                }\n                            } else {\n                                _this5.danTunnel[type][i + ''] = [ele];\n                                ele.addEventListener('animationend', function () {\n                                    _this5.danTunnel[type][i + ''].splice(0, 1);\n                                });\n                                return { v: i % itemY };\n                            }\n                        };\n                        for (var i = 0; _this5.unlimited || i < itemY; i++) {\n                            var _ret = _loop2(i);\n                            switch (_ret) {\n                            case 'continue':\n                                continue;\n                            default:\n                                if (_typeof(_ret) === 'object')\n                                    return _ret.v;\n                            }\n                        }\n                        return -1;\n                    };\n                    if (Object.prototype.toString.call(dan) !== '[object Array]') {\n                        dan = [dan];\n                    }\n                    var docFragment = document.createDocumentFragment();\n                    var _loop3 = function _loop3(i) {\n                        dan[i].type = utils.number2Type(dan[i].type);\n                        if (!dan[i].color) {\n                            dan[i].color = 16777215;\n                        }\n                        var item = document.createElement('div');\n                        item.classList.add('dplayer-danmaku-item');\n                        item.classList.add('dplayer-danmaku-'.concat(dan[i].type));\n                        if (dan[i].border) {\n                            item.innerHTML = '<span style=\"border:'.concat(dan[i].border, '\">').concat(dan[i].text, '</span>');\n                        } else {\n                            item.innerHTML = dan[i].text;\n                        }\n                        item.style.opacity = _this5._opacity;\n                        item.style.color = utils.number2Color(dan[i].color);\n                        item.addEventListener('animationend', function () {\n                            _this5.container.removeChild(item);\n                        });\n                        var itemWidth = _this5._measure(dan[i].text);\n                        var tunnel = void 0;\n                        switch (dan[i].type) {\n                        case 'right':\n                            tunnel = getTunnel(item, dan[i].type, itemWidth);\n                            if (tunnel >= 0) {\n                                item.style.width = itemWidth + 1 + 'px';\n                                item.style.top = itemHeight * tunnel + 'px';\n                                item.style.transform = 'translateX(-'.concat(danWidth, 'px)');\n                            }\n                            break;\n                        case 'top':\n                            tunnel = getTunnel(item, dan[i].type);\n                            if (tunnel >= 0) {\n                                item.style.top = itemHeight * tunnel + 'px';\n                            }\n                            break;\n                        case 'bottom':\n                            tunnel = getTunnel(item, dan[i].type);\n                            if (tunnel >= 0) {\n                                item.style.bottom = itemHeight * tunnel + 'px';\n                            }\n                            break;\n                        default:\n                            console.error('Can\\'t handled danmaku type: '.concat(dan[i].type));\n                        }\n                        if (tunnel >= 0) {\n                            item.classList.add('dplayer-danmaku-move');\n                            docFragment.appendChild(item);\n                        }\n                    };\n                    for (var i = 0; i < dan.length; i++) {\n                        _loop3(i);\n                    }\n                    this.container.appendChild(docFragment);\n                    return docFragment;\n                }\n            }\n        },\n        {\n            key: 'play',\n            value: function play() {\n                this.paused = false;\n            }\n        },\n        {\n            key: 'pause',\n            value: function pause() {\n                this.paused = true;\n            }\n        },\n        {\n            key: '_measure',\n            value: function _measure(text) {\n                if (!this.context) {\n                    var measureStyle = getComputedStyle(this.container.getElementsByClassName('dplayer-danmaku-item')[0], null);\n                    this.context = document.createElement('canvas').getContext('2d');\n                    this.context.font = measureStyle.getPropertyValue('font');\n                }\n                return this.context.measureText(text).width;\n            }\n        },\n        {\n            key: 'seek',\n            value: function seek() {\n                this.clear();\n                for (var i = 0; i < this.dan.length; i++) {\n                    if (this.dan[i].time >= this.options.time()) {\n                        this.danIndex = i;\n                        break;\n                    }\n                    this.danIndex = this.dan.length;\n                }\n            }\n        },\n        {\n            key: 'clear',\n            value: function clear() {\n                this.danTunnel = {\n                    right: {},\n                    top: {},\n                    bottom: {}\n                };\n                this.danIndex = 0;\n                this.options.container.innerHTML = '';\n                this.events && this.events.trigger('danmaku_clear');\n            }\n        },\n        {\n            key: 'htmlEncode',\n            value: function htmlEncode(str) {\n                return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\"/g, '&quot;').replace(/'/g, '&#x27;').replace(/\\//g, '&#x2f;');\n            }\n        },\n        {\n            key: 'resize',\n            value: function resize() {\n                var danWidth = this.container.offsetWidth;\n                var items = this.container.getElementsByClassName('dplayer-danmaku-item');\n                for (var i = 0; i < items.length; i++) {\n                    items[i].style.transform = 'translateX(-'.concat(danWidth, 'px)');\n                }\n            }\n        },\n        {\n            key: 'hide',\n            value: function hide() {\n                this.showing = false;\n                this.pause();\n                this.clear();\n                this.events && this.events.trigger('danmaku_hide');\n            }\n        },\n        {\n            key: 'show',\n            value: function show() {\n                this.seek();\n                this.showing = true;\n                this.play();\n                this.events && this.events.trigger('danmaku_show');\n            }\n        },\n        {\n            key: 'unlimit',\n            value: function unlimit(_boolean) {\n                this.unlimited = _boolean;\n            }\n        }\n    ]);\n    return Danmaku;\n}();\nexport default Danmaku;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nvar Events = function () {\n    function Events() {\n        _classCallCheck(this, Events);\n        this.events = {};\n        this.videoEvents = [\n            'abort',\n            'canplay',\n            'canplaythrough',\n            'durationchange',\n            'emptied',\n            'ended',\n            'error',\n            'loadeddata',\n            'loadedmetadata',\n            'loadstart',\n            'mozaudioavailable',\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        this.playerEvents = [\n            'screenshot',\n            'thumbnails_show',\n            'thumbnails_hide',\n            'danmaku_show',\n            'danmaku_hide',\n            'danmaku_clear',\n            'danmaku_loaded',\n            'danmaku_send',\n            'danmaku_opacity',\n            'contextmenu_show',\n            'contextmenu_hide',\n            'notice_show',\n            'notice_hide',\n            'quality_start',\n            'quality_end',\n            'destroy',\n            'resize',\n            'fullscreen',\n            'fullscreen_cancel',\n            'webfullscreen',\n            'webfullscreen_cancel',\n            'subtitle_show',\n            'subtitle_hide',\n            'subtitle_change'\n        ];\n    }\n    _createClass(Events, [\n        {\n            key: 'on',\n            value: function on(name, callback) {\n                if (this.type(name) && typeof callback === 'function') {\n                    if (!this.events[name]) {\n                        this.events[name] = [];\n                    }\n                    this.events[name].push(callback);\n                }\n            }\n        },\n        {\n            key: 'trigger',\n            value: function trigger(name, info) {\n                if (this.events[name] && this.events[name].length) {\n                    for (var i = 0; i < this.events[name].length; i++) {\n                        this.events[name][i](info);\n                    }\n                }\n            }\n        },\n        {\n            key: 'type',\n            value: function type(name) {\n                if (this.playerEvents.indexOf(name) !== -1) {\n                    return 'player';\n                } else if (this.videoEvents.indexOf(name) !== -1) {\n                    return 'video';\n                }\n                console.error('Unknown event name: '.concat(name));\n                return null;\n            }\n        }\n    ]);\n    return Events;\n}();\nexport default Events;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nimport utils from './utils';\nvar FullScreen = function () {\n    function FullScreen(player) {\n        var _this = this;\n        _classCallCheck(this, FullScreen);\n        this.player = player;\n        this.lastScrollPosition = {\n            left: 0,\n            top: 0\n        };\n        this.player.events.on('webfullscreen', function () {\n            _this.player.resize();\n        });\n        this.player.events.on('webfullscreen_cancel', function () {\n            _this.player.resize();\n            utils.setScrollPosition(_this.lastScrollPosition);\n        });\n        var fullscreenchange = function fullscreenchange() {\n            _this.player.resize();\n            if (_this.isFullScreen('browser')) {\n                _this.player.events.trigger('fullscreen');\n            } else {\n                utils.setScrollPosition(_this.lastScrollPosition);\n                _this.player.events.trigger('fullscreen_cancel');\n            }\n        };\n        var docfullscreenchange = function docfullscreenchange() {\n            var fullEle = document.fullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;\n            if (fullEle && fullEle !== _this.player.container) {\n                return;\n            }\n            _this.player.resize();\n            if (fullEle) {\n                _this.player.events.trigger('fullscreen');\n            } else {\n                utils.setScrollPosition(_this.lastScrollPosition);\n                _this.player.events.trigger('fullscreen_cancel');\n            }\n        };\n        if (/Firefox/.test(navigator.userAgent)) {\n            document.addEventListener('mozfullscreenchange', docfullscreenchange);\n            document.addEventListener('fullscreenchange', docfullscreenchange);\n        } else {\n            this.player.container.addEventListener('fullscreenchange', fullscreenchange);\n            this.player.container.addEventListener('webkitfullscreenchange', fullscreenchange);\n            document.addEventListener('msfullscreenchange', docfullscreenchange);\n            document.addEventListener('MSFullscreenChange', docfullscreenchange);\n        }\n    }\n    _createClass(FullScreen, [\n        {\n            key: 'isFullScreen',\n            value: function isFullScreen() {\n                var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n                switch (type) {\n                case 'browser':\n                    return document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement;\n                case 'web':\n                    return this.player.container.classList.contains('dplayer-fulled');\n                }\n            }\n        },\n        {\n            key: 'request',\n            value: function request() {\n                var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n                var anotherType = type === 'browser' ? 'web' : 'browser';\n                var anotherTypeOn = this.isFullScreen(anotherType);\n                if (!anotherTypeOn) {\n                    this.lastScrollPosition = utils.getScrollPosition();\n                }\n                switch (type) {\n                case 'browser':\n                    if (this.player.container.requestFullscreen) {\n                        this.player.container.requestFullscreen();\n                    } else if (this.player.container.mozRequestFullScreen) {\n                        this.player.container.mozRequestFullScreen();\n                    } else if (this.player.container.webkitRequestFullscreen) {\n                        this.player.container.webkitRequestFullscreen();\n                    } else if (this.player.video.webkitEnterFullscreen) {\n                        this.player.video.webkitEnterFullscreen();\n                    } else if (this.player.video.webkitEnterFullScreen) {\n                        this.player.video.webkitEnterFullScreen();\n                    } else if (this.player.container.msRequestFullscreen) {\n                        this.player.container.msRequestFullscreen();\n                    }\n                    break;\n                case 'web':\n                    this.player.container.classList.add('dplayer-fulled');\n                    document.body.classList.add('dplayer-web-fullscreen-fix');\n                    this.player.events.trigger('webfullscreen');\n                    break;\n                }\n                if (anotherTypeOn) {\n                    this.cancel(anotherType);\n                }\n            }\n        },\n        {\n            key: 'cancel',\n            value: function cancel() {\n                var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n                switch (type) {\n                case 'browser':\n                    if (document.cancelFullScreen) {\n                        document.cancelFullScreen();\n                    } else if (document.mozCancelFullScreen) {\n                        document.mozCancelFullScreen();\n                    } else if (document.webkitCancelFullScreen) {\n                        document.webkitCancelFullScreen();\n                    } else if (document.webkitCancelFullscreen) {\n                        document.webkitCancelFullscreen();\n                    } else if (document.msCancelFullScreen) {\n                        document.msCancelFullScreen();\n                    } else if (document.msExitFullscreen) {\n                        document.msExitFullscreen();\n                    }\n                    break;\n                case 'web':\n                    this.player.container.classList.remove('dplayer-fulled');\n                    document.body.classList.remove('dplayer-web-fullscreen-fix');\n                    this.player.events.trigger('webfullscreen_cancel');\n                    break;\n                }\n            }\n        },\n        {\n            key: 'toggle',\n            value: function toggle() {\n                var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'browser';\n                if (this.isFullScreen(type)) {\n                    this.cancel(type);\n                } else {\n                    this.request(type);\n                }\n            }\n        }\n    ]);\n    return FullScreen;\n}();\nexport default FullScreen;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nimport utils from './utils';\nvar User = function () {\n    function User(player) {\n        _classCallCheck(this, User);\n        this.storageName = {\n            opacity: 'dplayer-danmaku-opacity',\n            volume: 'dplayer-volume',\n            unlimited: 'dplayer-danmaku-unlimited',\n            danmaku: 'dplayer-danmaku-show',\n            subtitle: 'dplayer-subtitle-show'\n        };\n        this['default'] = {\n            opacity: 0.7,\n            volume: player.options.hasOwnProperty('volume') ? player.options.volume : 0.7,\n            unlimited: (player.options.danmaku && player.options.danmaku.unlimited ? 1 : 0) || 0,\n            danmaku: 1,\n            subtitle: 1\n        };\n        this.data = {};\n        this.init();\n    }\n    _createClass(User, [\n        {\n            key: 'init',\n            value: function init() {\n                for (var item in this.storageName) {\n                    var name = this.storageName[item];\n                    this.data[item] = parseFloat(utils.storage.get(name) || this['default'][item]);\n                }\n            }\n        },\n        {\n            key: 'get',\n            value: function get(key) {\n                return this.data[key];\n            }\n        },\n        {\n            key: 'set',\n            value: function set(key, value) {\n                this.data[key] = value;\n                utils.storage.set(this.storageName[key], value);\n            }\n        }\n    ]);\n    return User;\n}();\nexport default User;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nvar Subtitle = function () {\n    function Subtitle(container, video, options, events) {\n        _classCallCheck(this, Subtitle);\n        this.container = container;\n        this.video = video;\n        this.options = options;\n        this.events = events;\n        this.init();\n    }\n    _createClass(Subtitle, [\n        {\n            key: 'init',\n            value: function init() {\n                var _this = this;\n                this.container.style.fontSize = this.options.fontSize;\n                this.container.style.bottom = this.options.bottom;\n                this.container.style.color = this.options.color;\n                if (this.video.textTracks && this.video.textTracks[0]) {\n                    var track = this.video.textTracks[0];\n                    track.oncuechange = function () {\n                        var cue = track.activeCues[0];\n                        _this.container.innerHTML = '';\n                        if (cue) {\n                            var template = document.createElement('div');\n                            template.appendChild(cue.getCueAsHTML());\n                            var trackHtml = template.innerHTML.split(/\\r?\\n/).map(function (item) {\n                                return '<p>'.concat(item, '</p>');\n                            }).join('');\n                            _this.container.innerHTML = trackHtml;\n                        }\n                        _this.events.trigger('subtitle_change');\n                    };\n                }\n            }\n        },\n        {\n            key: 'show',\n            value: function show() {\n                this.container.classList.remove('dplayer-subtitle-hide');\n                this.events.trigger('subtitle_show');\n            }\n        },\n        {\n            key: 'hide',\n            value: function hide() {\n                this.container.classList.add('dplayer-subtitle-hide');\n                this.events.trigger('subtitle_hide');\n            }\n        },\n        {\n            key: 'toggle',\n            value: function toggle() {\n                if (this.container.classList.contains('dplayer-subtitle-hide')) {\n                    this.show();\n                } else {\n                    this.hide();\n                }\n            }\n        }\n    ]);\n    return Subtitle;\n}();\nexport default Subtitle;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nvar Bar = function () {\n    function Bar(template) {\n        _classCallCheck(this, Bar);\n        this.elements = {};\n        this.elements.volume = template.volumeBar;\n        this.elements.played = template.playedBar;\n        this.elements.loaded = template.loadedBar;\n        this.elements.danmaku = template.danmakuOpacityBar;\n    }\n    _createClass(Bar, [\n        {\n            key: 'set',\n            value: function set(type, percentage, direction) {\n                percentage = Math.max(percentage, 0);\n                percentage = Math.min(percentage, 1);\n                this.elements[type].style[direction] = percentage * 100 + '%';\n            }\n        },\n        {\n            key: 'get',\n            value: function get(type) {\n                return parseFloat(this.elements[type].style.width) / 100;\n            }\n        }\n    ]);\n    return Bar;\n}();\nexport default Bar;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nvar Timer = function () {\n    function Timer(player) {\n        _classCallCheck(this, Timer);\n        this.player = player;\n        window.requestAnimationFrame = function () {\n            return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) {\n                window.setTimeout(callback, 1000 / 60);\n            };\n        }();\n        this.types = [\n            'loading',\n            'info',\n            'fps'\n        ];\n        this.init();\n    }\n    _createClass(Timer, [\n        {\n            key: 'init',\n            value: function init() {\n                var _this = this;\n                this.types.map(function (item) {\n                    if (item !== 'fps') {\n                        _this['init'.concat(item, 'Checker')]();\n                    }\n                    return item;\n                });\n            }\n        },\n        {\n            key: 'initloadingChecker',\n            value: function initloadingChecker() {\n                var _this2 = this;\n                var lastPlayPos = 0;\n                var currentPlayPos = 0;\n                var bufferingDetected = false;\n                this.loadingChecker = setInterval(function () {\n                    if (_this2.enableloadingChecker) {\n                        currentPlayPos = _this2.player.video.currentTime;\n                        if (!bufferingDetected && currentPlayPos === lastPlayPos && !_this2.player.video.paused) {\n                            _this2.player.container.classList.add('dplayer-loading');\n                            bufferingDetected = true;\n                        }\n                        if (bufferingDetected && currentPlayPos > lastPlayPos && !_this2.player.video.paused) {\n                            _this2.player.container.classList.remove('dplayer-loading');\n                            bufferingDetected = false;\n                        }\n                        lastPlayPos = currentPlayPos;\n                    }\n                }, 100);\n            }\n        },\n        {\n            key: 'initfpsChecker',\n            value: function initfpsChecker() {\n                var _this3 = this;\n                window.requestAnimationFrame(function () {\n                    if (_this3.enablefpsChecker) {\n                        _this3.initfpsChecker();\n                        if (!_this3.fpsStart) {\n                            _this3.fpsStart = new Date();\n                            _this3.fpsIndex = 0;\n                        } else {\n                            _this3.fpsIndex++;\n                            var fpsCurrent = new Date();\n                            if (fpsCurrent - _this3.fpsStart > 1000) {\n                                _this3.player.infoPanel.fps(_this3.fpsIndex / (fpsCurrent - _this3.fpsStart) * 1000);\n                                _this3.fpsStart = new Date();\n                                _this3.fpsIndex = 0;\n                            }\n                        }\n                    } else {\n                        _this3.fpsStart = 0;\n                        _this3.fpsIndex = 0;\n                    }\n                });\n            }\n        },\n        {\n            key: 'initinfoChecker',\n            value: function initinfoChecker() {\n                var _this4 = this;\n                this.infoChecker = setInterval(function () {\n                    if (_this4.enableinfoChecker) {\n                        _this4.player.infoPanel.update();\n                    }\n                }, 1000);\n            }\n        },\n        {\n            key: 'enable',\n            value: function enable(type) {\n                this['enable'.concat(type, 'Checker')] = true;\n                if (type === 'fps') {\n                    this.initfpsChecker();\n                }\n            }\n        },\n        {\n            key: 'disable',\n            value: function disable(type) {\n                this['enable'.concat(type, 'Checker')] = false;\n            }\n        },\n        {\n            key: 'destroy',\n            value: function destroy() {\n                var _this5 = this;\n                this.types.map(function (item) {\n                    _this5['enable'.concat(item, 'Checker')] = false;\n                    _this5[''.concat(item, 'Checker')] && clearInterval(_this5[''.concat(item, 'Checker')]);\n                    return item;\n                });\n            }\n        }\n    ]);\n    return Timer;\n}();\nexport default Timer;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nvar Bezel = function () {\n    function Bezel(container) {\n        var _this = this;\n        _classCallCheck(this, Bezel);\n        this.container = container;\n        this.container.addEventListener('animationend', function () {\n            _this.container.classList.remove('dplayer-bezel-transition');\n        });\n    }\n    _createClass(Bezel, [{\n            key: 'switch',\n            value: function _switch(icon) {\n                this.container.innerHTML = icon;\n                this.container.classList.add('dplayer-bezel-transition');\n            }\n        }]);\n    return Bezel;\n}();\nexport default Bezel;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nvar Thumbnails = function () {\n    function Thumbnails(options) {\n        _classCallCheck(this, Thumbnails);\n        this.container = options.container;\n        this.barWidth = options.barWidth;\n        this.container.style.backgroundImage = 'url(\\''.concat(options.url, '\\')');\n        this.events = options.events;\n    }\n    _createClass(Thumbnails, [\n        {\n            key: 'resize',\n            value: function resize(width, height, barWrapWidth) {\n                this.container.style.width = ''.concat(width, 'px');\n                this.container.style.height = ''.concat(height, 'px');\n                this.container.style.top = ''.concat(-height + 2, 'px');\n                this.barWidth = barWrapWidth;\n            }\n        },\n        {\n            key: 'show',\n            value: function show() {\n                this.container.style.display = 'block';\n                this.events && this.events.trigger('thumbnails_show');\n            }\n        },\n        {\n            key: 'move',\n            value: function move(position) {\n                this.container.style.backgroundPosition = '-'.concat((Math.ceil(position / this.barWidth * 100) - 1) * 160, 'px 0');\n                this.container.style.left = ''.concat(Math.min(Math.max(position - this.container.offsetWidth / 2, -10), this.barWidth - 150), 'px');\n            }\n        },\n        {\n            key: 'hide',\n            value: function hide() {\n                this.container.style.display = 'none';\n                this.events && this.events.trigger('thumbnails_hide');\n            }\n        }\n    ]);\n    return Thumbnails;\n}();\nexport default Thumbnails;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nimport utils from './utils';\nimport Thumbnails from './thumbnails';\nimport Icons from './icons';\nvar Controller = function () {\n    function Controller(player) {\n        var _this = this;\n        _classCallCheck(this, Controller);\n        this.player = player;\n        this.autoHideTimer = 0;\n        if (!utils.isMobile) {\n            this.player.container.addEventListener('mousemove', function () {\n                _this.setAutoHide();\n            });\n            this.player.container.addEventListener('click', function () {\n                _this.setAutoHide();\n            });\n            this.player.on('play', function () {\n                _this.setAutoHide();\n            });\n            this.player.on('pause', function () {\n                _this.setAutoHide();\n            });\n        }\n        this.initPlayButton();\n        this.initThumbnails();\n        this.initPlayedBar();\n        this.initFullButton();\n        this.initQualityButton();\n        this.initScreenshotButton();\n        this.initSubtitleButton();\n        this.initHighlights();\n        if (utils.isSafari) {\n            this.initAirplayButton();\n        }\n        if (!utils.isMobile) {\n            this.initVolumeButton();\n        }\n    }\n    _createClass(Controller, [\n        {\n            key: 'initPlayButton',\n            value: function initPlayButton() {\n                var _this2 = this;\n                this.player.template.playButton.addEventListener('click', function () {\n                    _this2.player.toggle();\n                });\n                this.player.template.mobilePlayButton.addEventListener('click', function () {\n                    _this2.player.toggle();\n                });\n                if (!utils.isMobile) {\n                    this.player.template.videoWrap.addEventListener('click', function () {\n                        _this2.player.toggle();\n                    });\n                    this.player.template.controllerMask.addEventListener('click', function () {\n                        _this2.player.toggle();\n                    });\n                } else {\n                    this.player.template.videoWrap.addEventListener('click', function () {\n                        _this2.toggle();\n                    });\n                    this.player.template.controllerMask.addEventListener('click', function () {\n                        _this2.toggle();\n                    });\n                }\n            }\n        },\n        {\n            key: 'initHighlights',\n            value: function initHighlights() {\n                var _this3 = this;\n                this.player.on('durationchange', function () {\n                    if (_this3.player.video.duration !== 1 && _this3.player.video.duration !== Infinity) {\n                        if (_this3.player.options.highlight) {\n                            var highlights = document.querySelectorAll('.dplayer-highlight');\n                            [].slice.call(highlights, 0).forEach(function (item) {\n                                _this3.player.template.playedBarWrap.removeChild(item);\n                            });\n                            for (var i = 0; i < _this3.player.options.highlight.length; i++) {\n                                if (!_this3.player.options.highlight[i].text || !_this3.player.options.highlight[i].time) {\n                                    continue;\n                                }\n                                var p = document.createElement('div');\n                                p.classList.add('dplayer-highlight');\n                                p.style.left = _this3.player.options.highlight[i].time / _this3.player.video.duration * 100 + '%';\n                                p.innerHTML = '<span class=\"dplayer-highlight-text\">' + _this3.player.options.highlight[i].text + '</span>';\n                                _this3.player.template.playedBarWrap.insertBefore(p, _this3.player.template.playedBarTime);\n                            }\n                        }\n                    }\n                });\n            }\n        },\n        {\n            key: 'initThumbnails',\n            value: function initThumbnails() {\n                var _this4 = this;\n                if (this.player.options.video.thumbnails) {\n                    this.thumbnails = new Thumbnails({\n                        container: this.player.template.barPreview,\n                        barWidth: this.player.template.barWrap.offsetWidth,\n                        url: this.player.options.video.thumbnails,\n                        events: this.player.events\n                    });\n                    this.player.on('loadedmetadata', function () {\n                        _this4.thumbnails.resize(160, _this4.player.video.videoHeight / _this4.player.video.videoWidth * 160, _this4.player.template.barWrap.offsetWidth);\n                    });\n                }\n            }\n        },\n        {\n            key: 'initPlayedBar',\n            value: function initPlayedBar() {\n                var _this5 = this;\n                var thumbMove = function thumbMove(e) {\n                    var percentage = ((e.clientX || e.changedTouches[0].clientX) - utils.getBoundingClientRectViewLeft(_this5.player.template.playedBarWrap)) / _this5.player.template.playedBarWrap.clientWidth;\n                    percentage = Math.max(percentage, 0);\n                    percentage = Math.min(percentage, 1);\n                    _this5.player.bar.set('played', percentage, 'width');\n                    _this5.player.template.ptime.innerHTML = utils.secondToTime(percentage * _this5.player.video.duration);\n                };\n                var thumbUp = function thumbUp(e) {\n                    document.removeEventListener(utils.nameMap.dragEnd, thumbUp);\n                    document.removeEventListener(utils.nameMap.dragMove, thumbMove);\n                    var percentage = ((e.clientX || e.changedTouches[0].clientX) - utils.getBoundingClientRectViewLeft(_this5.player.template.playedBarWrap)) / _this5.player.template.playedBarWrap.clientWidth;\n                    percentage = Math.max(percentage, 0);\n                    percentage = Math.min(percentage, 1);\n                    _this5.player.bar.set('played', percentage, 'width');\n                    _this5.player.seek(_this5.player.bar.get('played') * _this5.player.video.duration);\n                    _this5.player.timer.enable('progress');\n                };\n                this.player.template.playedBarWrap.addEventListener(utils.nameMap.dragStart, function () {\n                    _this5.player.timer.disable('progress');\n                    document.addEventListener(utils.nameMap.dragMove, thumbMove);\n                    document.addEventListener(utils.nameMap.dragEnd, thumbUp);\n                });\n                this.player.template.playedBarWrap.addEventListener(utils.nameMap.dragMove, function (e) {\n                    if (_this5.player.video.duration) {\n                        var px = _this5.player.template.playedBarWrap.getBoundingClientRect().left;\n                        var tx = (e.clientX || e.changedTouches[0].clientX) - px;\n                        if (tx < 0 || tx > _this5.player.template.playedBarWrap.offsetWidth) {\n                            return;\n                        }\n                        var time = _this5.player.video.duration * (tx / _this5.player.template.playedBarWrap.offsetWidth);\n                        if (utils.isMobile) {\n                            _this5.thumbnails && _this5.thumbnails.show();\n                        }\n                        _this5.thumbnails && _this5.thumbnails.move(tx);\n                        _this5.player.template.playedBarTime.style.left = ''.concat(tx - (time >= 3600 ? 25 : 20), 'px');\n                        _this5.player.template.playedBarTime.innerText = utils.secondToTime(time);\n                        _this5.player.template.playedBarTime.classList.remove('hidden');\n                    }\n                });\n                this.player.template.playedBarWrap.addEventListener(utils.nameMap.dragEnd, function () {\n                    if (utils.isMobile) {\n                        _this5.thumbnails && _this5.thumbnails.hide();\n                    }\n                });\n                if (!utils.isMobile) {\n                    this.player.template.playedBarWrap.addEventListener('mouseenter', function () {\n                        if (_this5.player.video.duration) {\n                            _this5.thumbnails && _this5.thumbnails.show();\n                            _this5.player.template.playedBarTime.classList.remove('hidden');\n                        }\n                    });\n                    this.player.template.playedBarWrap.addEventListener('mouseleave', function () {\n                        if (_this5.player.video.duration) {\n                            _this5.thumbnails && _this5.thumbnails.hide();\n                            _this5.player.template.playedBarTime.classList.add('hidden');\n                        }\n                    });\n                }\n            }\n        },\n        {\n            key: 'initFullButton',\n            value: function initFullButton() {\n                var _this6 = this;\n                this.player.template.browserFullButton.addEventListener('click', function () {\n                    _this6.player.fullScreen.toggle('browser');\n                });\n                this.player.template.webFullButton.addEventListener('click', function () {\n                    _this6.player.fullScreen.toggle('web');\n                });\n            }\n        },\n        {\n            key: 'initVolumeButton',\n            value: function initVolumeButton() {\n                var _this7 = this;\n                var vWidth = 35;\n                var volumeMove = function volumeMove(event) {\n                    var e = event || window.event;\n                    var percentage = ((e.clientX || e.changedTouches[0].clientX) - utils.getBoundingClientRectViewLeft(_this7.player.template.volumeBarWrap) - 5.5) / vWidth;\n                    _this7.player.volume(percentage);\n                };\n                var volumeUp = function volumeUp() {\n                    document.removeEventListener(utils.nameMap.dragEnd, volumeUp);\n                    document.removeEventListener(utils.nameMap.dragMove, volumeMove);\n                    _this7.player.template.volumeButton.classList.remove('dplayer-volume-active');\n                };\n                this.player.template.volumeBarWrapWrap.addEventListener('click', function (event) {\n                    var e = event || window.event;\n                    var percentage = ((e.clientX || e.changedTouches[0].clientX) - utils.getBoundingClientRectViewLeft(_this7.player.template.volumeBarWrap) - 5.5) / vWidth;\n                    _this7.player.volume(percentage);\n                });\n                this.player.template.volumeBarWrapWrap.addEventListener(utils.nameMap.dragStart, function () {\n                    document.addEventListener(utils.nameMap.dragMove, volumeMove);\n                    document.addEventListener(utils.nameMap.dragEnd, volumeUp);\n                    _this7.player.template.volumeButton.classList.add('dplayer-volume-active');\n                });\n                this.player.template.volumeButtonIcon.addEventListener('click', function () {\n                    if (_this7.player.video.muted) {\n                        _this7.player.video.muted = false;\n                        _this7.player.switchVolumeIcon();\n                        _this7.player.bar.set('volume', _this7.player.volume(), 'width');\n                    } else {\n                        _this7.player.video.muted = true;\n                        _this7.player.template.volumeIcon.innerHTML = Icons.volumeOff;\n                        _this7.player.bar.set('volume', 0, 'width');\n                    }\n                });\n            }\n        },\n        {\n            key: 'initQualityButton',\n            value: function initQualityButton() {\n                var _this8 = this;\n                if (this.player.options.video.quality) {\n                    this.player.template.qualityList.addEventListener('click', function (e) {\n                        if (e.target.classList.contains('dplayer-quality-item')) {\n                            _this8.player.switchQuality(e.target.dataset.index);\n                        }\n                    });\n                }\n            }\n        },\n        {\n            key: 'initScreenshotButton',\n            value: function initScreenshotButton() {\n                var _this9 = this;\n                if (this.player.options.screenshot) {\n                    this.player.template.camareButton.addEventListener('click', function () {\n                        var canvas = document.createElement('canvas');\n                        canvas.width = _this9.player.video.videoWidth;\n                        canvas.height = _this9.player.video.videoHeight;\n                        canvas.getContext('2d').drawImage(_this9.player.video, 0, 0, canvas.width, canvas.height);\n                        var dataURL;\n                        canvas.toBlob(function (blob) {\n                            dataURL = URL.createObjectURL(blob);\n                            var link = document.createElement('a');\n                            link.href = dataURL;\n                            link.download = 'DPlayer.png';\n                            link.style.display = 'none';\n                            document.body.appendChild(link);\n                            link.click();\n                            document.body.removeChild(link);\n                            URL.revokeObjectURL(dataURL);\n                        });\n                        _this9.player.events.trigger('screenshot', dataURL);\n                    });\n                }\n            }\n        },\n        {\n            key: 'initAirplayButton',\n            value: function initAirplayButton() {\n                if (this.player.options.airplay) {\n                    if (window.WebKitPlaybackTargetAvailabilityEvent) {\n                        this.player.video.addEventListener('webkitplaybacktargetavailabilitychanged', function (event) {\n                            switch (event.availability) {\n                            case 'available':\n                                this.template.airplayButton.disable = false;\n                                break;\n                            default:\n                                this.template.airplayButton.disable = true;\n                            }\n                            this.template.airplayButton.addEventListener('click', function () {\n                                this.video.webkitShowPlaybackTargetPicker();\n                            }.bind(this));\n                        }.bind(this.player));\n                    } else {\n                        this.player.template.airplayButton.style.display = 'none';\n                    }\n                }\n            }\n        },\n        {\n            key: 'initSubtitleButton',\n            value: function initSubtitleButton() {\n                var _this10 = this;\n                if (this.player.options.subtitle) {\n                    this.player.events.on('subtitle_show', function () {\n                        _this10.player.template.subtitleButton.dataset.balloon = _this10.player.tran('Hide subtitle');\n                        _this10.player.template.subtitleButtonInner.style.opacity = '';\n                        _this10.player.user.set('subtitle', 1);\n                    });\n                    this.player.events.on('subtitle_hide', function () {\n                        _this10.player.template.subtitleButton.dataset.balloon = _this10.player.tran('Show subtitle');\n                        _this10.player.template.subtitleButtonInner.style.opacity = '0.4';\n                        _this10.player.user.set('subtitle', 0);\n                    });\n                    this.player.template.subtitleButton.addEventListener('click', function () {\n                        _this10.player.subtitle.toggle();\n                    });\n                }\n            }\n        },\n        {\n            key: 'setAutoHide',\n            value: function setAutoHide() {\n                var _this11 = this;\n                this.show();\n                clearTimeout(this.autoHideTimer);\n                this.autoHideTimer = setTimeout(function () {\n                    if (_this11.player.video.played.length && !_this11.player.paused && !_this11.disableAutoHide) {\n                        _this11.hide();\n                    }\n                }, 3000);\n            }\n        },\n        {\n            key: 'show',\n            value: function show() {\n                this.player.container.classList.remove('dplayer-hide-controller');\n            }\n        },\n        {\n            key: 'hide',\n            value: function hide() {\n                this.player.container.classList.add('dplayer-hide-controller');\n                this.player.setting.hide();\n                this.player.comment && this.player.comment.hide();\n            }\n        },\n        {\n            key: 'isShow',\n            value: function isShow() {\n                return !this.player.container.classList.contains('dplayer-hide-controller');\n            }\n        },\n        {\n            key: 'toggle',\n            value: function toggle() {\n                if (this.isShow()) {\n                    this.hide();\n                } else {\n                    this.show();\n                }\n            }\n        },\n        {\n            key: 'destroy',\n            value: function destroy() {\n                clearTimeout(this.autoHideTimer);\n            }\n        }\n    ]);\n    return Controller;\n}();\nexport default Controller;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nimport utils from './utils';\nvar Setting = function () {\n    function Setting(player) {\n        var _this = this;\n        _classCallCheck(this, Setting);\n        this.player = player;\n        this.player.template.mask.addEventListener('click', function () {\n            _this.hide();\n        });\n        this.player.template.settingButton.addEventListener('click', function () {\n            _this.show();\n        });\n        this.loop = this.player.options.loop;\n        this.player.template.loopToggle.checked = this.loop;\n        this.player.template.loop.addEventListener('click', function () {\n            _this.player.template.loopToggle.checked = !_this.player.template.loopToggle.checked;\n            if (_this.player.template.loopToggle.checked) {\n                _this.loop = true;\n            } else {\n                _this.loop = false;\n            }\n            _this.hide();\n        });\n        this.showDanmaku = this.player.user.get('danmaku');\n        if (!this.showDanmaku) {\n            this.player.danmaku && this.player.danmaku.hide();\n        }\n        this.player.template.showDanmakuToggle.checked = this.showDanmaku;\n        this.player.template.showDanmaku.addEventListener('click', function () {\n            _this.player.template.showDanmakuToggle.checked = !_this.player.template.showDanmakuToggle.checked;\n            if (_this.player.template.showDanmakuToggle.checked) {\n                _this.showDanmaku = true;\n                _this.player.danmaku.show();\n            } else {\n                _this.showDanmaku = false;\n                _this.player.danmaku.hide();\n            }\n            _this.player.user.set('danmaku', _this.showDanmaku ? 1 : 0);\n            _this.hide();\n        });\n        this.unlimitDanmaku = this.player.user.get('unlimited');\n        this.player.template.unlimitDanmakuToggle.checked = this.unlimitDanmaku;\n        this.player.template.unlimitDanmaku.addEventListener('click', function () {\n            _this.player.template.unlimitDanmakuToggle.checked = !_this.player.template.unlimitDanmakuToggle.checked;\n            if (_this.player.template.unlimitDanmakuToggle.checked) {\n                _this.unlimitDanmaku = true;\n                _this.player.danmaku.unlimit(true);\n            } else {\n                _this.unlimitDanmaku = false;\n                _this.player.danmaku.unlimit(false);\n            }\n            _this.player.user.set('unlimited', _this.unlimitDanmaku ? 1 : 0);\n            _this.hide();\n        });\n        this.player.template.speed.addEventListener('click', function () {\n            _this.player.template.settingBox.classList.add('dplayer-setting-box-narrow');\n            _this.player.template.settingBox.classList.add('dplayer-setting-box-speed');\n        });\n        var _loop = function _loop(i) {\n            _this.player.template.speedItem[i].addEventListener('click', function () {\n                _this.player.speed(_this.player.template.speedItem[i].dataset.speed);\n                _this.hide();\n            });\n        };\n        for (var i = 0; i < this.player.template.speedItem.length; i++) {\n            _loop(i);\n        }\n        if (this.player.danmaku) {\n            var dWidth = 130;\n            this.player.on('danmaku_opacity', function (percentage) {\n                _this.player.bar.set('danmaku', percentage, 'width');\n                _this.player.user.set('opacity', percentage);\n            });\n            this.player.danmaku.opacity(this.player.user.get('opacity'));\n            var danmakuMove = function danmakuMove(event) {\n                var e = event || window.event;\n                var percentage = ((e.clientX || e.changedTouches[0].clientX) - utils.getBoundingClientRectViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n                percentage = Math.max(percentage, 0);\n                percentage = Math.min(percentage, 1);\n                _this.player.danmaku.opacity(percentage);\n            };\n            var danmakuUp = function danmakuUp() {\n                document.removeEventListener(utils.nameMap.dragEnd, danmakuUp);\n                document.removeEventListener(utils.nameMap.dragMove, danmakuMove);\n                _this.player.template.danmakuOpacityBox.classList.remove('dplayer-setting-danmaku-active');\n            };\n            this.player.template.danmakuOpacityBarWrapWrap.addEventListener('click', function (event) {\n                var e = event || window.event;\n                var percentage = ((e.clientX || e.changedTouches[0].clientX) - utils.getBoundingClientRectViewLeft(_this.player.template.danmakuOpacityBarWrap)) / dWidth;\n                percentage = Math.max(percentage, 0);\n                percentage = Math.min(percentage, 1);\n                _this.player.danmaku.opacity(percentage);\n            });\n            this.player.template.danmakuOpacityBarWrapWrap.addEventListener(utils.nameMap.dragStart, function () {\n                document.addEventListener(utils.nameMap.dragMove, danmakuMove);\n                document.addEventListener(utils.nameMap.dragEnd, danmakuUp);\n                _this.player.template.danmakuOpacityBox.classList.add('dplayer-setting-danmaku-active');\n            });\n        }\n    }\n    _createClass(Setting, [\n        {\n            key: 'hide',\n            value: function hide() {\n                var _this2 = this;\n                this.player.template.settingBox.classList.remove('dplayer-setting-box-open');\n                this.player.template.mask.classList.remove('dplayer-mask-show');\n                setTimeout(function () {\n                    _this2.player.template.settingBox.classList.remove('dplayer-setting-box-narrow');\n                    _this2.player.template.settingBox.classList.remove('dplayer-setting-box-speed');\n                }, 300);\n                this.player.controller.disableAutoHide = false;\n            }\n        },\n        {\n            key: 'show',\n            value: function show() {\n                this.player.template.settingBox.classList.add('dplayer-setting-box-open');\n                this.player.template.mask.classList.add('dplayer-mask-show');\n                this.player.controller.disableAutoHide = true;\n            }\n        }\n    ]);\n    return Setting;\n}();\nexport default Setting;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nimport utils from './utils';\nvar Comment = function () {\n    function Comment(player) {\n        var _this = this;\n        _classCallCheck(this, Comment);\n        this.player = player;\n        this.player.template.mask.addEventListener('click', function () {\n            _this.hide();\n        });\n        this.player.template.commentButton.addEventListener('click', function () {\n            _this.show();\n        });\n        this.player.template.commentSettingButton.addEventListener('click', function () {\n            _this.toggleSetting();\n        });\n        this.player.template.commentColorSettingBox.addEventListener('click', function () {\n            var sele = _this.player.template.commentColorSettingBox.querySelector('input:checked+span');\n            if (sele) {\n                var color = _this.player.template.commentColorSettingBox.querySelector('input:checked').value;\n                _this.player.template.commentSettingFill.style.fill = color;\n                _this.player.template.commentInput.style.color = color;\n                _this.player.template.commentSendFill.style.fill = color;\n            }\n        });\n        this.player.template.commentInput.addEventListener('click', function () {\n            _this.hideSetting();\n        });\n        this.player.template.commentInput.addEventListener('keydown', function (e) {\n            var event = e || window.event;\n            if (event.keyCode === 13) {\n                _this.send();\n            }\n        });\n        this.player.template.commentSendButton.addEventListener('click', function () {\n            _this.send();\n        });\n    }\n    _createClass(Comment, [\n        {\n            key: 'show',\n            value: function show() {\n                this.player.controller.disableAutoHide = true;\n                this.player.template.controller.classList.add('dplayer-controller-comment');\n                this.player.template.mask.classList.add('dplayer-mask-show');\n                this.player.container.classList.add('dplayer-show-controller');\n                this.player.template.commentInput.focus();\n            }\n        },\n        {\n            key: 'hide',\n            value: function hide() {\n                this.player.template.controller.classList.remove('dplayer-controller-comment');\n                this.player.template.mask.classList.remove('dplayer-mask-show');\n                this.player.container.classList.remove('dplayer-show-controller');\n                this.player.controller.disableAutoHide = false;\n                this.hideSetting();\n            }\n        },\n        {\n            key: 'showSetting',\n            value: function showSetting() {\n                this.player.template.commentSettingBox.classList.add('dplayer-comment-setting-open');\n            }\n        },\n        {\n            key: 'hideSetting',\n            value: function hideSetting() {\n                this.player.template.commentSettingBox.classList.remove('dplayer-comment-setting-open');\n            }\n        },\n        {\n            key: 'toggleSetting',\n            value: function toggleSetting() {\n                if (this.player.template.commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n                    this.hideSetting();\n                } else {\n                    this.showSetting();\n                }\n            }\n        },\n        {\n            key: 'send',\n            value: function send() {\n                var _this2 = this;\n                this.player.template.commentInput.blur();\n                if (!this.player.template.commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n                    this.player.notice(this.player.tran('Please input danmaku content!'));\n                    return;\n                }\n                this.player.danmaku.send({\n                    text: this.player.template.commentInput.value,\n                    color: utils.color2Number(this.player.container.querySelector('.dplayer-comment-setting-color input:checked').value),\n                    type: parseInt(this.player.container.querySelector('.dplayer-comment-setting-type input:checked').value)\n                }, function () {\n                    _this2.player.template.commentInput.value = '';\n                    _this2.hide();\n                });\n            }\n        }\n    ]);\n    return Comment;\n}();\nexport default Comment;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nvar HotKey = function HotKey(player) {\n    _classCallCheck(this, HotKey);\n    if (player.options.hotkey) {\n        document.addEventListener('keydown', function (e) {\n            if (player.focus) {\n                var tag = document.activeElement.tagName.toUpperCase();\n                var editable = document.activeElement.getAttribute('contenteditable');\n                if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n                    var event = e || window.event;\n                    var percentage;\n                    switch (event.keyCode) {\n                    case 32:\n                        event.preventDefault();\n                        player.toggle();\n                        break;\n                    case 37:\n                        event.preventDefault();\n                        if (player.options.live) {\n                            break;\n                        }\n                        player.seek(player.video.currentTime - 5);\n                        player.controller.setAutoHide();\n                        break;\n                    case 39:\n                        event.preventDefault();\n                        if (player.options.live) {\n                            break;\n                        }\n                        player.seek(player.video.currentTime + 5);\n                        player.controller.setAutoHide();\n                        break;\n                    case 38:\n                        event.preventDefault();\n                        percentage = player.volume() + 0.1;\n                        player.volume(percentage);\n                        break;\n                    case 40:\n                        event.preventDefault();\n                        percentage = player.volume() - 0.1;\n                        player.volume(percentage);\n                        break;\n                    }\n                }\n            }\n        });\n    }\n    document.addEventListener('keydown', function (e) {\n        var event = e || window.event;\n        switch (event.keyCode) {\n        case 27:\n            if (player.fullScreen.isFullScreen('web')) {\n                player.fullScreen.cancel('web');\n            }\n            break;\n        }\n    });\n};\nexport default HotKey;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nvar ContextMenu = function () {\n    function ContextMenu(player) {\n        var _this = this;\n        _classCallCheck(this, ContextMenu);\n        this.player = player;\n        this.shown = false;\n        Array.prototype.slice.call(this.player.template.menuItem).forEach(function (item, index) {\n            if (_this.player.options.contextmenu[index].click) {\n                item.addEventListener('click', function () {\n                    _this.player.options.contextmenu[index].click(_this.player);\n                    _this.hide();\n                });\n            }\n        });\n        this.player.container.addEventListener('contextmenu', function (e) {\n            if (_this.shown) {\n                _this.hide();\n                return;\n            }\n            var event = e || window.event;\n            event.preventDefault();\n            var clientRect = _this.player.container.getBoundingClientRect();\n            _this.show(event.clientX - clientRect.left, event.clientY - clientRect.top);\n            _this.player.template.mask.addEventListener('click', function () {\n                _this.hide();\n            });\n        });\n    }\n    _createClass(ContextMenu, [\n        {\n            key: 'show',\n            value: function show(x, y) {\n                this.player.template.menu.classList.add('dplayer-menu-show');\n                var clientRect = this.player.container.getBoundingClientRect();\n                if (x + this.player.template.menu.offsetWidth >= clientRect.width) {\n                    this.player.template.menu.style.right = clientRect.width - x + 'px';\n                    this.player.template.menu.style.left = 'initial';\n                } else {\n                    this.player.template.menu.style.left = x + 'px';\n                    this.player.template.menu.style.right = 'initial';\n                }\n                if (y + this.player.template.menu.offsetHeight >= clientRect.height) {\n                    this.player.template.menu.style.bottom = clientRect.height - y + 'px';\n                    this.player.template.menu.style.top = 'initial';\n                } else {\n                    this.player.template.menu.style.top = y + 'px';\n                    this.player.template.menu.style.bottom = 'initial';\n                }\n                this.player.template.mask.classList.add('dplayer-mask-show');\n                this.shown = true;\n                this.player.events.trigger('contextmenu_show');\n            }\n        },\n        {\n            key: 'hide',\n            value: function hide() {\n                this.player.template.mask.classList.remove('dplayer-mask-show');\n                this.player.template.menu.classList.remove('dplayer-menu-show');\n                this.shown = false;\n                this.player.events.trigger('contextmenu_hide');\n            }\n        }\n    ]);\n    return ContextMenu;\n}();\nexport default ContextMenu;","function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nvar InfoPanel = function () {\n    function InfoPanel(player) {\n        var _this = this;\n        _classCallCheck(this, InfoPanel);\n        this.container = player.template.infoPanel;\n        this.template = player.template;\n        this.video = player.video;\n        this.player = player;\n        this.template.infoPanelClose.addEventListener('click', function () {\n            _this.hide();\n        });\n    }\n    _createClass(InfoPanel, [\n        {\n            key: 'show',\n            value: function show() {\n                this.beginTime = Date.now();\n                this.update();\n                this.player.timer.enable('info');\n                this.player.timer.enable('fps');\n                this.container.classList.remove('dplayer-info-panel-hide');\n            }\n        },\n        {\n            key: 'hide',\n            value: function hide() {\n                this.player.timer.disable('info');\n                this.player.timer.disable('fps');\n                this.container.classList.add('dplayer-info-panel-hide');\n            }\n        },\n        {\n            key: 'triggle',\n            value: function triggle() {\n                if (this.container.classList.contains('dplayer-info-panel-hide')) {\n                    this.show();\n                } else {\n                    this.hide();\n                }\n            }\n        },\n        {\n            key: 'update',\n            value: function update() {\n                this.template.infoVersion.innerHTML = 'v'.concat(DPLAYER_VERSION, ' ').concat(GIT_HASH);\n                this.template.infoType.innerHTML = this.player.type;\n                this.template.infoUrl.innerHTML = this.player.options.video.url;\n                this.template.infoResolution.innerHTML = ''.concat(this.player.video.videoWidth, ' x ').concat(this.player.video.videoHeight);\n                this.template.infoDuration.innerHTML = this.player.video.duration;\n                if (this.player.options.danmaku) {\n                    this.template.infoDanmakuId.innerHTML = this.player.options.danmaku.id;\n                    this.template.infoDanmakuApi.innerHTML = this.player.options.danmaku.api;\n                    this.template.infoDanmakuAmount.innerHTML = this.player.danmaku.dan.length;\n                }\n            }\n        },\n        {\n            key: 'fps',\n            value: function fps(value) {\n                this.template.infoFPS.innerHTML = ''.concat(value.toFixed(1));\n            }\n        }\n    ]);\n    return InfoPanel;\n}();\nexport default InfoPanel;","function ownKeys(object, enumerableOnly) {\n    var keys = Object.keys(object);\n    if (Object.getOwnPropertySymbols) {\n        var symbols = Object.getOwnPropertySymbols(object);\n        if (enumerableOnly)\n            symbols = symbols.filter(function (sym) {\n                return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n            });\n        keys.push.apply(keys, symbols);\n    }\n    return keys;\n}\nfunction _objectSpread(target) {\n    for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i] != null ? arguments[i] : {};\n        if (i % 2) {\n            ownKeys(Object(source), true).forEach(function (key) {\n                _defineProperty(target, key, source[key]);\n            });\n        } else if (Object.getOwnPropertyDescriptors) {\n            Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n        } else {\n            ownKeys(Object(source)).forEach(function (key) {\n                Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n            });\n        }\n    }\n    return target;\n}\nfunction _defineProperty(obj, key, value) {\n    if (key in obj) {\n        Object.defineProperty(obj, key, {\n            value: value,\n            enumerable: true,\n            configurable: true,\n            writable: true\n        });\n    } else {\n        obj[key] = value;\n    }\n    return obj;\n}\nfunction _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n        throw new TypeError('Cannot call a class as a function');\n    }\n}\nfunction _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ('value' in descriptor)\n            descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n    }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps)\n        _defineProperties(Constructor.prototype, protoProps);\n    if (staticProps)\n        _defineProperties(Constructor, staticProps);\n    return Constructor;\n}\nimport Promise from 'promise-polyfill';\nimport utils from './utils';\nimport handleOption from './options';\nimport i18n from './i18n';\nimport Template from './template';\nimport Icons from './icons';\nimport Danmaku from './danmaku';\nimport Events from './events';\nimport FullScreen from './fullscreen';\nimport User from './user';\nimport Subtitle from './subtitle';\nimport Bar from './bar';\nimport Timer from './timer';\nimport Bezel from './bezel';\nimport Controller from './controller';\nimport Setting from './setting';\nimport Comment from './comment';\nimport HotKey from './hotkey';\nimport ContextMenu from './contextmenu';\nimport InfoPanel from './info-panel';\nimport tplVideo from '../template/video.art';\nvar index = 0;\nvar instances = [];\nvar DPlayer = function () {\n    function DPlayer(options) {\n        var _this = this;\n        _classCallCheck(this, DPlayer);\n        this.options = handleOption(_objectSpread({ preload: options.video.type === 'webtorrent' ? 'none' : 'metadata' }, options));\n        if (this.options.video.quality) {\n            this.qualityIndex = this.options.video.defaultQuality;\n            this.quality = this.options.video.quality[this.options.video.defaultQuality];\n        }\n        this.tran = new i18n(this.options.lang).tran;\n        this.events = new Events();\n        this.user = new User(this);\n        this.container = this.options.container;\n        this.container.classList.add('dplayer');\n        if (!this.options.danmaku) {\n            this.container.classList.add('dplayer-no-danmaku');\n        }\n        if (this.options.live) {\n            this.container.classList.add('dplayer-live');\n        }\n        if (utils.isMobile) {\n            this.container.classList.add('dplayer-mobile');\n        }\n        this.arrow = this.container.offsetWidth <= 500;\n        if (this.arrow) {\n            this.container.classList.add('dplayer-arrow');\n        }\n        this.template = new Template({\n            container: this.container,\n            options: this.options,\n            index: index,\n            tran: this.tran\n        });\n        this.video = this.template.video;\n        this.bar = new Bar(this.template);\n        this.bezel = new Bezel(this.template.bezel);\n        this.fullScreen = new FullScreen(this);\n        this.controller = new Controller(this);\n        if (this.options.danmaku) {\n            this.danmaku = new Danmaku({\n                container: this.template.danmaku,\n                opacity: this.user.get('opacity'),\n                callback: function callback() {\n                    setTimeout(function () {\n                        _this.template.danmakuLoading.style.display = 'none';\n                        if (_this.options.autoplay) {\n                            _this.play();\n                        }\n                    }, 0);\n                },\n                error: function error(msg) {\n                    _this.notice(msg);\n                },\n                apiBackend: this.options.apiBackend,\n                borderColor: this.options.theme,\n                height: this.arrow ? 24 : 30,\n                time: function time() {\n                    return _this.video.currentTime;\n                },\n                unlimited: this.user.get('unlimited'),\n                api: {\n                    id: this.options.danmaku.id,\n                    address: this.options.danmaku.api,\n                    token: this.options.danmaku.token,\n                    maximum: this.options.danmaku.maximum,\n                    addition: this.options.danmaku.addition,\n                    user: this.options.danmaku.user\n                },\n                events: this.events,\n                tran: function tran(msg) {\n                    return _this.tran(msg);\n                }\n            });\n            this.comment = new Comment(this);\n        }\n        this.setting = new Setting(this);\n        this.plugins = {};\n        document.addEventListener('click', function () {\n            _this.focus = false;\n        }, true);\n        this.container.addEventListener('click', function () {\n            _this.focus = true;\n        }, true);\n        this.paused = true;\n        this.timer = new Timer(this);\n        this.hotkey = new HotKey(this);\n        this.contextmenu = new ContextMenu(this);\n        this.initVideo(this.video, this.quality && this.quality.type || this.options.video.type);\n        this.infoPanel = new InfoPanel(this);\n        if (!this.danmaku && this.options.autoplay) {\n            this.play();\n        }\n        index++;\n        instances.push(this);\n    }\n    _createClass(DPlayer, [\n        {\n            key: 'seek',\n            value: function seek(time) {\n                time = Math.max(time, 0);\n                if (this.video.duration) {\n                    time = Math.min(time, this.video.duration);\n                }\n                if (this.video.currentTime < time) {\n                    this.notice(''.concat(this.tran('FF'), ' ').concat((time - this.video.currentTime).toFixed(0), ' ').concat(this.tran('s')));\n                } else if (this.video.currentTime > time) {\n                    this.notice(''.concat(this.tran('REW'), ' ').concat((this.video.currentTime - time).toFixed(0), ' ').concat(this.tran('s')));\n                }\n                this.video.currentTime = time;\n                if (this.danmaku) {\n                    this.danmaku.seek();\n                }\n                this.bar.set('played', time / this.video.duration, 'width');\n                this.template.ptime.innerHTML = utils.secondToTime(time);\n            }\n        },\n        {\n            key: 'play',\n            value: function play(fromNative) {\n                var _this2 = this;\n                this.paused = false;\n                if (this.video.paused && !utils.isMobile) {\n                    this.bezel['switch'](Icons.play);\n                }\n                this.template.playButton.innerHTML = Icons.pause;\n                this.template.mobilePlayButton.innerHTML = Icons.pause;\n                if (!fromNative) {\n                    var playedPromise = Promise.resolve(this.video.play());\n                    playedPromise['catch'](function () {\n                        _this2.pause();\n                    }).then(function () {\n                    });\n                }\n                this.timer.enable('loading');\n                this.container.classList.remove('dplayer-paused');\n                this.container.classList.add('dplayer-playing');\n                if (this.danmaku) {\n                    this.danmaku.play();\n                }\n                if (this.options.mutex) {\n                    for (var i = 0; i < instances.length; i++) {\n                        if (this !== instances[i]) {\n                            instances[i].pause();\n                        }\n                    }\n                }\n            }\n        },\n        {\n            key: 'pause',\n            value: function pause(fromNative) {\n                this.paused = true;\n                this.container.classList.remove('dplayer-loading');\n                if (!this.video.paused && !utils.isMobile) {\n                    this.bezel['switch'](Icons.pause);\n                }\n                this.template.playButton.innerHTML = Icons.play;\n                this.template.mobilePlayButton.innerHTML = Icons.play;\n                if (!fromNative) {\n                    this.video.pause();\n                }\n                this.timer.disable('loading');\n                this.container.classList.remove('dplayer-playing');\n                this.container.classList.add('dplayer-paused');\n                if (this.danmaku) {\n                    this.danmaku.pause();\n                }\n            }\n        },\n        {\n            key: 'switchVolumeIcon',\n            value: function switchVolumeIcon() {\n                if (this.volume() >= 0.95) {\n                    this.template.volumeIcon.innerHTML = Icons.volumeUp;\n                } else if (this.volume() > 0) {\n                    this.template.volumeIcon.innerHTML = Icons.volumeDown;\n                } else {\n                    this.template.volumeIcon.innerHTML = Icons.volumeOff;\n                }\n            }\n        },\n        {\n            key: 'volume',\n            value: function volume(percentage, nostorage, nonotice) {\n                percentage = parseFloat(percentage);\n                if (!isNaN(percentage)) {\n                    percentage = Math.max(percentage, 0);\n                    percentage = Math.min(percentage, 1);\n                    this.bar.set('volume', percentage, 'width');\n                    var formatPercentage = ''.concat((percentage * 100).toFixed(0), '%');\n                    this.template.volumeBarWrapWrap.dataset.balloon = formatPercentage;\n                    if (!nostorage) {\n                        this.user.set('volume', percentage);\n                    }\n                    if (!nonotice) {\n                        this.notice(''.concat(this.tran('Volume'), ' ').concat((percentage * 100).toFixed(0), '%'));\n                    }\n                    this.video.volume = percentage;\n                    if (this.video.muted) {\n                        this.video.muted = false;\n                    }\n                    this.switchVolumeIcon();\n                }\n                return this.video.volume;\n            }\n        },\n        {\n            key: 'toggle',\n            value: function toggle() {\n                if (this.video.paused) {\n                    this.play();\n                } else {\n                    this.pause();\n                }\n            }\n        },\n        {\n            key: 'on',\n            value: function on(name, callback) {\n                this.events.on(name, callback);\n            }\n        },\n        {\n            key: 'switchVideo',\n            value: function switchVideo(video, danmakuAPI) {\n                this.pause();\n                this.video.poster = video.pic ? video.pic : '';\n                this.video.src = video.url;\n                this.initMSE(this.video, video.type || 'auto');\n                if (danmakuAPI) {\n                    this.template.danmakuLoading.style.display = 'block';\n                    this.bar.set('played', 0, 'width');\n                    this.bar.set('loaded', 0, 'width');\n                    this.template.ptime.innerHTML = '00:00';\n                    this.template.danmaku.innerHTML = '';\n                    if (this.danmaku) {\n                        this.danmaku.reload({\n                            id: danmakuAPI.id,\n                            address: danmakuAPI.api,\n                            token: danmakuAPI.token,\n                            maximum: danmakuAPI.maximum,\n                            addition: danmakuAPI.addition,\n                            user: danmakuAPI.user\n                        });\n                    }\n                }\n            }\n        },\n        {\n            key: 'initMSE',\n            value: function initMSE(video, type) {\n                var _this3 = this;\n                this.type = type;\n                if (this.options.video.customType && this.options.video.customType[type]) {\n                    if (Object.prototype.toString.call(this.options.video.customType[type]) === '[object Function]') {\n                        this.options.video.customType[type](this.video, this);\n                    } else {\n                        console.error('Illegal customType: '.concat(type));\n                    }\n                } else {\n                    if (this.type === 'auto') {\n                        if (/m3u8(#|\\?|$)/i.exec(video.src)) {\n                            this.type = 'hls';\n                        } else if (/.flv(#|\\?|$)/i.exec(video.src)) {\n                            this.type = 'flv';\n                        } else if (/.mpd(#|\\?|$)/i.exec(video.src)) {\n                            this.type = 'dash';\n                        } else {\n                            this.type = 'normal';\n                        }\n                    }\n                    if (this.type === 'hls' && (video.canPlayType('application/x-mpegURL') || video.canPlayType('application/vnd.apple.mpegURL'))) {\n                        this.type = 'normal';\n                    }\n                    switch (this.type) {\n                    case 'hls':\n                        if (window.Hls) {\n                            if (window.Hls.isSupported()) {\n                                var options = this.options.pluginOptions.hls;\n                                var hls = new window.Hls(options);\n                                this.plugins.hls = hls;\n                                hls.loadSource(video.src);\n                                hls.attachMedia(video);\n                                this.events.on('destroy', function () {\n                                    hls.destroy();\n                                    delete _this3.plugins.hls;\n                                });\n                            } else {\n                                this.notice('Error: Hls is not supported.');\n                            }\n                        } else {\n                            this.notice('Error: Can\\'t find Hls.');\n                        }\n                        break;\n                    case 'flv':\n                        if (window.flvjs) {\n                            if (window.flvjs.isSupported()) {\n                                var flvPlayer = window.flvjs.createPlayer(Object.assign(this.options.pluginOptions.flv.mediaDataSource || {}, {\n                                    type: 'flv',\n                                    url: video.src\n                                }), this.options.pluginOptions.flv.config);\n                                this.plugins.flvjs = flvPlayer;\n                                flvPlayer.attachMediaElement(video);\n                                flvPlayer.load();\n                                this.events.on('destroy', function () {\n                                    flvPlayer.unload();\n                                    flvPlayer.detachMediaElement();\n                                    flvPlayer.destroy();\n                                    delete _this3.plugins.flvjs;\n                                });\n                            } else {\n                                this.notice('Error: flvjs is not supported.');\n                            }\n                        } else {\n                            this.notice('Error: Can\\'t find flvjs.');\n                        }\n                        break;\n                    case 'dash':\n                        if (window.dashjs) {\n                            var dashjsPlayer = window.dashjs.MediaPlayer().create().initialize(video, video.src, false);\n                            var _options = this.options.pluginOptions.dash;\n                            dashjsPlayer.updateSettings(_options);\n                            this.plugins.dash = dashjsPlayer;\n                            this.events.on('destroy', function () {\n                                window.dashjs.MediaPlayer().reset();\n                                delete _this3.plugins.dash;\n                            });\n                        } else {\n                            this.notice('Error: Can\\'t find dashjs.');\n                        }\n                        break;\n                    case 'webtorrent':\n                        if (window.WebTorrent) {\n                            if (window.WebTorrent.WEBRTC_SUPPORT) {\n                                this.container.classList.add('dplayer-loading');\n                                var _options2 = this.options.pluginOptions.webtorrent;\n                                var client = new window.WebTorrent(_options2);\n                                this.plugins.webtorrent = client;\n                                var torrentId = video.src;\n                                video.src = '';\n                                video.preload = 'metadata';\n                                video.addEventListener('durationchange', function () {\n                                    return _this3.container.classList.remove('dplayer-loading');\n                                }, { once: true });\n                                client.add(torrentId, function (torrent) {\n                                    var file = torrent.files.find(function (file) {\n                                        return file.name.endsWith('.mp4');\n                                    });\n                                    file.renderTo(_this3.video, {\n                                        autoplay: _this3.options.autoplay,\n                                        controls: false\n                                    });\n                                });\n                                this.events.on('destroy', function () {\n                                    client.remove(torrentId);\n                                    client.destroy();\n                                    delete _this3.plugins.webtorrent;\n                                });\n                            } else {\n                                this.notice('Error: Webtorrent is not supported.');\n                            }\n                        } else {\n                            this.notice('Error: Can\\'t find Webtorrent.');\n                        }\n                        break;\n                    }\n                }\n            }\n        },\n        {\n            key: 'initVideo',\n            value: function initVideo(video, type) {\n                var _this4 = this;\n                this.initMSE(video, type);\n                this.on('durationchange', function () {\n                    if (video.duration !== 1 && video.duration !== Infinity) {\n                        _this4.template.dtime.innerHTML = utils.secondToTime(video.duration);\n                    }\n                });\n                this.on('progress', function () {\n                    var percentage = video.buffered.length ? video.buffered.end(video.buffered.length - 1) / video.duration : 0;\n                    _this4.bar.set('loaded', percentage, 'width');\n                });\n                this.on('error', function () {\n                    if (!_this4.video.error) {\n                        return;\n                    }\n                    _this4.tran && _this4.notice && _this4.type !== 'webtorrent' && _this4.notice(_this4.tran('Video load failed'), -1);\n                });\n                this.on('ended', function () {\n                    _this4.bar.set('played', 1, 'width');\n                    if (!_this4.setting.loop) {\n                        _this4.pause();\n                    } else {\n                        _this4.seek(0);\n                        _this4.play();\n                    }\n                    if (_this4.danmaku) {\n                        _this4.danmaku.danIndex = 0;\n                    }\n                });\n                this.on('play', function () {\n                    if (_this4.paused) {\n                        _this4.play(true);\n                    }\n                });\n                this.on('pause', function () {\n                    if (!_this4.paused) {\n                        _this4.pause(true);\n                    }\n                });\n                this.on('timeupdate', function () {\n                    _this4.bar.set('played', _this4.video.currentTime / _this4.video.duration, 'width');\n                    var currentTime = utils.secondToTime(_this4.video.currentTime);\n                    if (_this4.template.ptime.innerHTML !== currentTime) {\n                        _this4.template.ptime.innerHTML = currentTime;\n                    }\n                });\n                var _loop = function _loop(i) {\n                    video.addEventListener(_this4.events.videoEvents[i], function () {\n                        _this4.events.trigger(_this4.events.videoEvents[i]);\n                    });\n                };\n                for (var i = 0; i < this.events.videoEvents.length; i++) {\n                    _loop(i);\n                }\n                this.volume(this.user.get('volume'), true, true);\n                if (this.options.subtitle) {\n                    this.subtitle = new Subtitle(this.template.subtitle, this.video, this.options.subtitle, this.events);\n                    if (!this.user.get('subtitle')) {\n                        this.subtitle.hide();\n                    }\n                }\n            }\n        },\n        {\n            key: 'switchQuality',\n            value: function switchQuality(index) {\n                var _this5 = this;\n                index = typeof index === 'string' ? parseInt(index) : index;\n                if (this.qualityIndex === index || this.switchingQuality) {\n                    return;\n                } else {\n                    this.qualityIndex = index;\n                }\n                this.switchingQuality = true;\n                this.quality = this.options.video.quality[index];\n                this.template.qualityButton.innerHTML = this.quality.name;\n                var paused = this.video.paused;\n                this.video.pause();\n                var videoHTML = tplVideo({\n                    current: false,\n                    pic: null,\n                    screenshot: this.options.screenshot,\n                    preload: 'auto',\n                    url: this.quality.url,\n                    subtitle: this.options.subtitle\n                });\n                var videoEle = new DOMParser().parseFromString(videoHTML, 'text/html').body.firstChild;\n                this.template.videoWrap.insertBefore(videoEle, this.template.videoWrap.getElementsByTagName('div')[0]);\n                this.prevVideo = this.video;\n                this.video = videoEle;\n                this.initVideo(this.video, this.quality.type || this.options.video.type);\n                this.seek(this.prevVideo.currentTime);\n                this.notice(''.concat(this.tran('Switching to'), ' ').concat(this.quality.name, ' ').concat(this.tran('quality')), -1);\n                this.events.trigger('quality_start', this.quality);\n                this.on('canplay', function () {\n                    if (_this5.prevVideo) {\n                        if (_this5.video.currentTime !== _this5.prevVideo.currentTime) {\n                            _this5.seek(_this5.prevVideo.currentTime);\n                            return;\n                        }\n                        _this5.template.videoWrap.removeChild(_this5.prevVideo);\n                        _this5.video.classList.add('dplayer-video-current');\n                        if (!paused) {\n                            _this5.video.play();\n                        }\n                        _this5.prevVideo = null;\n                        _this5.notice(''.concat(_this5.tran('Switched to'), ' ').concat(_this5.quality.name, ' ').concat(_this5.tran('quality')));\n                        _this5.switchingQuality = false;\n                        _this5.events.trigger('quality_end');\n                    }\n                });\n            }\n        },\n        {\n            key: 'notice',\n            value: function notice(text) {\n                var _this6 = this;\n                var time = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;\n                var opacity = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.8;\n                this.template.notice.innerHTML = text;\n                this.template.notice.style.opacity = opacity;\n                if (this.noticeTime) {\n                    clearTimeout(this.noticeTime);\n                }\n                this.events.trigger('notice_show', text);\n                if (time > 0) {\n                    this.noticeTime = setTimeout(function () {\n                        _this6.template.notice.style.opacity = 0;\n                        _this6.events.trigger('notice_hide');\n                    }, time);\n                }\n            }\n        },\n        {\n            key: 'resize',\n            value: function resize() {\n                if (this.danmaku) {\n                    this.danmaku.resize();\n                }\n                if (this.controller.thumbnails) {\n                    this.controller.thumbnails.resize(160, this.video.videoHeight / this.video.videoWidth * 160, this.template.barWrap.offsetWidth);\n                }\n                this.events.trigger('resize');\n            }\n        },\n        {\n            key: 'speed',\n            value: function speed(rate) {\n                this.video.playbackRate = rate;\n            }\n        },\n        {\n            key: 'destroy',\n            value: function destroy() {\n                instances.splice(instances.indexOf(this), 1);\n                this.pause();\n                this.controller.destroy();\n                this.timer.destroy();\n                this.video.src = '';\n                this.container.innerHTML = '';\n                this.events.trigger('destroy');\n            }\n        }\n    ], [{\n            key: 'version',\n            get: function get() {\n                return DPLAYER_VERSION;\n            }\n        }]);\n    return DPlayer;\n}();\nexport default DPlayer;","import '../css/index.scss';\nimport DPlayer from './player';\nconsole.log('\\n'.concat(' %c DPlayer v', DPLAYER_VERSION, ' ').concat(GIT_HASH, ' %c http://dplayer.js.org ', '\\n', '\\n'), 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;');\nexport default DPlayer;"],"sourceRoot":""}