feat: update changelog with Parcel to Vite refactor

feat: add danmuku plugin documentation and i18n setup guide

- Created a new documentation file for the danmuku plugin with code examples.
- Added a comprehensive guide for language settings (i18n) including default languages, importing languages, adding new languages, and modifying existing languages.
- Included code snippets for initializing the Artplayer with different language settings.

Add internationalization support for multiple languages in Artplayer

- Introduced Arabic (ar), Czech (cs), Spanish (es), Persian (fa), French (fr), Indonesian (id), Polish (pl), Russian (ru), Turkish (tr), Vietnamese (vi), and Traditional Chinese (zh-tw) translations.
- Created corresponding JavaScript and ES module files for each language containing translated strings for player controls and settings.
- Added a new documentation file for language settings in the project.

feat: add initial implementation of start option page with interactive code execution buttons

feat: add danmuku plugin documentation and i18n setup guide

- Created a new documentation file for the danmuku plugin, providing code examples for usage.
- Added a comprehensive guide for language settings, including default languages, importing languages, adding new languages, and modifying existing languages.
- Included code snippets for initializing the Artplayer with different language settings and importing language files.

refactor: update danmuku worker implementation and remove unused i18n files

- Changed the way the Danmuku class creates a Web Worker by using a worker loader instead of creating a blob.
- Removed Arabic, Czech, Spanish, Persian, French, Indonesian, Polish, Russian, Turkish, Vietnamese, and Traditional Chinese i18n files as they are no longer needed.
- Updated the Vite build configuration to disable banners for inline workers and added a plugin to remove worker banners from generated code.

feat: add danmuku plugin and i18n setup documentation

- Created a new documentation file for the danmuku plugin, providing code examples for usage.
- Added a new documentation file for language settings (i18n), detailing how to set default languages, import languages, and add new languages.
- Included code snippets for initializing the Artplayer with different language settings and examples for modifying existing languages.

feat: add danmuku plugin and i18n setup documentation

- Created a new documentation file for the danmuku plugin with code examples.
- Added a new documentation file for language settings (i18n) including import instructions and examples for setting default and custom languages.
- Updated the i18n documentation to include details on adding and modifying languages.

feat: add danmuku plugin and i18n setup documentation

- Created a new JavaScript file for the danmuku plugin documentation with multiple code execution buttons.
- Added a new JavaScript file for i18n (internationalization) setup documentation, including instructions for language settings, importing languages, and modifying language options.
- Included examples for setting default languages and adding new languages in the i18n documentation.

Refactor code structure for improved readability and maintainability
This commit is contained in:
Harvey Zhao committed 2026-03-07 15:21:34 +08:00
1 parent ddb78cf850
commit 699bf09577
397 files changed
+99776 -8638

No files matched your search

@@ -1,8 +1,7 @@
/*!
* artplayer-plugin-vtt-thumbnail.js v1.0.3
* artplayer-plugin-vtt-thumbnail.js v1.0.4
* Github: https://github.com/zhw2590582/ArtPlayer
* (c) 2017-2026 Harvey Zhao
* Released under the MIT License.
*/
!function(e,t,r,n,o){var u="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{},i="function"==typeof u[n]&&u[n],l=i.i||{},c=i.cache||{},a="u">typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(t,r){if(!c[t]){if(!e[t]){if(o[t])return o[t];var l="function"==typeof u[n]&&u[n];if(!r&&l)return l(t,!0);if(i)return i(t,!0);if(a&&"string"==typeof t)return a(t);var f=Error("Cannot find module '"+t+"'");throw f.code="MODULE_NOT_FOUND",f}d.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},d.cache={};var p=c[t]=new s.Module(t);e[t][0].call(p.exports,d,p,p.exports,u)}return c[t].exports;function d(e){var t=d.resolve(e);if(!1===t)return{};if(Array.isArray(t)){var r={__esModule:!0};return t.forEach(function(e){var t=e[0],n=e[1],o=e[2]||e[0],u=s(n);"*"===t?Object.keys(u).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(r,e)||Object.defineProperty(r,e,{enumerable:!0,get:function(){return u[e]}})}):"*"===o?Object.defineProperty(r,t,{enumerable:!0,value:u}):Object.defineProperty(r,t,{enumerable:!0,get:function(){return"default"===o?u.__esModule?u.default:u:u[o]}})}),r}return s(t)}}s.isParcelRequire=!0,s.Module=function(e){this.id=e,this.bundle=s,this.require=a,this.exports={}},s.modules=e,s.cache=c,s.parent=i,s.distDir=void 0,s.publicUrl=void 0,s.devServer=void 0,s.i=l,s.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(s,"root",{get:function(){return u[n]}}),u[n]=s;for(var f=0;f<t.length;f++)s(t[f]);if(r){var p=s(r);"object"==typeof exports&&"u">typeof module?module.exports=p:"function"==typeof define&&define.amd&&define(function(){return p})}}({gJaKg:[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return a});var u=e("@swc/helpers/cjs/_async_to_generator.cjs"),i=e("@swc/helpers/cjs/_ts_generator.cjs"),l=e("./getVttArray"),c=o.interopDefault(l);function a(e){return function(t){return(0,u._)(function(){var r,n,o,l,a,s,f;return(0,i._)(this,function(p){switch(p.label){case 0:return n=(r=t.constructor.utils).setStyle,o=r.isMobile,l=r.addClass,a=t.template.$progress,s=null,[4,(0,c.default)(e.vtt)];case 1:return f=p.sent(),t.controls.add({name:"vtt-thumbnail",position:"top",index:20,style:e.style||{},mounted:function(e){l(e,"art-control-thumbnails"),t.on("setBar",function(r,l,c){return(0,u._)(function(){var u,p,d,h;return(0,i._)(this,function(i){if(u="played"===r&&c&&o,"hover"===r||u){if(p=a.clientWidth*l,d=l*t.duration,n(e,"display","flex"),!(h=f.find(function(e){return d>=e.start&&d<=e.end})))return[2,n(e,"display","none")];if(p>0&&p<a.clientWidth)n(e,"backgroundImage","url(".concat(h.url,")")),n(e,"height","".concat(h.h,"px")),n(e,"width","".concat(h.w,"px")),n(e,"backgroundPosition","-".concat(h.x,"px -").concat(h.y,"px")),p<=h.w/2?n(e,"left",0):p>a.clientWidth-h.w/2?n(e,"left","".concat(a.clientWidth-h.w,"px")):n(e,"left","".concat(p-h.w/2,"px"));else o||n(e,"display","none");u&&(clearTimeout(s),s=setTimeout(function(){n(e,"display","none")},500))}return[2]})})()})}}),[2,{name:"artplayerPluginVttThumbnail"}]}})})()}}"u">typeof window&&(window.artplayerPluginVttThumbnail=a)},{"@swc/helpers/cjs/_async_to_generator.cjs":"cZn0e","@swc/helpers/cjs/_ts_generator.cjs":"eltGh","./getVttArray":"j5vq0","@parcel/transformer-js/src/esmodule-helpers.js":"qpMMf"}],cZn0e:[function(e,t,r,n){"use strict";function o(e,t,r,n,o,u,i){try{var l=e[u](i),c=l.value}catch(e){r(e);return}l.done?t(c):Promise.resolve(c).then(n,o)}r._=function(e){return function(){var t=this,r=arguments;return new Promise(function(n,u){var i=e.apply(t,r);function l(e){o(i,n,u,l,c,"next",e)}function c(e){o(i,n,u,l,c,"throw",e)}l(void 0)})}}},{}],eltGh:[function(e,t,r,n){"use strict";r._=function(e,t){var r,n,o,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),l=Object.defineProperty;return l(i,"next",{value:c(0)}),l(i,"throw",{value:c(1)}),l(i,"return",{value:c(2)}),"function"==typeof Symbol&&l(i,Symbol.iterator,{value:function(){return this}}),i;function c(l){return function(c){var a=[l,c];if(r)throw TypeError("Generator is already executing.");for(;i&&(i=0,a[0]&&(u=0)),u;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return u.label++,{value:a[1],done:!1};case 5:u.label++,n=a[1],a=[0];continue;case 7:a=u.ops.pop(),u.trys.pop();continue;default:if(!(o=(o=u.trys).length>0&&o[o.length-1])&&(6===a[0]||2===a[0])){u=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){u.label=a[1];break}if(6===a[0]&&u.label<o[1]){u.label=o[1],o=a;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(a);break}o[2]&&u.ops.pop(),u.trys.pop();continue}a=t.call(e,u)}catch(e){a=[6,e],n=0}finally{r=o=0}if(5&a[0])thLine truncated
!function(t,n){"object"===typeof exports&&"undefined"!==typeof module?module.exports=n():"function"==typeof define&&define.amd?(t.ArtplayerPluginVttThumbnail=n(),define(function(){return t.ArtplayerPluginVttThumbnail})):(t="undefined"!==typeof globalThis?globalThis:t||self).ArtplayerPluginVttThumbnail=n()}(this,function(){"use strict";var t=(t,n,e)=>new Promise((l,i)=>{var o=t=>{try{s(e.next(t))}catch(n){i(n)}},r=t=>{try{s(e.throw(t))}catch(n){i(n)}},s=t=>t.done?l(t.value):Promise.resolve(t.value).then(o,r);s((e=e.apply(t,n)).next())});function n(t){const n=t.split("."),e=n[0].split(":")||[],l=(i=n[1]||"0",o=3,r="0",i.length>o?String(i):((o-=i.length)>r.length&&(r+=r.repeat(o/r.length)),String(i)+r.slice(0,o)));var i,o,r;const s=Number(l)/1e3;return 3600*Number(e[e.length-3]||0)+60*Number(e[e.length-2]||0)+Number(e[e.length-1]||0)+s}function e(e){return l=>t(null,null,function*(){const{constructor:{utils:{setStyle:i,isMobile:o,addClass:r}},template:{$progress:s}}=l;let u=null;const d=yield function(e=""){return t(this,null,function*(){const t=(yield(yield fetch(e)).text()).split(/[\n\r]/g).filter(t=>t.trim()),l=[];for(let i=1;i<t.length;i+=2){const o=t[i],r=t[i+1];if(!r.trim())continue;const s=/((?:\d{2}:)?(?:\d{2}:)?\d{2}(?:.\d{3})?) ?--> ?((?:\d{2}:)?(?:\d{2}:)?\d{2}(?:.\d{3})?)/,u=o.match(s),d=/(.*)#(\w{4})=(.*)/,a=r.match(d),c=Math.floor(n(u[1])),p=Math.floor(n(u[2]));let f=a[1];if(!/^\/|(?:https?|ftp|file):\/\//i.test(f)){const t=e.split("/");t.pop(),t.push(f),f=t.join("/")}const h={start:c,end:p,url:f},m=a[2].split(""),y=a[3].split(",");for(let t=0;t<m.length;t++)h[m[t]]=y[t];l.push(h)}return l})}(e.vtt);return l.controls.add({name:"vtt-thumbnail",position:"top",index:20,style:e.style||{},mounted(n){r(n,"art-control-thumbnails"),l.on("setBar",(e,r,a)=>t(null,null,function*(){const t="played"===e&&a&&o;if("hover"===e||t){const e=s.clientWidth*r,a=r*l.duration;i(n,"display","flex");const c=d.find(t=>a>=t.start&&a<=t.end);if(!c)return i(n,"display","none");e>0&&e<s.clientWidth?function(t,n,e){i(t,"backgroundImage",`url(${n.url})`),i(t,"height",`${n.h}px`),i(t,"width",`${n.w}px`),i(t,"backgroundPosition",`-${n.x}px -${n.y}px`),e<=n.w/2?i(t,"left",0):e>s.clientWidth-n.w/2?i(t,"left",s.clientWidth-n.w+"px"):i(t,"left",e-n.w/2+"px")}(n,c,e):o||i(n,"display","none"),t&&(clearTimeout(u),u=setTimeout(()=>{i(n,"display","none")},500))}}))}}),{name:"artplayerPluginVttThumbnail"}})}return"undefined"!==typeof window&&(window.artplayerPluginVttThumbnail=e),e});