/*! * artplayer-plugin-danmuku.js v5.0.1 * Github: https://github.com/zhw2590582/ArtPlayer * (c) 2017-2024 Harvey Zack * Released under the MIT License. */ !function(t,e,r,n,a){var o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof o[n]&&o[n],u=i.cache||{},s="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function l(e,r){if(!u[e]){if(!t[e]){var a="function"==typeof o[n]&&o[n];if(!r&&a)return a(e,!0);if(i)return i(e,!0);if(s&&"string"==typeof e)return s(e);var c=new Error("Cannot find module '"+e+"'");throw c.code="MODULE_NOT_FOUND",c}f.resolve=function(r){var n=t[e][1][r];return null!=n?n:r},f.cache={};var p=u[e]=new l.Module(e);t[e][0].call(p.exports,f,p,p.exports,this)}return u[e].exports;function f(t){var e=f.resolve(t);return!1===e?{}:l(e)}}l.isParcelRequire=!0,l.Module=function(t){this.id=t,this.bundle=l,this.exports={}},l.modules=t,l.cache=u,l.parent=i,l.register=function(e,r){t[e]=[function(t,e){e.exports=r},{}]},Object.defineProperty(l,"root",{get:function(){return o[n]}}),o[n]=l;for(var c=0;c=5,"Artplayer.js@".concat(r," 不兼容该弹幕库,请更新到 Artplayer.js@5.x.x 版本以上"))}(e);var r=new(0,o.default)(e,t);return(0,u.default)(e,r),t.heatmap&&(0,l.default)(e,r,t.heatmap),{name:"artplayerPluginDanmuku",emit:r.emit.bind(r),load:r.load.bind(r),config:r.config.bind(r),hide:r.hide.bind(r),show:r.show.bind(r),reset:r.reset.bind(r),get option(){return r.option},get isHide(){return r.isHide},get isStop(){return r.isStop}}}}r.default=c,"undefined"!=typeof window&&(window.artplayerPluginDanmuku=c)},{"./danmuku":"jgffw","./setting":"d3V7t","./heatmap":"dXFn2","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],jgffw:[function(t,e,r){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"default",(function(){return b}));var a=t("@swc/helpers/src/_async_to_generator.mjs"),o=n.interopDefault(a),i=t("@swc/helpers/src/_class_call_check.mjs"),u=n.interopDefault(i),s=t("@swc/helpers/src/_create_class.mjs"),l=n.interopDefault(s),c=t("@swc/helpers/src/_object_spread.mjs"),p=n.interopDefault(c),f=t("@swc/helpers/src/_object_spread_props.mjs"),d=n.interopDefault(f),m=t("@swc/helpers/src/_ts_generator.mjs"),h=n.interopDefault(m),y=t("./bilibili"),g=t("./getDanmuTop"),v=n.interopDefault(g),b=function(){"use strict";function e(r,n){(0,u.default)(this,e);var a=r.constructor,o=r.template;if(this.utils=a.utils,this.validator=a.validator,this.$danmuku=o.$danmuku,this.$player=o.$player,this.art=r,this.danmus=[],this.queue=[],this.option={},this.$refs=[],this.isStop=!1,this.isHide=!1,this.timer=null,this.config(n),this.option.useWorker)try{this.worker=new Worker(t("12ceab24749100d0"))}catch(t){}this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.reset=this.reset.bind(this),this.destroy=this.destroy.bind(this),r.on("video:play",this.start),r.on("video:playing",this.start),r.on("video:pause",this.stop),r.on("video:waiting",this.stop),r.on("resize",this.reset),r.on("destroy",this.destroy),this.load()}return(0,l.default)(e,[{key:"isRotate",get:function(){return this.art.plugins.autoOrientation&&this.art.plugins.autoOrientation.state}},{key:"marginTop",get:function(){var t=this.utils.clamp,r=this.option.margin[0],n=this.$player.clientHeight;return"number"==typeof r?t(r,0,n):"string"==typeof r&&r.endsWith("%")?t(n*(parseFloat(r)/100),0,n):e.option.margin[0]}},{key:"marginBottom",get:function(){var t=this.utils.clamp,r=this.option.margin[1],n=this.$player.clientHeight;return"number"==typeof r?t(r,0,n):"string"==typeof r&&r.endsWith("%")?t(n*(parseFloat(r)/100),0,n):e.option.margin[1]}},{key:"filter",value:function(t,e){return this.queue.filter((function(e){return e.$state===t})).map(e)}},{key:"getLeft",value:function(t){var e=t.getBoundingClientRect();return this.isRotate?e.top:e.left}},{key:"getRef",value:function(){var t=this.$refs.pop();if(t)return t;var e=document.createElement("div");return e.style.cssText='\n user-select: none;\n position: absolute;\n white-space: pre;\n pointer-events: none;\n perspective: 500px;\n display: inline-block;\n will-change: transform;\n font-weight: normal;\n line-height: 1.125;\n visibility: hidden;\n font-family: SimHei, "Microsoft JhengHei", Arial, Helvetica, sans-serif;\n text-shadow: rgb(0, 0, 0) 1px 0px 1px, rgb(0, 0, 0) 0px 1px 1px, rgb(0, 0, 0) 0px -1px 1px, rgb(0, 0, 0) -1px 0px 1px;\n ',e}},{key:"getReady",value:function(){var t=this.art.currentTime;return this.queue.filter((function(e){return"ready"===e.$state||"wait"===e.$state&&t+.1>=e.time&&e.time>=t-.1}))}},{key:"getEmits",value:function(){var t=this,e=[],r=this.$player.clientWidth,n=this.getLeft(this.$player);return this.filter("emit",(function(a){var o=a.$ref.offsetTop,i=t.getLeft(a.$ref)-n,u=a.$ref.clientHeight,s=a.$ref.clientWidth,l=i+s,c=r-l,p=l/a.$restTime,f={};f.top=o,f.left=i,f.height=u,f.width=s,f.right=c,f.speed=p,f.distance=l,f.time=a.$restTime,f.mode=a.mode,e.push(f)})),e}},{key:"getFontSize",value:function(t){var r=this.utils.clamp,n=this.$player.clientHeight;return"number"==typeof t?r(t,12,n):"string"==typeof t&&t.endsWith("%")?r(n*(parseFloat(t)/100),12,n):e.option.fontSize}},{key:"postMessage",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=this;return new Promise((function(r){if(e.option.useWorker&&e.worker&&e.worker.postMessage)t.id=Date.now(),e.worker.postMessage(t),e.worker.onmessage=function(e){var n=e.data;n.id===t.id&&r(n)};else{var n=(0,v.default)(t);r({top:n})}}))}},{key:"load",value:function(){var t=this;return(0,o.default)((function(){var e;return(0,h.default)(this,(function(r){switch(r.label){case 0:return r.trys.push([0,8,,9]),"function"!=typeof t.option.danmuku?[3,2]:[4,t.option.danmuku()];case 1:return t.danmus=r.sent(),[3,7];case 2:return"function"!=typeof t.option.danmuku.then?[3,4]:[4,t.option.danmuku];case 3:return t.danmus=r.sent(),[3,7];case 4:return"string"!=typeof t.option.danmuku?[3,6]:[4,(0,y.bilibiliDanmuParseFromUrl)(t.option.danmuku)];case 5:return t.danmus=r.sent(),[3,7];case 6:t.danmus=t.option.danmuku,r.label=7;case 7:return t.utils.errorHandle(Array.isArray(t.danmus),"Danmuku need return an array as result"),t.art.emit("artplayerPluginDanmuku:loaded",t.danmus),t.queue=[],t.$danmuku.innerText="",t.danmus.forEach((function(e){return t.emit(e)})),[3,9];case 8:throw e=r.sent(),t.art.emit("artplayerPluginDanmuku:error",e),e;case 9:return[2,t]}}))}))()}},{key:"config",value:function(t){var r=this.utils.clamp;return this.option=Object.assign({},e.option,this.option,t),this.validator(this.option,e.scheme),this.option.speed=r(this.option.speed,1,10),this.option.opacity=r(this.option.opacity,0,1),this.option.lockTime=r(Math.floor(this.option.lockTime),0,60),this.option.maxLength=r(this.option.maxLength,0,500),this.option.minWidth=r(this.option.minWidth,0,500),this.option.maxWidth=r(this.option.maxWidth,0,1/0),t.fontSize&&(this.option.fontSize=this.getFontSize(this.option.fontSize),this.reset()),this.art.emit("artplayerPluginDanmuku:config",this.option),this}},{key:"makeWait",value:function(t){t.$state="wait",t.$ref&&(t.$ref.style.visibility="hidden",t.$ref.style.marginLeft="0px",t.$ref.style.transform="translateX(0px)",t.$ref.style.transition="transform 0s linear 0s",this.$refs.push(t.$ref),t.$ref=null)}},{key:"continue",value:function(){var t=this.$player.clientWidth;return this.filter("stop",(function(e){if(e.$state="emit",e.$lastStartTime=Date.now(),0===e.mode){var r=t+e.$ref.clientWidth;e.$ref.style.transform="translateX(".concat(-r,"px)"),e.$ref.style.transition="transform ".concat(e.$restTime,"s linear 0s")}})),this}},{key:"suspend",value:function(){var t=this,e=this.$player.clientWidth;return this.filter("emit",(function(r){if(r.$state="stop",0===r.mode){var n=e-(t.getLeft(r.$ref)-t.getLeft(t.$player));r.$ref.style.transform="translateX(".concat(-n,"px)"),r.$ref.style.transition="transform 0s linear 0s"}})),this}},{key:"reset",value:function(){var t=this;return this.queue.forEach((function(e){return t.makeWait(e)})),this}},{key:"update",value:function(){var t=this;return this.timer=window.requestAnimationFrame((0,o.default)((function(){var e,r,n,a,o,i,u,s,l;return(0,h.default)(this,(function(c){switch(c.label){case 0:if(!t.art.playing||t.isHide)return[3,4];t.filter("emit",(function(e){var r=(Date.now()-e.$lastStartTime)/1e3;e.$restTime-=r,e.$lastStartTime=Date.now(),e.$restTime<=0&&t.makeWait(e)})),e=t.getReady(),r=t.$player,n=r.clientWidth,a=r.clientHeight,o=0,c.label=1;case 1:return o=0;u--)(a=t[u])&&(i=(o<3?a(i):o>3?a(e,r,i):a(e,r))||i);return o>3&&i&&Object.defineProperty(e,r,i),i}function l(t,e){return function(r,n){e(r,n,t)}}function c(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)}function p(t,e,r,n){return new(r||(r=Promise))((function(a,o){function i(t){try{s(n.next(t))}catch(t){o(t)}}function u(t){try{s(n.throw(t))}catch(t){o(t)}}function s(t){var e;t.done?a(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(i,u)}s((n=n.apply(t,e||[])).next())}))}function f(t,e){var r,n,a,o,i={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(u){return function(s){return function(u){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,u[0]&&(i=0)),i;)try{if(r=1,n&&(a=2&u[0]?n.return:u[0]?n.throw||((a=n.return)&&a.call(n),0):n.next)&&!(a=a.call(n,u[1])).done)return a;switch(n=0,a&&(u=[2&u[0],a.value]),u[0]){case 0:case 1:a=u;break;case 4:return i.label++,{value:u[1],done:!1};case 5:i.label++,n=u[1],u=[0];continue;case 7:u=i.ops.pop(),i.trys.pop();continue;default:if(!(a=i.trys,(a=a.length>0&&a[a.length-1])||6!==u[0]&&2!==u[0])){i=0;continue}if(3===u[0]&&(!a||u[1]>a[0]&&u[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function y(t,e){var r="function"==typeof Symbol&&t[Symbol.iterator];if(!r)return t;var n,a,o=r.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(t){a={error:t}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(a)throw a.error}}return i}function g(){for(var t=[],e=0;e1||u(t,e)}))})}function u(t,e){try{(r=a[t](e)).value instanceof k?Promise.resolve(r.value.v).then(s,l):c(o[0][2],r)}catch(t){c(o[0][3],t)}var r}function s(t){u("next",t)}function l(t){u("throw",t)}function c(t,e){t(e),o.shift(),o.length&&u(o[0][0],o[0][1])}}function x(t){var e,r;return e={},n("next"),n("throw",(function(t){throw t})),n("return"),e[Symbol.iterator]=function(){return this},e;function n(n,a){e[n]=t[n]?function(e){return(r=!r)?{value:k(t[n](e)),done:"return"===n}:a?a(e):e}:a}}function D(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,r=t[Symbol.asyncIterator];return r?r.call(t):(t=h(t),e={},n("next"),n("throw"),n("return"),e[Symbol.asyncIterator]=function(){return this},e);function n(r){e[r]=t[r]&&function(e){return new Promise((function(n,a){(function(t,e,r,n){Promise.resolve(n).then((function(e){t({value:e,done:r})}),e)})(n,a,(e=t[r](e)).done,e.value)}))}}}function j(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}var _=Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e};function C(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var r in t)"default"!==r&&Object.prototype.hasOwnProperty.call(t,r)&&d(e,t,r);return _(e,t),e}function B(t){return t&&t.__esModule?t:{default:t}}function S(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)}function A(t,e,r,n,a){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!a)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!a:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?a.call(t,r):a?a.value=r:e.set(t,r),r}function $(t,e){if(null===e||"object"!=typeof e&&"function"!=typeof e)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof t?e===t:t.has(e)}},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],kMsXR:[function(t,e,r){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");function a(t){switch(t){case 1:case 2:case 3:default:return 0;case 4:case 5:return 1}}function o(t){if("string"!=typeof t)return[];var e=t.matchAll(RegExp('(?.+?)<\\/d>',"gs"));return Array.from(e).map((function(t){var e=t.groups.p.split(",");return e.length>=8?{text:t.groups.text.trim().replaceAll(""",'"').replaceAll("'","'").replaceAll("<","<").replaceAll(">",">").replaceAll("&","&"),time:Number(e[0]),mode:a(Number(e[1])),fontSize:Number(e[2]),color:"#".concat(Number(e[3]).toString(16)),timestamp:Number(e[4]),pool:Number(e[5]),userID:e[6],rowID:Number(e[7])}:null})).filter(Boolean)}function i(t){return fetch(t).then((function(t){return t.text()})).then((function(t){return o(t)}))}n.defineInteropFlag(r),n.export(r,"getMode",(function(){return a})),n.export(r,"bilibiliDanmuParseFromXml",(function(){return o})),n.export(r,"bilibiliDanmuParseFromUrl",(function(){return i}))},{"@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],fdr65:[function(t,e,r){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r);var a=t("@swc/helpers/src/_to_consumable_array.mjs"),o=n.interopDefault(a);r.default=function(t){var e=t.target,r=t.emits,n=t.clientWidth,a=t.clientHeight,i=t.marginBottom,u=t.marginTop,s=t.antiOverlap,l=r.filter((function(t){return t.mode===e.mode&&t.top<=a-i})).sort((function(t,e){return t.top-e.top}));if(0===l.length)return u;l.unshift({top:0,left:0,right:0,height:u,width:n,speed:0,distance:n}),l.push({top:a-i,left:0,right:0,height:i,width:n,speed:0,distance:n});for(var c=1;c=e.height)return d}for(var m=[],h=1;ht.time)}))}));return v&&v[0]?v[0].top:void 0;case 1:return}}},{"@swc/helpers/src/_to_consumable_array.mjs":"inwWM","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],inwWM:[function(t,e,r){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r);var a=t("./_array_without_holes.mjs"),o=n.interopDefault(a),i=t("./_iterable_to_array.mjs"),u=n.interopDefault(i),s=t("./_non_iterable_spread.mjs"),l=n.interopDefault(s),c=t("./_unsupported_iterable_to_array.mjs"),p=n.interopDefault(c);r.default=function(t){return(0,o.default)(t)||(0,u.default)(t)||(0,p.default)(t)||(0,l.default)()}},{"./_array_without_holes.mjs":"aPtE3","./_iterable_to_array.mjs":"a510R","./_non_iterable_spread.mjs":"hRgb8","./_unsupported_iterable_to_array.mjs":"jHVd7","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],aPtE3:[function(t,e,r){var n=t("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r);var a=t("./_array_like_to_array.mjs"),o=n.interopDefault(a);r.default=function(t){if(Array.isArray(t))return(0,o.default)(t)}},{"./_array_like_to_array.mjs":"dhuPI","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}],dhuPI:[function(t,e,r){t("@parcel/transformer-js/src/esmodule-helpers.js").defineInteropFlag(r),r.default=function(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r')})),i=h(a,'
模式
滚动
静止
颜色
').concat(n.join(""),'
发送
')),u=v(".art-danmuku-style",i),s=v(".art-danmuku-input",i),l=v(".art-danmuku-send",i),c=v(".art-danmuku-style-panel-inner",i),p=v(".art-danmuku-style-panel-modes",i),d=v(".art-danmuku-style-panel-colors",i),g=r.mount||h(o,'
');t.option.backdrop&&m(c,"art-backdrop-filter"),r.theme&&m(i,"art-danmuku-theme-".concat(r.theme));var k=null,w=r.mode,x=r.color;function D(t){t<=0?(k=null,l.innerText="发送",f(l,"art-disabled")):(l.innerText=t,k=setTimeout((function(){return D(t-1)}),1e3))}function _(){var n={mode:w,color:x,border:!0,text:s.value.trim()};null===k&&r.beforeEmit(n)&&(s.value="",e.emit(n),m(l,"art-disabled"),D(r.lockTime),t.emit("artplayerPluginDanmuku:emit",n))}function C(){a.clientWidth0&&void 0!==arguments[0]?arguments[0]:[];if(s=null,l=null,a.innerHTML="",t.duration&&!t.option.isLive){var d={w:a.offsetWidth,h:a.offsetHeight},m={xMin:0,xMax:d.w,yMin:0,yMax:128,scale:.25,opacity:.2,minHeight:Math.floor(.05*d.h),sampling:Math.floor(d.w/100),smoothing:.2,flattening:.2};"object"==typeof r&&Object.assign(m,r);var h=[];if(Array.isArray(f)&&f.length)h=(0,o.default)(f);else for(var y=function(t){var r=e.danmus.filter((function(e){var r=e.time;return r>t*g&&r<=(t+m.sampling)*g})).length;h.push([t,r])},g=t.duration/d.w,v=0;v<=d.w;v+=m.sampling)y(v);if(0!==h.length){var b=h[h.length-1],k=b[0],w=b[1];k!==d.w&&h.push([d.w,w]);for(var x=h.map((function(t){return t[1]})),D=(c=Math).min.apply(c,(0,o.default)(x)),j=(p=Math).max.apply(p,(0,o.default)(x)),_=(D+j)/2,C=0;C_?1+m.scale:1-m.scale)+m.minHeight}var A=function(t,e,r,n){var a=u(e||t,r||t),o=i(Math.cos(a.angle)*m.flattening,0,1,1,0),s=a.angle*o+(n?Math.PI:0),l=a.length*m.smoothing;return[t[0]+Math.cos(s)*l,t[1]+Math.sin(s)*l]},$=function(t,e,r){var n=A(r[e-1],r[e-2],t),a=A(t,r[e-1],r[e+1],!0),o=e===r.length-1?" z":"";return"C ".concat(n[0],",").concat(n[1]," ").concat(a[0],",").concat(a[1]," ").concat(t[0],",").concat(t[1]).concat(o)},O=h.map((function(t){return[i(t[0],m.xMin,m.xMax,0,d.w),i(t[1],m.yMin,m.yMax,d.h,0)]})),P=O.reduce((function(t,e,r,n){return 0===r?"M ".concat(n[n.length-1][0],",").concat(d.h," L ").concat(e[0],",").concat(d.h," L ").concat(e[0],",").concat(e[1]):"".concat(t," ").concat($(e,r,n))}),"");a.innerHTML=''),s=n("#heatmap-start",a),l=n("#heatmap-stop",a),s.setAttribute("offset","".concat(100*t.played,"%")),l.setAttribute("offset","".concat(100*t.played,"%"))}}}t.on("video:timeupdate",(function(){s&&l&&(s.setAttribute("offset","".concat(100*t.played,"%")),l.setAttribute("offset","".concat(100*t.played,"%")))})),t.on("setBar",(function(t,e){s&&l&&"played"===t&&(s.setAttribute("offset","".concat(100*e,"%")),l.setAttribute("offset","".concat(100*e,"%")))})),t.on("ready",(function(){return c()})),t.on("resize",(function(){return c()})),t.on("artplayerPluginDanmuku:loaded",(function(){return c()})),t.on("artplayerPluginDanmuku:points",(function(t){return c(t)}))}})}},{"@swc/helpers/src/_to_consumable_array.mjs":"inwWM","@parcel/transformer-js/src/esmodule-helpers.js":"iWrD0"}]},["40mNk"],"40mNk","parcelRequire4dc0");