diff --git a/docs/document/404.html b/docs/document/404.html index 04b63947a..0a58e8508 100644 --- a/docs/document/404.html +++ b/docs/document/404.html @@ -5,18 +5,18 @@ 404 | Artplayer.js - - - - + + + + -
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- - +
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
+ \ No newline at end of file diff --git a/docs/document/advanced/built-in.html b/docs/document/advanced/built-in.html index 4dd700f83..e8bd9b647 100644 --- a/docs/document/advanced/built-in.html +++ b/docs/document/advanced/built-in.html @@ -5,38 +5,39 @@ 高级属性 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

高级属性

这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用

option

播放器的选项

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

高级属性 ​

这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用

option ​

播放器的选项

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 console.info(art.option);
-

提示

假如直接修改这个 option 对象,播放器不会马上做出响应

whitelist

管理移动设备的白名单功能,只有一个属性 state 返回是否启用播放器功能

▶ Run Code
js
var art = new Artplayer({
+

提示

假如直接修改这个 option 对象,播放器不会马上做出响应

whitelist ​

管理移动设备的白名单功能,只有一个属性 state 返回是否启用播放器功能

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     whitelist: [(ua) => /iPhone/gi.test(ua)],
 });
 
 console.info(art.whitelist.state);
-

提示

在上面这个例子中,当使用 iPhone 访问播放器时,art.whitelist.state 会返回 false,即使用原生的播放器,而不是 Artplayer 播放器

template

管理播放器所有的 DOM 元素

▶ Run Code
js
var art = new Artplayer({
+

提示

在上面这个例子中,当使用 iPhone 访问播放器时,art.whitelist.state 会返回 false,即使用原生的播放器,而不是 Artplayer 播放器

template ​

管理播放器所有的 DOM 元素

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 console.info(art.template);
 console.info(art.template.$video);
-

提示

为了方便区别 DOM 元素和普通对象,播放器里的所有 DOM 元素都是以 $ 开头命名的

这是所有 DOM 元素的定义:artplayer/types/template.d.ts

events

管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener, 当使用以下方法来处理事件,播放器销毁时也会自动销毁该事件

  • proxy 方法用于代理 DOM 事件
  • hover 方法用于代理自定义的 hover 事件
  • loadImg 方法用于监听图片的 load 加载事件
▶ Run Code
js
var container = document.querySelector('.artplayer-app');
+

提示

为了方便区别 DOM 元素和普通对象,播放器里的所有 DOM 元素都是以 $ 开头命名的

这是所有 DOM 元素的定义:artplayer/types/template.d.ts

events ​

管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener, 当使用以下方法来处理事件,播放器销毁时也会自动销毁该事件

  • proxy 方法用于代理 DOM 事件
  • hover 方法用于代理自定义的 hover 事件
  • loadImg 方法用于监听图片的 load 加载事件
▶ Run Code
js
var container = document.querySelector('.artplayer-app');
 
 var art = new Artplayer({
     container: container,
@@ -56,7 +57,7 @@
 art.events.loadImg('/assets/sample/poster.jpg').then(img => {
     console.info('loadImg', img);
 });
-

提示

假如你需要一些 DOM 事件只存在于播放器的生命周期上时,强烈建议使用这些函数,以避免造成内存泄漏

storage

管理播放器的本地存储

  • name 属性用于设置缓存的 key
  • set 方法用于设置缓存
  • get 方法用于获取缓存
  • del 方法用于删除缓存
  • clear 方法用于清空缓存
▶ Run Code
js
var art = new Artplayer({
+

提示

假如你需要一些 DOM 事件只存在于播放器的生命周期上时,强烈建议使用这些函数,以避免造成内存泄漏

storage ​

管理播放器的本地存储

  • name 属性用于设置缓存的 key
  • set 方法用于设置缓存
  • get 方法用于获取缓存
  • del 方法用于删除缓存
  • clear 方法用于清空缓存
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -66,20 +67,20 @@
 console.info(test);
 art.storage.del('test');
 art.storage.clear();
-

提示

默认所有播放器实例都是共享同一个 localStorage 的,而且默认的 key 是 artplayer_settings

如果你想不同的播放器使用不同的 localStorage,你可以修改 art.storage.name 即可

▶ Run Code
js
var art = new Artplayer({
+

提示

默认所有播放器实例都是共享同一个 localStorage 的,而且默认的 key 是 artplayer_settings

如果你想不同的播放器使用不同的 localStorage,你可以修改 art.storage.name 即可

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 art.storage.name = 'your-storage-key';
 art.storage.set('test', { foo: 'bar' });
-

icons

管理播放器所有的 svg 图标

▶ Run Code
js
var art = new Artplayer({
+

icons ​

管理播放器所有的 svg 图标

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 console.info(art.icons.loading);
-

这是所有图标的定义:

artplayer/types/icons.d.ts

i18n

管理播放器的 i18n

  • get 方法用于获取 i18n 的值
  • update 方法用于更新 i18n 对象
▶ Run Code
js
var art = new Artplayer({
+

这是所有图标的定义:

artplayer/types/icons.d.ts

i18n ​

管理播放器的 i18n

  • get 方法用于获取 i18n 的值
  • update 方法用于更新 i18n 对象
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -91,7 +92,7 @@
         Play: 'Your Play'
     }
 });
-

WARNING

使用 art.i18n.update 只能更新实例化之后的 i18n,假如想在实例化之前更新 i18n,请使用基础选项的 i18n 来更新

notice

管理播放器的提示语,只有一个 show 属性用于显示提示语

▶ Run Code
js
var art = new Artplayer({
+

WARNING

使用 art.i18n.update 只能更新实例化之后的 i18n,假如想在实例化之前更新 i18n,请使用基础选项的 i18n 来更新

notice ​

管理播放器的提示语,只有一个 show 属性用于显示提示语

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -99,7 +100,7 @@
 art.on('ready', () => {
     art.notice.show = 'Video Ready To Play';
 })
-

WARNING

如果想马上隐藏 notice 的显示:art.notice.show = '';

layers

管理播放器的层

  • add 方法用于动态添加层
  • show 属性用于设置是否显示全部层
  • toggle 属性用于切换是否显示全部层
▶ Run Code
js
var art = new Artplayer({
+

WARNING

如果想马上隐藏 notice 的显示:art.notice.show = '';

layers ​

管理播放器的层

  • add 方法用于动态添加层
  • show 属性用于设置是否显示全部层
  • toggle 属性用于切换是否显示全部层
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -113,7 +114,7 @@
 		art.layers.show = false;
 	}, 1000);
 });
-

组件配置 请参考以下地址:

/start/component.html

controls

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
▶ Run Code
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

controls ​

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -128,7 +129,7 @@
 		art.controls.show = false;
 	}, 1000);
 });
-

组件配置 请参考以下地址:

/start/component.html

contextmenu

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
▶ Run Code
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

contextmenu ​

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -143,7 +144,7 @@
 		art.contextmenu.show = false;
 	}, 1000);
 });
-

组件配置 请参考以下地址:

/start/component.html

subtitle

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
▶ Run Code
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

subtitle ​

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -154,7 +155,7 @@
         color: 'red',
     });
 });
-

loading

管理播放器的加载层

  • show 属性用于设置是否显示加载层
  • toggle 属性用于切换是否显示加载层
▶ Run Code
js
var art = new Artplayer({
+

loading ​

管理播放器的加载层

  • show 属性用于设置是否显示加载层
  • toggle 属性用于切换是否显示加载层
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -165,7 +166,7 @@
 		art.loading.show = false;
 	}, 1000);
 });
-

hotkey

管理播放器的快捷键功能

  • add 方法用于添加快捷键
  • remove 方法用于删除快捷键
▶ Run Code
js
var art = new Artplayer({
+

hotkey ​

管理播放器的快捷键功能

  • add 方法用于添加快捷键
  • remove 方法用于删除快捷键
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -180,7 +181,7 @@
 		art.hotkey.remove(32, hotkeyEvent);
 	}, 5000);
 });
-

提示

只在播放器获得焦点后(如点击了播放器后),这些快捷键才会生效

mask

管理播放器的遮罩层

  • show 属性用于设置是否显示遮罩层
  • toggle 属性用于切换是否显示遮罩层
▶ Run Code
js
var art = new Artplayer({
+

提示

只在播放器获得焦点后(如点击了播放器后),这些快捷键才会生效

mask ​

管理播放器的遮罩层

  • show 属性用于设置是否显示遮罩层
  • toggle 属性用于切换是否显示遮罩层
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -191,7 +192,7 @@
 		art.mask.show = true;
 	}, 1000);
 });
-

setting

管理播放器的设置面板

  • add 方法用于动态添加设置项
  • show 属性用于设置是否显示全部设置项
  • toggle 属性用于切换是否显示全部设置项
  • update 方法动态更新设置项
▶ Run Code
js
var art = new Artplayer({
+

setting ​

管理播放器的设置面板

  • add 方法用于动态添加设置项
  • show 属性用于设置是否显示全部设置项
  • toggle 属性用于切换是否显示全部设置项
  • update 方法动态更新设置项
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -207,7 +208,7 @@
 		art.setting.show = false;
 	}, 1000);
 });
-

设置面板 请参考以下地址

/start/setting.html

plugins

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

▶ Run Code
js
var art = new Artplayer({
+

设置面板 请参考以下地址

/start/setting.html

plugins ​

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -226,9 +227,9 @@
 art.on('ready', () => {
     art.plugins.add(myPlugin);
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/advanced/class.html b/docs/document/advanced/class.html index 6d414ee6e..c5b3bd85f 100644 --- a/docs/document/advanced/class.html +++ b/docs/document/advanced/class.html @@ -5,18 +5,19 @@ 静态属性 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

静态属性

这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用

提示

有些属性是全大写的,说明这些属性是不稳定的,可能会在将来被更改

instances

返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性

▶ Run Code
js
console.info([...Artplayer.instances]);
+    
Skip to content
On this page

静态属性 ​

这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用

提示

有些属性是全大写的,说明这些属性是不稳定的,可能会在将来被更改

instances ​

返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性

▶ Run Code
js
console.info([...Artplayer.instances]);
 
 var art = new Artplayer({
     container: '.artplayer-app',
@@ -24,20 +25,20 @@
 });
 
 console.info([...Artplayer.instances]);
-

version

返回播放器的版本信息

▶ Run Code
js
console.info(Artplayer.version);
-

env

返回播放器的环境变量

▶ Run Code
js
console.info(Artplayer.env);
-

build

返回播放器的打包时间

▶ Run Code
js
console.info(Artplayer.build);
-

config

返回视频的默认配置

▶ Run Code
js
console.info(Artplayer.config);
-

utils

返回播放器的工具函数集合

▶ Run Code
js
console.info(Artplayer.utils);
-

全部工具函数请参考以下地址:

artplayer/types/utils.d.ts

scheme

返回播放器选项的校验方案

▶ Run Code
js
console.info(Artplayer.scheme);
-

Emitter

返回事件分发器的构造函数

▶ Run Code
js
console.info(Artplayer.Emitter);
-

validator

返回选项的校验函数

▶ Run Code
js
console.info(Artplayer.validator);
-

kindOf

返回类型检测的函数工具

▶ Run Code
js
console.info(Artplayer.kindOf);
-

html

返回播放器所需的 html 字符串

▶ Run Code
js
console.info(Artplayer.html);
-

option

返回播放器的默认选项

▶ Run Code
js
console.info(Artplayer.option);
-

DEBUG

CONTEXTMENU

NOTICE_TIME

SETTING_WIDTH

SETTING_ITEM_WIDTH

SETTING_ITEM_HEIGHT

INDICATOR_SIZE

INDICATOR_SIZE_ICON

INDICATOR_SIZE_MOBILE

INDICATOR_SIZE_MOBILE_ICON

VOLUME_PANEL_WIDTH

VOLUME_HANDLE_WIDTH

RESIZE_TIME

SCROLL_TIME

SCROLL_GAP

AUTO_PLAYBACK_MAX

AUTO_PLAYBACK_MIN

AUTO_PLAYBACK_TIMEOUT

RECONNECT_TIME_MAX

RECONNECT_SLEEP_TIME

CONTROL_HIDE_TIME

DB_CLICE_TIME

MOBILE_AUTO_PLAYBACKRATE

MOBILE_AUTO_PLAYBACKRATE_TIME

MOBILE_AUTO_ORIENTATION_TIME

INFO_LOOP_TIME

FAST_FORWARD_VALUE

FAST_FORWARD_TIME

TOUCH_MOVE_RATIO

VOLUME_STEP

SEEK_STEP

PROGRESS_HEIGHT

PLAYBACK_RATE

ASPECT_RATIO

FLIP

FULLSCREEN_WEB_IN_BODY

- - +

version ​

返回播放器的版本信息

▶ Run Code
js
console.info(Artplayer.version);
+

env ​

返回播放器的环境变量

▶ Run Code
js
console.info(Artplayer.env);
+

build ​

返回播放器的打包时间

▶ Run Code
js
console.info(Artplayer.build);
+

config ​

返回视频的默认配置

▶ Run Code
js
console.info(Artplayer.config);
+

utils ​

返回播放器的工具函数集合

▶ Run Code
js
console.info(Artplayer.utils);
+

全部工具函数请参考以下地址:

artplayer/types/utils.d.ts

scheme ​

返回播放器选项的校验方案

▶ Run Code
js
console.info(Artplayer.scheme);
+

Emitter ​

返回事件分发器的构造函数

▶ Run Code
js
console.info(Artplayer.Emitter);
+

validator ​

返回选项的校验函数

▶ Run Code
js
console.info(Artplayer.validator);
+

kindOf ​

返回类型检测的函数工具

▶ Run Code
js
console.info(Artplayer.kindOf);
+

html ​

返回播放器所需的 html 字符串

▶ Run Code
js
console.info(Artplayer.html);
+

option ​

返回播放器的默认选项

▶ Run Code
js
console.info(Artplayer.option);
+

DEBUG ​

CONTEXTMENU ​

NOTICE_TIME ​

SETTING_WIDTH ​

SETTING_ITEM_WIDTH ​

SETTING_ITEM_HEIGHT ​

INDICATOR_SIZE ​

INDICATOR_SIZE_ICON ​

INDICATOR_SIZE_MOBILE ​

INDICATOR_SIZE_MOBILE_ICON ​

VOLUME_PANEL_WIDTH ​

VOLUME_HANDLE_WIDTH ​

RESIZE_TIME ​

SCROLL_TIME ​

SCROLL_GAP ​

AUTO_PLAYBACK_MAX ​

AUTO_PLAYBACK_MIN ​

AUTO_PLAYBACK_TIMEOUT ​

RECONNECT_TIME_MAX ​

RECONNECT_SLEEP_TIME ​

CONTROL_HIDE_TIME ​

DB_CLICE_TIME ​

MOBILE_AUTO_PLAYBACKRATE ​

MOBILE_AUTO_PLAYBACKRATE_TIME ​

MOBILE_AUTO_ORIENTATION_TIME ​

INFO_LOOP_TIME ​

FAST_FORWARD_VALUE ​

FAST_FORWARD_TIME ​

TOUCH_MOVE_RATIO ​

VOLUME_STEP ​

SEEK_STEP ​

PROGRESS_HEIGHT ​

PLAYBACK_RATE ​

ASPECT_RATIO ​

FLIP ​

FULLSCREEN_WEB_IN_BODY ​

+ \ No newline at end of file diff --git a/docs/document/advanced/event.html b/docs/document/advanced/event.html index 8e66cd5f1..5b7daa114 100644 --- a/docs/document/advanced/event.html +++ b/docs/document/advanced/event.html @@ -5,18 +5,19 @@ 实例事件 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

实例事件

播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件

监听事件:

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

实例事件 ​

播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件

监听事件:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -24,7 +25,7 @@
 art.on('video:canplay', () => {
     console.info('video:canplay');
 });
-

只监听一次事件:

▶ Run Code
js
var art = new Artplayer({
+

只监听一次事件:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -32,13 +33,13 @@
 art.once('video:canplay', () => {
     console.info('video:canplay');
 });
-

手动触发事件:

▶ Run Code
js
var art = new Artplayer({
+

手动触发事件:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 art.emit('focus');
-

移除事件:

▶ Run Code
js
var art = new Artplayer({
+

移除事件:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -49,7 +50,7 @@
 }
 
 art.on('ready', onReady);
-

全部事件请参考以下地址:

artplayer/types/events.d.ts

ready

当播放器首次可以播放器时触发

▶ Run Code
js
var art = new Artplayer({
+

全部事件请参考以下地址:

artplayer/types/events.d.ts

ready ​

当播放器首次可以播放器时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -57,7 +58,7 @@
 art.on('ready', () => {
     console.info('ready');
 });
-

restart

当播放器切换地址后并可以播放时触发

▶ Run Code
js
var art = new Artplayer({
+

restart ​

当播放器切换地址后并可以播放时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -69,7 +70,7 @@
 art.on('restart', () => {
     console.info('restart');
 });
-

pause

当播放器暂停时触发

▶ Run Code
js
var art = new Artplayer({
+

pause ​

当播放器暂停时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -77,7 +78,7 @@
 art.on('pause', () => {
     console.info('pause');
 });
-

play

当播放器播放时触发

▶ Run Code
js
var art = new Artplayer({
+

play ​

当播放器播放时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -85,7 +86,7 @@
 art.on('play', () => {
     console.info('play');
 });
-

hotkey

当播放器热键被按下时触发

▶ Run Code
js
var art = new Artplayer({
+

hotkey ​

当播放器热键被按下时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -93,7 +94,7 @@
 art.on('hotkey', (event) => {
     console.info('hotkey', event);
 });
-

destroy

当播放器销毁时触发

▶ Run Code
js
var art = new Artplayer({
+

destroy ​

当播放器销毁时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -105,7 +106,7 @@
 art.on('destroy', () => {
     console.info('destroy');
 });
-

url

当视频地址变化时触发

▶ Run Code
js
var art = new Artplayer({
+

url ​

当视频地址变化时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -117,7 +118,7 @@
 art.on('url', (url) => {
     console.info('url', url);
 });
-

focus

当播放器获得焦点时触发

▶ Run Code
js
var art = new Artplayer({
+

focus ​

当播放器获得焦点时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -125,7 +126,7 @@
 art.on('focus', () => {
     console.info('focus');
 });
-

blur

当播放器失去焦点时触发

▶ Run Code
js
var art = new Artplayer({
+

blur ​

当播放器失去焦点时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -133,7 +134,7 @@
 art.on('blur', () => {
     console.info('blur');
 });
-

dblclick

当播放器被双击时触发

▶ Run Code
js
var art = new Artplayer({
+

dblclick ​

当播放器被双击时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -141,7 +142,7 @@
 art.on('dblclick', () => {
     console.info('dblclick');
 });
-

click

当播放器被单击时触发

▶ Run Code
js
var art = new Artplayer({
+

click ​

当播放器被单击时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -149,7 +150,7 @@
 art.on('click', () => {
     console.info('click');
 });
-

error

当播放器加载视频发生错误时触发

▶ Run Code
js
var art = new Artplayer({
+

error ​

当播放器加载视频发生错误时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/404.mp4',
 });
@@ -157,7 +158,7 @@
 art.on('error', (error, reconnectTime) => {
     console.info(error, reconnectTime);
 });
-

hover

当播放器被鼠标移出或者移入时触发

▶ Run Code
js
var art = new Artplayer({
+

hover ​

当播放器被鼠标移出或者移入时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -165,7 +166,7 @@
 art.on('hover', (state) => {
     console.info('hover', state);
 });
-

mousemove

当播放器被鼠标经过时触发

▶ Run Code
js
var art = new Artplayer({
+

mousemove ​

当播放器被鼠标经过时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -173,7 +174,7 @@
 art.on('mousemove', (event) => {
     console.info('mousemove', event);
 });
-

resize

当播放器尺寸变化时触发

▶ Run Code
js
var art = new Artplayer({
+

resize ​

当播放器尺寸变化时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -181,7 +182,7 @@
 art.on('resize', () => {
     console.info('resize');
 });
-

view

当播放器出现在视口时触发

▶ Run Code
js
var art = new Artplayer({
+

view ​

当播放器出现在视口时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -189,7 +190,7 @@
 art.on('view', (state) => {
     console.info('view', state);
 });
-

aspectRatio

当播放器长宽比变化时触发

▶ Run Code
js
var art = new Artplayer({
+

aspectRatio ​

当播放器长宽比变化时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     aspectRatio: true,
@@ -199,7 +200,7 @@
 art.on('aspectRatio', (aspectRatio) => {
     console.info('aspectRatio', aspectRatio);
 });
-

autoHeight

当播放器自动设置高度时触发

▶ Run Code
js
var art = new Artplayer({
+

autoHeight ​

当播放器自动设置高度时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -211,7 +212,7 @@
 art.on('autoHeight', (height) => {
     console.info('autoHeight', height);
 });
-

autoSize

当播放器自动设置尺寸时触发

▶ Run Code
js
var art = new Artplayer({
+

autoSize ​

当播放器自动设置尺寸时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
@@ -220,7 +221,7 @@
 art.on('autoSize', () => {
     console.info('autoSize');
 });
-

flip

当播放器发生翻转时触发

▶ Run Code
js
var art = new Artplayer({
+

flip ​

当播放器发生翻转时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     flip: true,
@@ -230,7 +231,7 @@
 art.on('flip', (flip) => {
     console.info('flip', flip);
 });
-

fullscreen

当播放器发生窗口全屏时触发

▶ Run Code
js
var art = new Artplayer({
+

fullscreen ​

当播放器发生窗口全屏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -239,7 +240,7 @@
 art.on('fullscreen', (state) => {
     console.info('fullscreen', state);
 });
-

fullscreenWeb

当播放器发生网页全屏时触发

▶ Run Code
js
var art = new Artplayer({
+

fullscreenWeb ​

当播放器发生网页全屏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreenWeb: true,
@@ -248,7 +249,7 @@
 art.on('fullscreenWeb', (state) => {
     console.info('fullscreenWeb', state);
 });
-

mini

当播放器进入迷你模式时触发

▶ Run Code
js
var art = new Artplayer({
+

mini ​

当播放器进入迷你模式时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -260,7 +261,7 @@
 art.on('mini', (state) => {
     console.info('mini', state);
 });
-

pip

当播放器进入画中画时触发

▶ Run Code
js
var art = new Artplayer({
+

pip ​

当播放器进入画中画时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     pip: true,
@@ -269,7 +270,7 @@
 art.on('pip', (state) => {
     console.info('pip', state);
 });
-

screenshot

当播放器被截图时触发

▶ Run Code
js
var art = new Artplayer({
+

screenshot ​

当播放器被截图时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     screenshot: true,
@@ -278,7 +279,7 @@
 art.on('screenshot', (dataUri) => {
     console.info('screenshot', dataUri);
 });
-

seek

当播放器发生时间跳转时触发

▶ Run Code
js
var art = new Artplayer({
+

seek ​

当播放器发生时间跳转时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -286,7 +287,7 @@
 art.on('seek', (currentTime) => {
     console.info('seek', currentTime);
 });
-

subtitleOffset

当播放器发生字幕偏移时触发

▶ Run Code
js
var art = new Artplayer({
+

subtitleOffset ​

当播放器发生字幕偏移时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitleOffset: true,
@@ -299,7 +300,7 @@
 art.on('subtitleOffset', (offset) => {
     console.info('subtitleOffset', offset);
 });
-

subtitleUpdate

当字幕更新时触发

▶ Run Code
js
var art = new Artplayer({
+

subtitleUpdate ​

当字幕更新时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -310,7 +311,7 @@
 art.on('subtitleUpdate', (text) => {
     console.info('subtitleUpdate', text);
 });
-

subtitleLoad

当字幕加载时触发

▶ Run Code
js
var art = new Artplayer({
+

subtitleLoad ​

当字幕加载时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -321,7 +322,7 @@
 art.on('subtitleLoad', (url) => {
     console.info('subtitleLoad', url);
 });
-

subtitleSwitch

当字幕切换时触发

▶ Run Code
js
var art = new Artplayer({
+

subtitleSwitch ​

当字幕切换时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -336,7 +337,7 @@
 art.on('subtitleSwitch', (url) => {
     console.info('subtitleSwitch', url);
 });
-

info

当信息面板显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

info ​

当信息面板显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -344,7 +345,7 @@
 art.on('info', (state) => {
     console.log(state);
 });
-

layer

当自定义层显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

layer ​

当自定义层显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -352,7 +353,7 @@
 art.on('layer', (state) => {
     console.log(state);
 });
-

loading

当加载器显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

loading ​

当加载器显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -360,7 +361,7 @@
 art.on('loading', (state) => {
     console.log(state);
 });
-

mask

当遮罩层显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

mask ​

当遮罩层显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -368,7 +369,7 @@
 art.on('mask', (state) => {
     console.log(state);
 });
-

subtitle

当字幕层显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

subtitle ​

当字幕层显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -376,7 +377,7 @@
 art.on('subtitle', (state) => {
     console.log(state);
 });
-

contextmenu

当右键菜单显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

contextmenu ​

当右键菜单显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -384,7 +385,7 @@
 art.on('contextmenu', (state) => {
     console.log(state);
 });
-

control

当控制器显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

control ​

当控制器显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -392,18 +393,18 @@
 art.on('control', (state) => {
     console.log(state);
 });
-

setting

当设置面板显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

setting ​

当设置面板显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
 });
-
+
 art.on('setting', (state) => {
     console.log(state);
 });
-

video:canplay

浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容

video:canplaythrough

浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束

video:complete

OfflineAudioContext 渲染完成

video:durationchange

duration 属性的值改变时触发

video:emptied

媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载它

video:ended

视频停止播放,因为 media 已经到达结束点

video:error

获取媒体数据时出错,或者资源类型不是受支持的媒体格式

video:loadeddata

media 中的首帧已经完成加载

video:loadedmetadata

已加载元数据

video:pause

播放已暂停

video:play

播放已开始

video:playing

由于缺乏数据而暂停或延迟后,播放准备开始

video:progress

在浏览器加载资源时周期性触发

video:ratechange

播放速率发生变化

video:seeked

跳帧(seek)操作完成

video:seeking

跳帧(seek)操作开始

video:stalled

用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现

video:suspend

媒体数据加载已暂停

video:timeupdate

currentTime 属性指定的时间发生变化

video:volumechange

音量发生变化

video:waiting

由于暂时缺少数据,播放已停止

- - +

video:canplay ​

浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容

video:canplaythrough ​

浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束

video:complete ​

OfflineAudioContext 渲染完成

video:durationchange ​

duration 属性的值改变时触发

video:emptied ​

媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载它

video:ended ​

视频停止播放,因为 media 已经到达结束点

video:error ​

获取媒体数据时出错,或者资源类型不是受支持的媒体格式

video:loadeddata ​

media 中的首帧已经完成加载

video:loadedmetadata ​

已加载元数据

video:pause ​

播放已暂停

video:play ​

播放已开始

video:playing ​

由于缺乏数据而暂停或延迟后,播放准备开始

video:progress ​

在浏览器加载资源时周期性触发

video:ratechange ​

播放速率发生变化

video:seeked ​

跳帧(seek)操作完成

video:seeking ​

跳帧(seek)操作开始

video:stalled ​

用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现

video:suspend ​

媒体数据加载已暂停

video:timeupdate ​

currentTime 属性指定的时间发生变化

video:volumechange ​

音量发生变化

video:waiting ​

由于暂时缺少数据,播放已停止

+ \ No newline at end of file diff --git a/docs/document/advanced/plugin.html b/docs/document/advanced/plugin.html index 551534812..f520f954e 100644 --- a/docs/document/advanced/plugin.html +++ b/docs/document/advanced/plugin.html @@ -5,18 +5,19 @@ 编写插件 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

编写插件

但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事

可以在实例化的时候加载插件的函数

▶ Run Code
js
function myPlugin(art) {
+    
Skip to content
On this page

编写插件 ​

但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事

可以在实例化的时候加载插件的函数

▶ Run Code
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -36,7 +37,7 @@
 art.on('ready', () => {
     console.info(art.plugins.myPlugin);
 });
-

可以在实例化之后再加载插件的函数

▶ Run Code
js
function myPlugin(art) {
+

可以在实例化之后再加载插件的函数

▶ Run Code
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -57,7 +58,7 @@
 art.on('ready', () => {
     console.info(art.plugins.myPlugin);
 });
-

例如我想写一个在视频暂停后,显示一个图片广告的插件

▶ Run Code
js
function adsPlugin(option) {
+

例如我想写一个在视频暂停后,显示一个图片广告的插件

▶ Run Code
js
function adsPlugin(option) {
     return (art) => {
         art.layers.add({
             name: 'ads',
@@ -117,9 +118,9 @@
         })
     ],
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/advanced/property.html b/docs/document/advanced/property.html index 20c9a4f49..8817eec5d 100644 --- a/docs/document/advanced/property.html +++ b/docs/document/advanced/property.html @@ -5,18 +5,19 @@ 实例属性 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

实例属性

这里的 实例属性 是指挂载在 实例 的 一级属性,比较常用

play

  • Type: Function

播放视频

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

实例属性 ​

这里的 实例属性 是指挂载在 实例 的 一级属性,比较常用

play ​

  • Type: Function

播放视频

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -25,7 +26,7 @@
 art.on('ready', () => {
     art.play();
 });
-

pause

  • Type: Function

暂停视频

▶ Run Code
js
var art = new Artplayer({
+

pause ​

  • Type: Function

暂停视频

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -38,7 +39,7 @@
         art.pause();
     }, 3000);
 });
-

toggle

  • Type: Function

切换视频的播放和暂停

▶ Run Code
js
var art = new Artplayer({
+

toggle ​

  • Type: Function

切换视频的播放和暂停

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -51,7 +52,7 @@
         art.toggle();
     }, 3000);
 });
-

destroy

  • Type: Function
  • Parameter: Boolean

销毁播放器,接受一个参数表示是否销毁后同时移除播放器的 html,默认为 true

▶ Run Code
js
var art = new Artplayer({
+

destroy ​

  • Type: Function
  • Parameter: Boolean

销毁播放器,接受一个参数表示是否销毁后同时移除播放器的 html,默认为 true

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -59,7 +60,7 @@
 art.on('ready', () => {
     art.destroy();
 });
-

seek

  • Type: Setter
  • Parameter: Number

视频时间跳转,单位秒

▶ Run Code
js
var art = new Artplayer({
+

seek ​

  • Type: Setter
  • Parameter: Number

视频时间跳转,单位秒

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -67,7 +68,7 @@
 art.on('ready', () => {
     art.seek = 5;
 });
-

forward

  • Type: Setter
  • Parameter: Number

视频时间快进,单位秒

▶ Run Code
js
var art = new Artplayer({
+

forward ​

  • Type: Setter
  • Parameter: Number

视频时间快进,单位秒

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -75,7 +76,7 @@
 art.on('ready', () => {
     art.forward = 5;
 });
-

backward

  • Type: Setter
  • Parameter: Number

视频时间快退,单位秒

▶ Run Code
js
var art = new Artplayer({
+

backward ​

  • Type: Setter
  • Parameter: Number

视频时间快退,单位秒

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -87,7 +88,7 @@
         art.backward = 2;
     }, 3000);
 });
-

volume

  • Type: Setter/Getter
  • Parameter: Number

设置和获取视频音量,范围在:[0, 1]

▶ Run Code
js
var art = new Artplayer({
+

volume ​

  • Type: Setter/Getter
  • Parameter: Number

设置和获取视频音量,范围在:[0, 1]

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -97,7 +98,7 @@
     art.volume = 0.5;
     console.info(art.volume);
 });
-

url

  • Type: Setter/Getter
  • Parameter: String

设置和获取视频地址

▶ Run Code
js
var art = new Artplayer({
+

url ​

  • Type: Setter/Getter
  • Parameter: String

设置和获取视频地址

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -105,7 +106,7 @@
 art.on('ready', () => {
     art.url = '/assets/sample/video.mp4?t=0';
 });
-

switchUrl

  • Type: Function
  • Parameter: String

设置视频地址,设置时和 url 类似,但会执行一些优化操作

函数支持两个参数,第一个为新的视频地址,第二个为可选新的视频名字

▶ Run Code
js
var art = new Artplayer({
+

switchUrl ​

  • Type: Function
  • Parameter: String

设置视频地址,设置时和 url 类似,但会执行一些优化操作

函数支持两个参数,第一个为新的视频地址,第二个为可选新的视频名字

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -116,7 +117,7 @@
         art.switchUrl('/assets/sample/video.mp4?t=0', 'New Video Name');
     }, 3000);
 });
-

switchQuality

  • Type: Function
  • Parameter: String

设置视频画质地址,和 switchUrl 类似,但会带上之前的播放进度

函数支持两个参数,第一个为新的视频地址,第二个为可选新的视频名字

▶ Run Code
js
var art = new Artplayer({
+

switchQuality ​

  • Type: Function
  • Parameter: String

设置视频画质地址,和 switchUrl 类似,但会带上之前的播放进度

函数支持两个参数,第一个为新的视频地址,第二个为可选新的视频名字

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -127,7 +128,7 @@
         art.switchQuality('/assets/sample/video.mp4?t=0', '新视频地址');
     }, 3000);
 });
-

muted

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取视频是否静音

▶ Run Code
js
var art = new Artplayer({
+

muted ​

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取视频是否静音

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -137,7 +138,7 @@
     art.muted = true;
     console.info(art.muted);
 });
-

currentTime

  • Type: Setter/Getter
  • Parameter: Number

设置和获取视频当前时间,设置时间时和 seek 类似,但它不会触发额外的事件

▶ Run Code
js
var art = new Artplayer({
+

currentTime ​

  • Type: Setter/Getter
  • Parameter: Number

设置和获取视频当前时间,设置时间时和 seek 类似,但它不会触发额外的事件

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -147,7 +148,7 @@
     art.currentTime = 5;
     console.info(art.currentTime);
 });
-

duration

  • Type: Getter

获取视频时长

▶ Run Code
js
var art = new Artplayer({
+

duration ​

  • Type: Getter

获取视频时长

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -155,7 +156,7 @@
 art.on('ready', () => {
     console.info(art.duration);
 });
-

提示

有的视频是没有时长的,例如直播中的视频或者没被解码完成的视频,这个时候获取的时长会是 0

screenshot

  • Type: Function

下载当前视频帧的截图

▶ Run Code
js
var art = new Artplayer({
+

提示

有的视频是没有时长的,例如直播中的视频或者没被解码完成的视频,这个时候获取的时长会是 0

screenshot ​

  • Type: Function

下载当前视频帧的截图

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -163,7 +164,7 @@
 art.on('ready', () => {
     art.screenshot();
 });
-

getDataURL

  • Type: Function

获取当前视频帧的截图的base64地址,返回的是一个 Promise

▶ Run Code
js
var art = new Artplayer({
+

getDataURL ​

  • Type: Function

获取当前视频帧的截图的base64地址,返回的是一个 Promise

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -172,7 +173,7 @@
     const url = await art.getDataURL();
 	console.info(url)
 });
-

getBlobUrl

  • Type: Function

获取当前视频帧的截图的blob地址,返回的是一个 Promise

▶ Run Code
js
var art = new Artplayer({
+

getBlobUrl ​

  • Type: Function

获取当前视频帧的截图的blob地址,返回的是一个 Promise

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -181,7 +182,7 @@
     const url = await art.getBlobUrl();
     console.info(url);
 });
-

fullscreen

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器窗口全屏

▶ Run Code
js
var art = new Artplayer({
+

fullscreen ​

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器窗口全屏

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -194,7 +195,7 @@
         },
     ],
 });
-

提示

由于浏览器安全机制,触发窗口全屏前,页面必须先存在交互(例如用户点击过页面)

fullscreenWeb

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器网页全屏

▶ Run Code
js
var art = new Artplayer({
+

提示

由于浏览器安全机制,触发窗口全屏前,页面必须先存在交互(例如用户点击过页面)

fullscreenWeb ​

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器网页全屏

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreenWeb: true,
@@ -207,7 +208,7 @@
         art.fullscreenWeb = false;
     }, 3000);
 });
-

pip

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器画中画模式

▶ Run Code
js
var art = new Artplayer({
+

pip ​

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器画中画模式

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -220,7 +221,7 @@
         },
     ],
 });
-

提示

由于浏览器安全机制,触发画中画前,页面必须先存在交互(例如用户点击过页面)

poster

  • Type: Setter/Getter
  • Parameter: String

设置和获取视频海报,只有在视频播放前才能看到海报效果

▶ Run Code
js
var art = new Artplayer({
+

提示

由于浏览器安全机制,触发画中画前,页面必须先存在交互(例如用户点击过页面)

poster ​

  • Type: Setter/Getter
  • Parameter: String

设置和获取视频海报,只有在视频播放前才能看到海报效果

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     poster: '/assets/sample/poster.jpg',
@@ -231,7 +232,7 @@
     art.poster = '/assets/sample/poster.jpg?t=0';
     console.info(art.poster);
 });
-

mini

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器迷你模式

▶ Run Code
js
var art = new Artplayer({
+

mini ​

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器迷你模式

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -239,7 +240,7 @@
 art.on('ready', () => {
     art.mini = true;
 });
-

playing

  • Type: Getter
  • Parameter: Boolean

获取视频是否正在播放中

▶ Run Code
js
var art = new Artplayer({
+

playing ​

  • Type: Getter
  • Parameter: Boolean

获取视频是否正在播放中

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -248,7 +249,7 @@
 art.on('ready', () => {
     console.info(art.playing);
 });
-

autoSize

  • Type: Setter/Getter
  • Parameter: Boolean

设置视频是否自适应尺寸,设置为 true 之后它会只执行一次

▶ Run Code
js
var art = new Artplayer({
+

autoSize ​

  • Type: Setter/Getter
  • Parameter: Boolean

设置视频是否自适应尺寸,设置为 true 之后它会只执行一次

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -258,7 +259,7 @@
     art.autoSize = true;
     console.info(art.autoSize);
 });
-

rect

  • Type: Getter

获取播放器的尺寸和坐标信息

▶ Run Code
js
var art = new Artplayer({
+

rect ​

  • Type: Getter

获取播放器的尺寸和坐标信息

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -266,7 +267,7 @@
 art.on('ready', () => {
     console.info(JSON.stringify(art.rect));
 });
-

提示

尺寸和坐标信息是通过 getBoundingClientRect 获取的

flip

  • Type: Setter/Getter
  • Parameter: String

设置和获取播放器翻转,支持normal, horizontal, vertical

▶ Run Code
js
var art = new Artplayer({
+

提示

尺寸和坐标信息是通过 getBoundingClientRect 获取的

flip ​

  • Type: Setter/Getter
  • Parameter: String

设置和获取播放器翻转,支持normal, horizontal, vertical

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -276,7 +277,7 @@
     art.flip = 'horizontal';
     console.info(art.flip);
 });
-

playbackRate

  • Type: Setter/Getter
  • Parameter: Number

设置和获取播放器播放速度

▶ Run Code
js
var art = new Artplayer({
+

playbackRate ​

  • Type: Setter/Getter
  • Parameter: Number

设置和获取播放器播放速度

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -286,7 +287,7 @@
     art.playbackRate = 2;
     console.info(art.playbackRate);
 });
-

aspectRatio

  • Type: Setter/Getter
  • Parameter: String

设置和获取播放器长宽比

▶ Run Code
js
var art = new Artplayer({
+

aspectRatio ​

  • Type: Setter/Getter
  • Parameter: String

设置和获取播放器长宽比

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -296,7 +297,7 @@
     art.aspectRatio = '16:9';
     console.info(art.aspectRatio);
 });
-

loop

  • Type: Setter/Getter
  • Parameter: Array

设置和获取区间循序播放,单位秒

▶ Run Code
js
var art = new Artplayer({
+

loop ​

  • Type: Setter/Getter
  • Parameter: Array

设置和获取区间循序播放,单位秒

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -306,7 +307,7 @@
     art.loop = [5, 10];
     console.info(art.loop);
 });
-

提示

删除区间循环播放,只需要设置 loop 为 [] 即可

art.loop 与 art.option.loop 是两个不同的东西,请勿弄乱

autoHeight

  • Type: Setter/Getter
  • Parameter: Boolean

当容器只有宽度,该属性可以自动计算出并设置视频的高度,设置为 true 之后它会只执行一次

▶ Run Code
js
var art = new Artplayer({
+

提示

删除区间循环播放,只需要设置 loop 为 [] 即可

art.loop 与 art.option.loop 是两个不同的东西,请勿弄乱

autoHeight ​

  • Type: Setter/Getter
  • Parameter: Boolean

当容器只有宽度,该属性可以自动计算出并设置视频的高度,设置为 true 之后它会只执行一次

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -318,7 +319,7 @@
 art.on('resize', () => {
     art.autoHeight = true;
 });
-

提示

当你的容器只有宽度,但不知道具体高度时,这个属性很有用,它能自动计算出视频的高度,但你需要确定设置这个属性的时机

attr

  • Type: Function
  • Parameter: String

动态获取和设置 video 元素的属性

▶ Run Code
js
var art = new Artplayer({
+

提示

当你的容器只有宽度,但不知道具体高度时,这个属性很有用,它能自动计算出视频的高度,但你需要确定设置这个属性的时机

attr ​

  • Type: Function
  • Parameter: String

动态获取和设置 video 元素的属性

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -328,7 +329,7 @@
     art.attr('playsInline', true);
     console.info(art.attr('playsInline'));
 });
-

title

  • Type: Setter/Getter
  • Parameter: String

动态获取和设置播放器标题

▶ Run Code
js
var art = new Artplayer({
+

title ​

  • Type: Setter/Getter
  • Parameter: String

动态获取和设置播放器标题

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -338,7 +339,7 @@
     art.title = 'New Title';
     console.info(art.title);
 });
-

type

  • Type: Setter/Getter
  • Parameter: String

动态获取和设置视频类型

▶ Run Code
js
var art = new Artplayer({
+

type ​

  • Type: Setter/Getter
  • Parameter: String

动态获取和设置视频类型

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -348,7 +349,7 @@
     art.type = 'm3u8';
     console.info(art.type);
 });
-

theme

  • Type: Setter/Getter
  • Parameter: String

动态获取和设置播放器主题颜色

▶ Run Code
js
var art = new Artplayer({
+

theme ​

  • Type: Setter/Getter
  • Parameter: String

动态获取和设置播放器主题颜色

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -358,7 +359,7 @@
     art.theme = '#000';
     console.info(art.theme);
 });
-

airplay

  • Type: Function

开启隔空播放

▶ Run Code
js
var art = new Artplayer({
+

airplay ​

  • Type: Function

开启隔空播放

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -371,7 +372,7 @@
         },
     ],
 });
-

loaded

  • Type: Getter

视频缓存的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用

▶ Run Code
js
var art = new Artplayer({
+

loaded ​

  • Type: Getter

视频缓存的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -379,7 +380,7 @@
 art.on('video:timeupdate', () => {
     console.info(art.loaded);
 });
-

played

  • Type: Getter

视频播放的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用

▶ Run Code
js
var art = new Artplayer({
+

played ​

  • Type: Getter

视频播放的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -387,31 +388,31 @@
 art.on('video:timeupdate', () => {
     console.info(art.played);
 });
-

proxy

  • Type: Function

DOM 事件的代理函数,实质上代理了 addEventListener 和 removeEventListener, 当使用 proxy 来处理事件,播放器销毁时也会自动销毁该事件

▶ Run Code
js
var container = document.querySelector('.artplayer-app');
+

proxy ​

  • Type: Function

DOM 事件的代理函数,实质上代理了 addEventListener 和 removeEventListener, 当使用 proxy 来处理事件,播放器销毁时也会自动销毁该事件

▶ Run Code
js
var container = document.querySelector('.artplayer-app');
 
 var art = new Artplayer({
 	container: container,
 	url: '/assets/sample/video.mp4',
 });
-
+
 art.proxy(container, 'click', event => {
 	console.info(event);
 });
-

提示

假如你需要一些 DOM 事件只存在于播放器的生命周期上时,强烈建议使用该函数,以避免造成内存泄漏

query

  • Type: Function

DOM 的查询函数,类似 document.querySelector,但被查询的对象局限于当前播放器内,可以避免同类名的错误

▶ Run Code
js
var art = new Artplayer({
+

提示

假如你需要一些 DOM 事件只存在于播放器的生命周期上时,强烈建议使用该函数,以避免造成内存泄漏

query ​

  • Type: Function

DOM 的查询函数,类似 document.querySelector,但被查询的对象局限于当前播放器内,可以避免同类名的错误

▶ Run Code
js
var art = new Artplayer({
 	container: '.artplayer-app',
 	url: '/assets/sample/video.mp4',
 });
 
 console.info(art.query('.art-video'));
-

video

  • Type: Element

快捷返回播放器的 video 元素

▶ Run Code
js
var art = new Artplayer({
+

video ​

  • Type: Element

快捷返回播放器的 video 元素

▶ Run Code
js
var art = new Artplayer({
 	container: '.artplayer-app',
 	url: '/assets/sample/video.mp4',
 });
 
 console.info(art.video);
-
- - +
+ \ No newline at end of file diff --git a/docs/document/assets/advanced_built-in.md.fc36bd19.js b/docs/document/assets/advanced_built-in.md.1868f5da.js similarity index 81% rename from docs/document/assets/advanced_built-in.md.fc36bd19.js rename to docs/document/assets/advanced_built-in.md.1868f5da.js index 6ca1c7572..83076bdcc 100644 --- a/docs/document/assets/advanced_built-in.md.fc36bd19.js +++ b/docs/document/assets/advanced_built-in.md.1868f5da.js @@ -1,24 +1,24 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.parse('{"title":"高级属性","description":"","frontmatter":{},"headers":[{"level":2,"title":"option","slug":"option","link":"#option","children":[]},{"level":2,"title":"whitelist","slug":"whitelist","link":"#whitelist","children":[]},{"level":2,"title":"template","slug":"template","link":"#template","children":[]},{"level":2,"title":"events","slug":"events","link":"#events","children":[]},{"level":2,"title":"storage","slug":"storage","link":"#storage","children":[]},{"level":2,"title":"icons","slug":"icons","link":"#icons","children":[]},{"level":2,"title":"i18n","slug":"i18n","link":"#i18n","children":[]},{"level":2,"title":"notice","slug":"notice","link":"#notice","children":[]},{"level":2,"title":"layers","slug":"layers","link":"#layers","children":[]},{"level":2,"title":"controls","slug":"controls","link":"#controls","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"subtitle","slug":"subtitle","link":"#subtitle","children":[]},{"level":2,"title":"loading","slug":"loading","link":"#loading","children":[]},{"level":2,"title":"hotkey","slug":"hotkey","link":"#hotkey","children":[]},{"level":2,"title":"mask","slug":"mask","link":"#mask","children":[]},{"level":2,"title":"setting","slug":"setting","link":"#setting","children":[]},{"level":2,"title":"plugins","slug":"plugins","link":"#plugins","children":[]}],"relativePath":"advanced/built-in.md","lastUpdated":1673441101000}'),o={name:"advanced/built-in.md"},e=s('

高级属性

这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用

option

播放器的选项

',4),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
+import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const X=JSON.parse('{"title":"高级属性","description":"","frontmatter":{},"headers":[],"relativePath":"advanced/built-in.md","lastUpdated":1673441101000}'),o={name:"advanced/built-in.md"},e=s('

高级属性 ​

这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用

option ​

播放器的选项

',4),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 console.info(art.option);
-

提示

假如直接修改这个 option 对象,播放器不会马上做出响应

whitelist

管理移动设备的白名单功能,只有一个属性 state 返回是否启用播放器功能

`,4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
+

提示

假如直接修改这个 option 对象,播放器不会马上做出响应

whitelist ​

管理移动设备的白名单功能,只有一个属性 state 返回是否启用播放器功能

`,4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     whitelist: [(ua) => /iPhone/gi.test(ua)],
 });
 
 console.info(art.whitelist.state);
-

提示

在上面这个例子中,当使用 iPhone 访问播放器时,art.whitelist.state 会返回 false,即使用原生的播放器,而不是 Artplayer 播放器

template

管理播放器所有的 DOM 元素

`,4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
+

提示

在上面这个例子中,当使用 iPhone 访问播放器时,art.whitelist.state 会返回 false,即使用原生的播放器,而不是 Artplayer 播放器

template ​

管理播放器所有的 DOM 元素

`,4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 console.info(art.template);
 console.info(art.template.$video);
-

提示

为了方便区别 DOM 元素和普通对象,播放器里的所有 DOM 元素都是以 $ 开头命名的

这是所有 DOM 元素的定义:artplayer/types/template.d.ts

events

管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener, 当使用以下方法来处理事件,播放器销毁时也会自动销毁该事件

  • proxy 方法用于代理 DOM 事件
  • hover 方法用于代理自定义的 hover 事件
  • loadImg 方法用于监听图片的 load 加载事件
`,5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var container = document.querySelector('.artplayer-app');
+

提示

为了方便区别 DOM 元素和普通对象,播放器里的所有 DOM 元素都是以 $ 开头命名的

这是所有 DOM 元素的定义:artplayer/types/template.d.ts

events ​

管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener, 当使用以下方法来处理事件,播放器销毁时也会自动销毁该事件

  • proxy 方法用于代理 DOM 事件
  • hover 方法用于代理自定义的 hover 事件
  • loadImg 方法用于监听图片的 load 加载事件
`,5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var container = document.querySelector('.artplayer-app');
 
 var art = new Artplayer({
     container: container,
@@ -38,7 +38,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 art.events.loadImg('/assets/sample/poster.jpg').then(img => {
     console.info('loadImg', img);
 });
-

提示

假如你需要一些 DOM 事件只存在于播放器的生命周期上时,强烈建议使用这些函数,以避免造成内存泄漏

storage

管理播放器的本地存储

  • name 属性用于设置缓存的 key
  • set 方法用于设置缓存
  • get 方法用于获取缓存
  • del 方法用于删除缓存
  • clear 方法用于清空缓存
`,5),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer({
+

提示

假如你需要一些 DOM 事件只存在于播放器的生命周期上时,强烈建议使用这些函数,以避免造成内存泄漏

storage ​

管理播放器的本地存储

  • name 属性用于设置缓存的 key
  • set 方法用于设置缓存
  • get 方法用于获取缓存
  • del 方法用于删除缓存
  • clear 方法用于清空缓存
`,5),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -48,20 +48,20 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 console.info(test);
 art.storage.del('test');
 art.storage.clear();
-

提示

默认所有播放器实例都是共享同一个 localStorage 的,而且默认的 key 是 artplayer_settings

如果你想不同的播放器使用不同的 localStorage,你可以修改 art.storage.name 即可

`,2),b=n("div",{className:"run-code"},"▶ Run Code",-1),u=s(`
js
var art = new Artplayer({
+

提示

默认所有播放器实例都是共享同一个 localStorage 的,而且默认的 key 是 artplayer_settings

如果你想不同的播放器使用不同的 localStorage,你可以修改 art.storage.name 即可

`,2),b=n("div",{className:"run-code"},"▶ Run Code",-1),u=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 art.storage.name = 'your-storage-key';
 art.storage.set('test', { foo: 'bar' });
-

icons

管理播放器所有的 svg 图标

`,3),m=n("div",{className:"run-code"},"▶ Run Code",-1),_=s(`
js
var art = new Artplayer({
+

icons ​

管理播放器所有的 svg 图标

`,3),m=n("div",{className:"run-code"},"▶ Run Code",-1),_=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 console.info(art.icons.loading);
-

这是所有图标的定义:

artplayer/types/icons.d.ts

i18n

管理播放器的 i18n

  • get 方法用于获取 i18n 的值
  • update 方法用于更新 i18n 对象
`,5),h=n("div",{className:"run-code"},"▶ Run Code",-1),g=s(`
js
var art = new Artplayer({
+

这是所有图标的定义:

artplayer/types/icons.d.ts

i18n ​

管理播放器的 i18n

  • get 方法用于获取 i18n 的值
  • update 方法用于更新 i18n 对象
`,5),h=n("div",{className:"run-code"},"▶ Run Code",-1),v=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -73,7 +73,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
         Play: 'Your Play'
     }
 });
-

WARNING

使用 art.i18n.update 只能更新实例化之后的 i18n,假如想在实例化之前更新 i18n,请使用基础选项的 i18n 来更新

notice

管理播放器的提示语,只有一个 show 属性用于显示提示语

`,4),v=n("div",{className:"run-code"},"▶ Run Code",-1),E=s(`
js
var art = new Artplayer({
+

WARNING

使用 art.i18n.update 只能更新实例化之后的 i18n,假如想在实例化之前更新 i18n,请使用基础选项的 i18n 来更新

notice ​

管理播放器的提示语,只有一个 show 属性用于显示提示语

`,4),g=n("div",{className:"run-code"},"▶ Run Code",-1),E=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -81,7 +81,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 art.on('ready', () => {
     art.notice.show = 'Video Ready To Play';
 })
-

WARNING

如果想马上隐藏 notice 的显示:art.notice.show = '';

layers

管理播放器的层

  • add 方法用于动态添加层
  • show 属性用于设置是否显示全部层
  • toggle 属性用于切换是否显示全部层
`,5),T=n("div",{className:"run-code"},"▶ Run Code",-1),k=s(`
js
var art = new Artplayer({
+

WARNING

如果想马上隐藏 notice 的显示:art.notice.show = '';

layers ​

管理播放器的层

  • add 方法用于动态添加层
  • show 属性用于设置是否显示全部层
  • toggle 属性用于切换是否显示全部层
`,5),T=n("div",{className:"run-code"},"▶ Run Code",-1),k=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -95,7 +95,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.layers.show = false;
 	}, 1000);
 });
-

组件配置 请参考以下地址:

/start/component.html

controls

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
`,5),w=n("div",{className:"run-code"},"▶ Run Code",-1),f=s(`
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

controls ​

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
`,5),w=n("div",{className:"run-code"},"▶ Run Code",-1),f=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -110,7 +110,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.controls.show = false;
 	}, 1000);
 });
-

组件配置 请参考以下地址:

/start/component.html

contextmenu

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
`,5),S=n("div",{className:"run-code"},"▶ Run Code",-1),x=s(`
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

contextmenu ​

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
`,5),P=n("div",{className:"run-code"},"▶ Run Code",-1),S=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -125,7 +125,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.contextmenu.show = false;
 	}, 1000);
 });
-

组件配置 请参考以下地址:

/start/component.html

subtitle

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
`,5),P=n("div",{className:"run-code"},"▶ Run Code",-1),I=s(`
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

subtitle ​

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
`,5),I=n("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -136,7 +136,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
         color: 'red',
     });
 });
-

loading

管理播放器的加载层

  • show 属性用于设置是否显示加载层
  • toggle 属性用于切换是否显示加载层
`,4),N=n("div",{className:"run-code"},"▶ Run Code",-1),R=s(`
js
var art = new Artplayer({
+

loading ​

管理播放器的加载层

  • show 属性用于设置是否显示加载层
  • toggle 属性用于切换是否显示加载层
`,4),R=n("div",{className:"run-code"},"▶ Run Code",-1),V=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -147,7 +147,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.loading.show = false;
 	}, 1000);
 });
-

hotkey

管理播放器的快捷键功能

  • add 方法用于添加快捷键
  • remove 方法用于删除快捷键
`,4),V=n("div",{className:"run-code"},"▶ Run Code",-1),j=s(`
js
var art = new Artplayer({
+

hotkey ​

管理播放器的快捷键功能

  • add 方法用于添加快捷键
  • remove 方法用于删除快捷键
`,4),j=n("div",{className:"run-code"},"▶ Run Code",-1),q=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -162,7 +162,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.hotkey.remove(32, hotkeyEvent);
 	}, 5000);
 });
-

提示

只在播放器获得焦点后(如点击了播放器后),这些快捷键才会生效

mask

管理播放器的遮罩层

  • show 属性用于设置是否显示遮罩层
  • toggle 属性用于切换是否显示遮罩层
`,5),O=n("div",{className:"run-code"},"▶ Run Code",-1),M=s(`
js
var art = new Artplayer({
+

提示

只在播放器获得焦点后(如点击了播放器后),这些快捷键才会生效

mask ​

管理播放器的遮罩层

  • show 属性用于设置是否显示遮罩层
  • toggle 属性用于切换是否显示遮罩层
`,5),x=n("div",{className:"run-code"},"▶ Run Code",-1),O=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -173,7 +173,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.mask.show = true;
 	}, 1000);
 });
-

setting

管理播放器的设置面板

  • add 方法用于动态添加设置项
  • show 属性用于设置是否显示全部设置项
  • toggle 属性用于切换是否显示全部设置项
  • update 方法动态更新设置项
`,4),$=n("div",{className:"run-code"},"▶ Run Code",-1),z=s(`
js
var art = new Artplayer({
+

setting ​

管理播放器的设置面板

  • add 方法用于动态添加设置项
  • show 属性用于设置是否显示全部设置项
  • toggle 属性用于切换是否显示全部设置项
  • update 方法动态更新设置项
`,4),M=n("div",{className:"run-code"},"▶ Run Code",-1),$=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -189,7 +189,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.setting.show = false;
 	}, 1000);
 });
-

设置面板 请参考以下地址

/start/setting.html

plugins

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

`,4),B=n("div",{className:"run-code"},"▶ Run Code",-1),G=s(`
js
var art = new Artplayer({
+

设置面板 请参考以下地址

/start/setting.html

plugins ​

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

`,4),z=n("div",{className:"run-code"},"▶ Run Code",-1),B=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -208,4 +208,4 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 art.on('ready', () => {
     art.plugins.add(myPlugin);
 });
-
`,1),L=[e,c,r,t,D,F,y,i,A,C,d,b,u,m,_,h,g,v,E,T,k,w,f,S,x,P,I,N,R,V,j,O,M,$,z,B,G];function W(q,J,U,Y,H,K){return p(),l("div",null,L)}const Z=a(o,[["render",W]]);export{X as __pageData,Z as default}; +
`,1),G=[e,c,r,t,D,F,y,i,A,C,d,b,u,m,_,h,v,g,E,T,k,w,f,P,S,I,N,R,V,j,q,x,O,M,$,z,B];function L(U,W,J,Y,H,K){return p(),l("div",null,G)}const Z=a(o,[["render",L]]);export{X as __pageData,Z as default}; diff --git a/docs/document/assets/advanced_built-in.md.1868f5da.lean.js b/docs/document/assets/advanced_built-in.md.1868f5da.lean.js new file mode 100644 index 000000000..96d797855 --- /dev/null +++ b/docs/document/assets/advanced_built-in.md.1868f5da.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const X=JSON.parse('{"title":"高级属性","description":"","frontmatter":{},"headers":[],"relativePath":"advanced/built-in.md","lastUpdated":1673441101000}'),o={name:"advanced/built-in.md"},e=s("",4),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",5),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s("",2),b=n("div",{className:"run-code"},"▶ Run Code",-1),u=s("",3),m=n("div",{className:"run-code"},"▶ Run Code",-1),_=s("",5),h=n("div",{className:"run-code"},"▶ Run Code",-1),v=s("",4),g=n("div",{className:"run-code"},"▶ Run Code",-1),E=s("",5),T=n("div",{className:"run-code"},"▶ Run Code",-1),k=s("",5),w=n("div",{className:"run-code"},"▶ Run Code",-1),f=s("",5),P=n("div",{className:"run-code"},"▶ Run Code",-1),S=s("",5),I=n("div",{className:"run-code"},"▶ Run Code",-1),N=s("",4),R=n("div",{className:"run-code"},"▶ Run Code",-1),V=s("",4),j=n("div",{className:"run-code"},"▶ Run Code",-1),q=s("",5),x=n("div",{className:"run-code"},"▶ Run Code",-1),O=s("",4),M=n("div",{className:"run-code"},"▶ Run Code",-1),$=s("",4),z=n("div",{className:"run-code"},"▶ Run Code",-1),B=s("",1),G=[e,c,r,t,D,F,y,i,A,C,d,b,u,m,_,h,v,g,E,T,k,w,f,P,S,I,N,R,V,j,q,x,O,M,$,z,B];function L(U,W,J,Y,H,K){return p(),l("div",null,G)}const Z=a(o,[["render",L]]);export{X as __pageData,Z as default}; diff --git a/docs/document/assets/advanced_built-in.md.fc36bd19.lean.js b/docs/document/assets/advanced_built-in.md.fc36bd19.lean.js deleted file mode 100644 index 56d2c83ee..000000000 --- a/docs/document/assets/advanced_built-in.md.fc36bd19.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.parse('{"title":"高级属性","description":"","frontmatter":{},"headers":[{"level":2,"title":"option","slug":"option","link":"#option","children":[]},{"level":2,"title":"whitelist","slug":"whitelist","link":"#whitelist","children":[]},{"level":2,"title":"template","slug":"template","link":"#template","children":[]},{"level":2,"title":"events","slug":"events","link":"#events","children":[]},{"level":2,"title":"storage","slug":"storage","link":"#storage","children":[]},{"level":2,"title":"icons","slug":"icons","link":"#icons","children":[]},{"level":2,"title":"i18n","slug":"i18n","link":"#i18n","children":[]},{"level":2,"title":"notice","slug":"notice","link":"#notice","children":[]},{"level":2,"title":"layers","slug":"layers","link":"#layers","children":[]},{"level":2,"title":"controls","slug":"controls","link":"#controls","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"subtitle","slug":"subtitle","link":"#subtitle","children":[]},{"level":2,"title":"loading","slug":"loading","link":"#loading","children":[]},{"level":2,"title":"hotkey","slug":"hotkey","link":"#hotkey","children":[]},{"level":2,"title":"mask","slug":"mask","link":"#mask","children":[]},{"level":2,"title":"setting","slug":"setting","link":"#setting","children":[]},{"level":2,"title":"plugins","slug":"plugins","link":"#plugins","children":[]}],"relativePath":"advanced/built-in.md","lastUpdated":1673441101000}'),o={name:"advanced/built-in.md"},e=s("",4),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",5),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s("",2),b=n("div",{className:"run-code"},"▶ Run Code",-1),u=s("",3),m=n("div",{className:"run-code"},"▶ Run Code",-1),_=s("",5),h=n("div",{className:"run-code"},"▶ Run Code",-1),g=s("",4),v=n("div",{className:"run-code"},"▶ Run Code",-1),E=s("",5),T=n("div",{className:"run-code"},"▶ Run Code",-1),k=s("",5),w=n("div",{className:"run-code"},"▶ Run Code",-1),f=s("",5),S=n("div",{className:"run-code"},"▶ Run Code",-1),x=s("",5),P=n("div",{className:"run-code"},"▶ Run Code",-1),I=s("",4),N=n("div",{className:"run-code"},"▶ Run Code",-1),R=s("",4),V=n("div",{className:"run-code"},"▶ Run Code",-1),j=s("",5),O=n("div",{className:"run-code"},"▶ Run Code",-1),M=s("",4),$=n("div",{className:"run-code"},"▶ Run Code",-1),z=s("",4),B=n("div",{className:"run-code"},"▶ Run Code",-1),G=s("",1),L=[e,c,r,t,D,F,y,i,A,C,d,b,u,m,_,h,g,v,E,T,k,w,f,S,x,P,I,N,R,V,j,O,M,$,z,B,G];function W(q,J,U,Y,H,K){return p(),l("div",null,L)}const Z=a(o,[["render",W]]);export{X as __pageData,Z as default}; diff --git a/docs/document/assets/advanced_class.md.cba82bcd.js b/docs/document/assets/advanced_class.md.cba82bcd.js deleted file mode 100644 index 513261e38..000000000 --- a/docs/document/assets/advanced_class.md.cba82bcd.js +++ /dev/null @@ -1,20 +0,0 @@ -import{_ as s,c as n,o as l,a as e,b as a}from"./app.77a2ba76.js";const U=JSON.parse('{"title":"静态属性","description":"","frontmatter":{},"headers":[{"level":2,"title":"instances","slug":"instances","link":"#instances","children":[]},{"level":2,"title":"version","slug":"version","link":"#version","children":[]},{"level":2,"title":"env","slug":"env","link":"#env","children":[]},{"level":2,"title":"build","slug":"build","link":"#build","children":[]},{"level":2,"title":"config","slug":"config","link":"#config","children":[]},{"level":2,"title":"utils","slug":"utils","link":"#utils","children":[]},{"level":2,"title":"scheme","slug":"scheme","link":"#scheme","children":[]},{"level":2,"title":"Emitter","slug":"emitter","link":"#emitter","children":[]},{"level":2,"title":"validator","slug":"validator","link":"#validator","children":[]},{"level":2,"title":"kindOf","slug":"kindof","link":"#kindof","children":[]},{"level":2,"title":"html","slug":"html","link":"#html","children":[]},{"level":2,"title":"option","slug":"option","link":"#option","children":[]},{"level":2,"title":"DEBUG","slug":"debug","link":"#debug","children":[]},{"level":2,"title":"CONTEXTMENU","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"NOTICE_TIME","slug":"notice-time","link":"#notice-time","children":[]},{"level":2,"title":"SETTING_WIDTH","slug":"setting-width","link":"#setting-width","children":[]},{"level":2,"title":"SETTING_ITEM_WIDTH","slug":"setting-item-width","link":"#setting-item-width","children":[]},{"level":2,"title":"SETTING_ITEM_HEIGHT","slug":"setting-item-height","link":"#setting-item-height","children":[]},{"level":2,"title":"INDICATOR_SIZE","slug":"indicator-size","link":"#indicator-size","children":[]},{"level":2,"title":"INDICATOR_SIZE_ICON","slug":"indicator-size-icon","link":"#indicator-size-icon","children":[]},{"level":2,"title":"INDICATOR_SIZE_MOBILE","slug":"indicator-size-mobile","link":"#indicator-size-mobile","children":[]},{"level":2,"title":"INDICATOR_SIZE_MOBILE_ICON","slug":"indicator-size-mobile-icon","link":"#indicator-size-mobile-icon","children":[]},{"level":2,"title":"VOLUME_PANEL_WIDTH","slug":"volume-panel-width","link":"#volume-panel-width","children":[]},{"level":2,"title":"VOLUME_HANDLE_WIDTH","slug":"volume-handle-width","link":"#volume-handle-width","children":[]},{"level":2,"title":"RESIZE_TIME","slug":"resize-time","link":"#resize-time","children":[]},{"level":2,"title":"SCROLL_TIME","slug":"scroll-time","link":"#scroll-time","children":[]},{"level":2,"title":"SCROLL_GAP","slug":"scroll-gap","link":"#scroll-gap","children":[]},{"level":2,"title":"AUTO_PLAYBACK_MAX","slug":"auto-playback-max","link":"#auto-playback-max","children":[]},{"level":2,"title":"AUTO_PLAYBACK_MIN","slug":"auto-playback-min","link":"#auto-playback-min","children":[]},{"level":2,"title":"AUTO_PLAYBACK_TIMEOUT","slug":"auto-playback-timeout","link":"#auto-playback-timeout","children":[]},{"level":2,"title":"RECONNECT_TIME_MAX","slug":"reconnect-time-max","link":"#reconnect-time-max","children":[]},{"level":2,"title":"RECONNECT_SLEEP_TIME","slug":"reconnect-sleep-time","link":"#reconnect-sleep-time","children":[]},{"level":2,"title":"CONTROL_HIDE_TIME","slug":"control-hide-time","link":"#control-hide-time","children":[]},{"level":2,"title":"DB_CLICE_TIME","slug":"db-clice-time","link":"#db-clice-time","children":[]},{"level":2,"title":"MOBILE_AUTO_PLAYBACKRATE","slug":"mobile-auto-playbackrate","link":"#mobile-auto-playbackrate","children":[]},{"level":2,"title":"MOBILE_AUTO_PLAYBACKRATE_TIME","slug":"mobile-auto-playbackrate-time","link":"#mobile-auto-playbackrate-time","children":[]},{"level":2,"title":"MOBILE_AUTO_ORIENTATION_TIME","slug":"mobile-auto-orientation-time","link":"#mobile-auto-orientation-time","children":[]},{"level":2,"title":"INFO_LOOP_TIME","slug":"info-loop-time","link":"#info-loop-time","children":[]},{"level":2,"title":"FAST_FORWARD_VALUE","slug":"fast-forward-value","link":"#fast-forward-value","children":[]},{"level":2,"title":"FAST_FORWARD_TIME","slug":"fast-forward-time","link":"#fast-forward-time","children":[]},{"level":2,"title":"TOUCH_MOVE_RATIO","slug":"touch-move-ratio","link":"#touch-move-ratio","children":[]},{"level":2,"title":"VOLUME_STEP","slug":"volume-step","link":"#volume-step","children":[]},{"level":2,"title":"SEEK_STEP","slug":"seek-step","link":"#seek-step","children":[]},{"level":2,"title":"PROGRESS_HEIGHT","slug":"progress-height","link":"#progress-height","children":[]},{"level":2,"title":"PLAYBACK_RATE","slug":"playback-rate","link":"#playback-rate","children":[]},{"level":2,"title":"ASPECT_RATIO","slug":"aspect-ratio","link":"#aspect-ratio","children":[]},{"level":2,"title":"FLIP","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"FULLSCREEN_WEB_IN_BODY","slug":"fullscreen-web-in-body","link":"#fullscreen-web-in-body","children":[]}],"relativePath":"advanced/class.md","lastUpdated":1674271984000}'),i={name:"advanced/class.md"},o=e('

静态属性

这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用

提示

有些属性是全大写的,说明这些属性是不稳定的,可能会在将来被更改

instances

返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性

',5),t=a("div",{className:"run-code"},"▶ Run Code",-1),r=e(`
js
console.info([...Artplayer.instances]);
-
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-console.info([...Artplayer.instances]);
-

version

返回播放器的版本信息

`,3),c=a("div",{className:"run-code"},"▶ Run Code",-1),d=e(`
js
console.info(Artplayer.version);
-

env

返回播放器的环境变量

`,3),p=a("div",{className:"run-code"},"▶ Run Code",-1),h=e(`
js
console.info(Artplayer.env);
-

build

返回播放器的打包时间

`,3),_=a("div",{className:"run-code"},"▶ Run Code",-1),u=e(`
js
console.info(Artplayer.build);
-

config

返回视频的默认配置

`,3),A=a("div",{className:"run-code"},"▶ Run Code",-1),m=e(`
js
console.info(Artplayer.config);
-

utils

返回播放器的工具函数集合

`,3),b=a("div",{className:"run-code"},"▶ Run Code",-1),C=e(`
js
console.info(Artplayer.utils);
-

全部工具函数请参考以下地址:

artplayer/types/utils.d.ts

scheme

返回播放器选项的校验方案

`,4),D=a("div",{className:"run-code"},"▶ Run Code",-1),y=e(`
js
console.info(Artplayer.scheme);
-

Emitter

返回事件分发器的构造函数

`,3),T=a("div",{className:"run-code"},"▶ Run Code",-1),v=e(`
js
console.info(Artplayer.Emitter);
-

validator

返回选项的校验函数

`,3),F=a("div",{className:"run-code"},"▶ Run Code",-1),E=e(`
js
console.info(Artplayer.validator);
-

kindOf

返回类型检测的函数工具

`,3),g=a("div",{className:"run-code"},"▶ Run Code",-1),I=e(`
js
console.info(Artplayer.kindOf);
-

html

返回播放器所需的 html 字符串

`,3),f=a("div",{className:"run-code"},"▶ Run Code",-1),k=e(`
js
console.info(Artplayer.html);
-

option

返回播放器的默认选项

`,3),O=a("div",{className:"run-code"},"▶ Run Code",-1),S=e(`
js
console.info(Artplayer.option);
-

DEBUG

CONTEXTMENU

NOTICE_TIME

SETTING_WIDTH

SETTING_ITEM_WIDTH

SETTING_ITEM_HEIGHT

INDICATOR_SIZE

INDICATOR_SIZE_ICON

INDICATOR_SIZE_MOBILE

INDICATOR_SIZE_MOBILE_ICON

VOLUME_PANEL_WIDTH

VOLUME_HANDLE_WIDTH

RESIZE_TIME

SCROLL_TIME

SCROLL_GAP

AUTO_PLAYBACK_MAX

AUTO_PLAYBACK_MIN

AUTO_PLAYBACK_TIMEOUT

RECONNECT_TIME_MAX

RECONNECT_SLEEP_TIME

CONTROL_HIDE_TIME

DB_CLICE_TIME

MOBILE_AUTO_PLAYBACKRATE

MOBILE_AUTO_PLAYBACKRATE_TIME

MOBILE_AUTO_ORIENTATION_TIME

INFO_LOOP_TIME

FAST_FORWARD_VALUE

FAST_FORWARD_TIME

TOUCH_MOVE_RATIO

VOLUME_STEP

SEEK_STEP

PROGRESS_HEIGHT

PLAYBACK_RATE

ASPECT_RATIO

FLIP

FULLSCREEN_WEB_IN_BODY

`,37),N=[o,t,r,c,d,p,h,_,u,A,m,b,C,D,y,T,v,F,E,g,I,f,k,O,S];function x(R,P,L,M,w,V){return l(),n("div",null,N)}const j=s(i,[["render",x]]);export{U as __pageData,j as default}; diff --git a/docs/document/assets/advanced_class.md.cba82bcd.lean.js b/docs/document/assets/advanced_class.md.cba82bcd.lean.js deleted file mode 100644 index 54da3b93a..000000000 --- a/docs/document/assets/advanced_class.md.cba82bcd.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as n,o as l,a as e,b as a}from"./app.77a2ba76.js";const U=JSON.parse('{"title":"静态属性","description":"","frontmatter":{},"headers":[{"level":2,"title":"instances","slug":"instances","link":"#instances","children":[]},{"level":2,"title":"version","slug":"version","link":"#version","children":[]},{"level":2,"title":"env","slug":"env","link":"#env","children":[]},{"level":2,"title":"build","slug":"build","link":"#build","children":[]},{"level":2,"title":"config","slug":"config","link":"#config","children":[]},{"level":2,"title":"utils","slug":"utils","link":"#utils","children":[]},{"level":2,"title":"scheme","slug":"scheme","link":"#scheme","children":[]},{"level":2,"title":"Emitter","slug":"emitter","link":"#emitter","children":[]},{"level":2,"title":"validator","slug":"validator","link":"#validator","children":[]},{"level":2,"title":"kindOf","slug":"kindof","link":"#kindof","children":[]},{"level":2,"title":"html","slug":"html","link":"#html","children":[]},{"level":2,"title":"option","slug":"option","link":"#option","children":[]},{"level":2,"title":"DEBUG","slug":"debug","link":"#debug","children":[]},{"level":2,"title":"CONTEXTMENU","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"NOTICE_TIME","slug":"notice-time","link":"#notice-time","children":[]},{"level":2,"title":"SETTING_WIDTH","slug":"setting-width","link":"#setting-width","children":[]},{"level":2,"title":"SETTING_ITEM_WIDTH","slug":"setting-item-width","link":"#setting-item-width","children":[]},{"level":2,"title":"SETTING_ITEM_HEIGHT","slug":"setting-item-height","link":"#setting-item-height","children":[]},{"level":2,"title":"INDICATOR_SIZE","slug":"indicator-size","link":"#indicator-size","children":[]},{"level":2,"title":"INDICATOR_SIZE_ICON","slug":"indicator-size-icon","link":"#indicator-size-icon","children":[]},{"level":2,"title":"INDICATOR_SIZE_MOBILE","slug":"indicator-size-mobile","link":"#indicator-size-mobile","children":[]},{"level":2,"title":"INDICATOR_SIZE_MOBILE_ICON","slug":"indicator-size-mobile-icon","link":"#indicator-size-mobile-icon","children":[]},{"level":2,"title":"VOLUME_PANEL_WIDTH","slug":"volume-panel-width","link":"#volume-panel-width","children":[]},{"level":2,"title":"VOLUME_HANDLE_WIDTH","slug":"volume-handle-width","link":"#volume-handle-width","children":[]},{"level":2,"title":"RESIZE_TIME","slug":"resize-time","link":"#resize-time","children":[]},{"level":2,"title":"SCROLL_TIME","slug":"scroll-time","link":"#scroll-time","children":[]},{"level":2,"title":"SCROLL_GAP","slug":"scroll-gap","link":"#scroll-gap","children":[]},{"level":2,"title":"AUTO_PLAYBACK_MAX","slug":"auto-playback-max","link":"#auto-playback-max","children":[]},{"level":2,"title":"AUTO_PLAYBACK_MIN","slug":"auto-playback-min","link":"#auto-playback-min","children":[]},{"level":2,"title":"AUTO_PLAYBACK_TIMEOUT","slug":"auto-playback-timeout","link":"#auto-playback-timeout","children":[]},{"level":2,"title":"RECONNECT_TIME_MAX","slug":"reconnect-time-max","link":"#reconnect-time-max","children":[]},{"level":2,"title":"RECONNECT_SLEEP_TIME","slug":"reconnect-sleep-time","link":"#reconnect-sleep-time","children":[]},{"level":2,"title":"CONTROL_HIDE_TIME","slug":"control-hide-time","link":"#control-hide-time","children":[]},{"level":2,"title":"DB_CLICE_TIME","slug":"db-clice-time","link":"#db-clice-time","children":[]},{"level":2,"title":"MOBILE_AUTO_PLAYBACKRATE","slug":"mobile-auto-playbackrate","link":"#mobile-auto-playbackrate","children":[]},{"level":2,"title":"MOBILE_AUTO_PLAYBACKRATE_TIME","slug":"mobile-auto-playbackrate-time","link":"#mobile-auto-playbackrate-time","children":[]},{"level":2,"title":"MOBILE_AUTO_ORIENTATION_TIME","slug":"mobile-auto-orientation-time","link":"#mobile-auto-orientation-time","children":[]},{"level":2,"title":"INFO_LOOP_TIME","slug":"info-loop-time","link":"#info-loop-time","children":[]},{"level":2,"title":"FAST_FORWARD_VALUE","slug":"fast-forward-value","link":"#fast-forward-value","children":[]},{"level":2,"title":"FAST_FORWARD_TIME","slug":"fast-forward-time","link":"#fast-forward-time","children":[]},{"level":2,"title":"TOUCH_MOVE_RATIO","slug":"touch-move-ratio","link":"#touch-move-ratio","children":[]},{"level":2,"title":"VOLUME_STEP","slug":"volume-step","link":"#volume-step","children":[]},{"level":2,"title":"SEEK_STEP","slug":"seek-step","link":"#seek-step","children":[]},{"level":2,"title":"PROGRESS_HEIGHT","slug":"progress-height","link":"#progress-height","children":[]},{"level":2,"title":"PLAYBACK_RATE","slug":"playback-rate","link":"#playback-rate","children":[]},{"level":2,"title":"ASPECT_RATIO","slug":"aspect-ratio","link":"#aspect-ratio","children":[]},{"level":2,"title":"FLIP","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"FULLSCREEN_WEB_IN_BODY","slug":"fullscreen-web-in-body","link":"#fullscreen-web-in-body","children":[]}],"relativePath":"advanced/class.md","lastUpdated":1674271984000}'),i={name:"advanced/class.md"},o=e("",5),t=a("div",{className:"run-code"},"▶ Run Code",-1),r=e("",3),c=a("div",{className:"run-code"},"▶ Run Code",-1),d=e("",3),p=a("div",{className:"run-code"},"▶ Run Code",-1),h=e("",3),_=a("div",{className:"run-code"},"▶ Run Code",-1),u=e("",3),A=a("div",{className:"run-code"},"▶ Run Code",-1),m=e("",3),b=a("div",{className:"run-code"},"▶ Run Code",-1),C=e("",4),D=a("div",{className:"run-code"},"▶ Run Code",-1),y=e("",3),T=a("div",{className:"run-code"},"▶ Run Code",-1),v=e("",3),F=a("div",{className:"run-code"},"▶ Run Code",-1),E=e("",3),g=a("div",{className:"run-code"},"▶ Run Code",-1),I=e("",3),f=a("div",{className:"run-code"},"▶ Run Code",-1),k=e("",3),O=a("div",{className:"run-code"},"▶ Run Code",-1),S=e("",37),N=[o,t,r,c,d,p,h,_,u,A,m,b,C,D,y,T,v,F,E,g,I,f,k,O,S];function x(R,P,L,M,w,V){return l(),n("div",null,N)}const j=s(i,[["render",x]]);export{U as __pageData,j as default}; diff --git a/docs/document/assets/advanced_class.md.dbd895da.js b/docs/document/assets/advanced_class.md.dbd895da.js new file mode 100644 index 000000000..768de681e --- /dev/null +++ b/docs/document/assets/advanced_class.md.dbd895da.js @@ -0,0 +1,9 @@ +import{_ as s,c as n,o,U as a,x as e}from"./chunks/framework.75837252.js";const U=JSON.parse('{"title":"静态属性","description":"","frontmatter":{},"headers":[],"relativePath":"advanced/class.md","lastUpdated":1674271984000}'),l={name:"advanced/class.md"},t=a('

静态属性 ​

这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用

提示

有些属性是全大写的,说明这些属性是不稳定的,可能会在将来被更改

instances ​

返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性

',5),r=e("div",{className:"run-code"},"▶ Run Code",-1),c=a(`
js
console.info([...Artplayer.instances]);
+
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+console.info([...Artplayer.instances]);
+

version ​

返回播放器的版本信息

`,3),i=e("div",{className:"run-code"},"▶ Run Code",-1),p=a('
js
console.info(Artplayer.version);\n

env ​

返回播放器的环境变量

',3),d=e("div",{className:"run-code"},"▶ Run Code",-1),h=a('
js
console.info(Artplayer.env);\n

build ​

返回播放器的打包时间

',3),_=e("div",{className:"run-code"},"▶ Run Code",-1),u=a('
js
console.info(Artplayer.build);\n

config ​

返回视频的默认配置

',3),A=e("div",{className:"run-code"},"▶ Run Code",-1),b=a('
js
console.info(Artplayer.config);\n

utils ​

返回播放器的工具函数集合

',3),m=e("div",{className:"run-code"},"▶ Run Code",-1),C=a('
js
console.info(Artplayer.utils);\n

全部工具函数请参考以下地址:

artplayer/types/utils.d.ts

scheme ​

返回播放器选项的校验方案

',4),D=e("div",{className:"run-code"},"▶ Run Code",-1),T=a('
js
console.info(Artplayer.scheme);\n

Emitter ​

返回事件分发器的构造函数

',3),y=e("div",{className:"run-code"},"▶ Run Code",-1),F=a('
js
console.info(Artplayer.Emitter);\n

validator ​

返回选项的校验函数

',3),E=e("div",{className:"run-code"},"▶ Run Code",-1),I=a('
js
console.info(Artplayer.validator);\n

kindOf ​

返回类型检测的函数工具

',3),P=e("div",{className:"run-code"},"▶ Run Code",-1),q=a('
js
console.info(Artplayer.kindOf);\n

html ​

返回播放器所需的 html 字符串

',3),f=e("div",{className:"run-code"},"▶ Run Code",-1),v=a('
js
console.info(Artplayer.html);\n

option ​

返回播放器的默认选项

',3),k=e("div",{className:"run-code"},"▶ Run Code",-1),O=a('
js
console.info(Artplayer.option);\n

DEBUG ​

CONTEXTMENU ​

NOTICE_TIME ​

SETTING_WIDTH ​

SETTING_ITEM_WIDTH ​

SETTING_ITEM_HEIGHT ​

INDICATOR_SIZE ​

INDICATOR_SIZE_ICON ​

INDICATOR_SIZE_MOBILE ​

INDICATOR_SIZE_MOBILE_ICON ​

VOLUME_PANEL_WIDTH ​

VOLUME_HANDLE_WIDTH ​

RESIZE_TIME ​

SCROLL_TIME ​

SCROLL_GAP ​

AUTO_PLAYBACK_MAX ​

AUTO_PLAYBACK_MIN ​

AUTO_PLAYBACK_TIMEOUT ​

RECONNECT_TIME_MAX ​

RECONNECT_SLEEP_TIME ​

CONTROL_HIDE_TIME ​

DB_CLICE_TIME ​

MOBILE_AUTO_PLAYBACKRATE ​

MOBILE_AUTO_PLAYBACKRATE_TIME ​

MOBILE_AUTO_ORIENTATION_TIME ​

INFO_LOOP_TIME ​

FAST_FORWARD_VALUE ​

FAST_FORWARD_TIME ​

TOUCH_MOVE_RATIO ​

VOLUME_STEP ​

SEEK_STEP ​

PROGRESS_HEIGHT ​

PLAYBACK_RATE ​

ASPECT_RATIO ​

FLIP ​

FULLSCREEN_WEB_IN_BODY ​

',37),S=[t,r,c,i,p,d,h,_,u,A,b,m,C,D,T,y,F,E,I,P,q,f,v,k,O];function N(g,R,x,L,M,V){return o(),n("div",null,S)}const w=s(l,[["render",N]]);export{U as __pageData,w as default}; diff --git a/docs/document/assets/advanced_class.md.dbd895da.lean.js b/docs/document/assets/advanced_class.md.dbd895da.lean.js new file mode 100644 index 000000000..4bcda8adf --- /dev/null +++ b/docs/document/assets/advanced_class.md.dbd895da.lean.js @@ -0,0 +1 @@ +import{_ as s,c as n,o,U as a,x as e}from"./chunks/framework.75837252.js";const U=JSON.parse('{"title":"静态属性","description":"","frontmatter":{},"headers":[],"relativePath":"advanced/class.md","lastUpdated":1674271984000}'),l={name:"advanced/class.md"},t=a("",5),r=e("div",{className:"run-code"},"▶ Run Code",-1),c=a("",3),i=e("div",{className:"run-code"},"▶ Run Code",-1),p=a("",3),d=e("div",{className:"run-code"},"▶ Run Code",-1),h=a("",3),_=e("div",{className:"run-code"},"▶ Run Code",-1),u=a("",3),A=e("div",{className:"run-code"},"▶ Run Code",-1),b=a("",3),m=e("div",{className:"run-code"},"▶ Run Code",-1),C=a("",4),D=e("div",{className:"run-code"},"▶ Run Code",-1),T=a("",3),y=e("div",{className:"run-code"},"▶ Run Code",-1),F=a("",3),E=e("div",{className:"run-code"},"▶ Run Code",-1),I=a("",3),P=e("div",{className:"run-code"},"▶ Run Code",-1),q=a("",3),f=e("div",{className:"run-code"},"▶ Run Code",-1),v=a("",3),k=e("div",{className:"run-code"},"▶ Run Code",-1),O=a("",37),S=[t,r,c,i,p,d,h,_,u,A,b,m,C,D,T,y,F,E,I,P,q,f,v,k,O];function N(g,R,x,L,M,V){return o(),n("div",null,S)}const w=s(l,[["render",N]]);export{U as __pageData,w as default}; diff --git a/docs/document/assets/advanced_event.md.70b41e05.lean.js b/docs/document/assets/advanced_event.md.70b41e05.lean.js deleted file mode 100644 index 9db2006ae..000000000 --- a/docs/document/assets/advanced_event.md.70b41e05.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const Ms=JSON.parse('{"title":"实例事件","description":"","frontmatter":{},"headers":[{"level":2,"title":"ready","slug":"ready","link":"#ready","children":[]},{"level":2,"title":"restart","slug":"restart","link":"#restart","children":[]},{"level":2,"title":"pause","slug":"pause","link":"#pause","children":[]},{"level":2,"title":"play","slug":"play","link":"#play","children":[]},{"level":2,"title":"hotkey","slug":"hotkey","link":"#hotkey","children":[]},{"level":2,"title":"destroy","slug":"destroy","link":"#destroy","children":[]},{"level":2,"title":"url","slug":"url","link":"#url","children":[]},{"level":2,"title":"focus","slug":"focus","link":"#focus","children":[]},{"level":2,"title":"blur","slug":"blur","link":"#blur","children":[]},{"level":2,"title":"dblclick","slug":"dblclick","link":"#dblclick","children":[]},{"level":2,"title":"click","slug":"click","link":"#click","children":[]},{"level":2,"title":"error","slug":"error","link":"#error","children":[]},{"level":2,"title":"hover","slug":"hover","link":"#hover","children":[]},{"level":2,"title":"mousemove","slug":"mousemove","link":"#mousemove","children":[]},{"level":2,"title":"resize","slug":"resize","link":"#resize","children":[]},{"level":2,"title":"view","slug":"view","link":"#view","children":[]},{"level":2,"title":"aspectRatio","slug":"aspectratio","link":"#aspectratio","children":[]},{"level":2,"title":"autoHeight","slug":"autoheight","link":"#autoheight","children":[]},{"level":2,"title":"autoSize","slug":"autosize","link":"#autosize","children":[]},{"level":2,"title":"flip","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"fullscreen","slug":"fullscreen","link":"#fullscreen","children":[]},{"level":2,"title":"fullscreenWeb","slug":"fullscreenweb","link":"#fullscreenweb","children":[]},{"level":2,"title":"mini","slug":"mini","link":"#mini","children":[]},{"level":2,"title":"pip","slug":"pip","link":"#pip","children":[]},{"level":2,"title":"screenshot","slug":"screenshot","link":"#screenshot","children":[]},{"level":2,"title":"seek","slug":"seek","link":"#seek","children":[]},{"level":2,"title":"subtitleOffset","slug":"subtitleoffset","link":"#subtitleoffset","children":[]},{"level":2,"title":"subtitleUpdate","slug":"subtitleupdate","link":"#subtitleupdate","children":[]},{"level":2,"title":"subtitleLoad","slug":"subtitleload","link":"#subtitleload","children":[]},{"level":2,"title":"subtitleSwitch","slug":"subtitleswitch","link":"#subtitleswitch","children":[]},{"level":2,"title":"info","slug":"info","link":"#info","children":[]},{"level":2,"title":"layer","slug":"layer","link":"#layer","children":[]},{"level":2,"title":"loading","slug":"loading","link":"#loading","children":[]},{"level":2,"title":"mask","slug":"mask","link":"#mask","children":[]},{"level":2,"title":"subtitle","slug":"subtitle","link":"#subtitle","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"control","slug":"control","link":"#control","children":[]},{"level":2,"title":"setting","slug":"setting","link":"#setting","children":[]},{"level":2,"title":"video:canplay","slug":"video-canplay","link":"#video-canplay","children":[]},{"level":2,"title":"video:canplaythrough","slug":"video-canplaythrough","link":"#video-canplaythrough","children":[]},{"level":2,"title":"video:complete","slug":"video-complete","link":"#video-complete","children":[]},{"level":2,"title":"video:durationchange","slug":"video-durationchange","link":"#video-durationchange","children":[]},{"level":2,"title":"video:emptied","slug":"video-emptied","link":"#video-emptied","children":[]},{"level":2,"title":"video:ended","slug":"video-ended","link":"#video-ended","children":[]},{"level":2,"title":"video:error","slug":"video-error","link":"#video-error","children":[]},{"level":2,"title":"video:loadeddata","slug":"video-loadeddata","link":"#video-loadeddata","children":[]},{"level":2,"title":"video:loadedmetadata","slug":"video-loadedmetadata","link":"#video-loadedmetadata","children":[]},{"level":2,"title":"video:pause","slug":"video-pause","link":"#video-pause","children":[]},{"level":2,"title":"video:play","slug":"video-play","link":"#video-play","children":[]},{"level":2,"title":"video:playing","slug":"video-playing","link":"#video-playing","children":[]},{"level":2,"title":"video:progress","slug":"video-progress","link":"#video-progress","children":[]},{"level":2,"title":"video:ratechange","slug":"video-ratechange","link":"#video-ratechange","children":[]},{"level":2,"title":"video:seeked","slug":"video-seeked","link":"#video-seeked","children":[]},{"level":2,"title":"video:seeking","slug":"video-seeking","link":"#video-seeking","children":[]},{"level":2,"title":"video:stalled","slug":"video-stalled","link":"#video-stalled","children":[]},{"level":2,"title":"video:suspend","slug":"video-suspend","link":"#video-suspend","children":[]},{"level":2,"title":"video:timeupdate","slug":"video-timeupdate","link":"#video-timeupdate","children":[]},{"level":2,"title":"video:volumechange","slug":"video-volumechange","link":"#video-volumechange","children":[]},{"level":2,"title":"video:waiting","slug":"video-waiting","link":"#video-waiting","children":[]}],"relativePath":"advanced/event.md","lastUpdated":1677245395000}'),o={name:"advanced/event.md"},r=s("h1",{id:"实例事件",tabindex:"-1"},[a("实例事件 "),s("a",{class:"header-anchor",href:"#实例事件","aria-hidden":"true"},"#")],-1),c=s("p",null,[a("播放器的事件分为两种,一种视频的 "),s("code",null,"原生事件"),a(" (前缀 "),s("code",null,"video:"),a("),另外一种是 "),s("code",null,"自定义事件")],-1),t=s("p",null,"监听事件:",-1),D=s("div",{className:"run-code"},"▶ Run Code",-1),y=n("",2),F=s("div",{className:"run-code"},"▶ Run Code",-1),i=n("",2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=n("",2),d=s("div",{className:"run-code"},"▶ Run Code",-1),b=n("",4),u=s("div",{className:"run-code"},"▶ Run Code",-1),h=n("",3),m=s("div",{className:"run-code"},"▶ Run Code",-1),_=n("",3),g=s("div",{className:"run-code"},"▶ Run Code",-1),v=n("",3),E=s("div",{className:"run-code"},"▶ Run Code",-1),T=n("",3),f=s("div",{className:"run-code"},"▶ Run Code",-1),k=n("",3),S=s("div",{className:"run-code"},"▶ Run Code",-1),x=n("",3),w=s("div",{className:"run-code"},"▶ Run Code",-1),R=n("",3),N=s("div",{className:"run-code"},"▶ Run Code",-1),V=n("",3),P=s("div",{className:"run-code"},"▶ Run Code",-1),j=n("",3),I=s("div",{className:"run-code"},"▶ Run Code",-1),z=n("",3),O=s("div",{className:"run-code"},"▶ Run Code",-1),U=n("",3),H=s("div",{className:"run-code"},"▶ Run Code",-1),W=n("",3),L=s("div",{className:"run-code"},"▶ Run Code",-1),$=n("",3),B=s("div",{className:"run-code"},"▶ Run Code",-1),J=n("",3),q=s("div",{className:"run-code"},"▶ Run Code",-1),G=n("",3),K=s("div",{className:"run-code"},"▶ Run Code",-1),M=n("",3),Q=s("div",{className:"run-code"},"▶ Run Code",-1),X=n("",3),Y=s("div",{className:"run-code"},"▶ Run Code",-1),Z=n("",3),ss=s("div",{className:"run-code"},"▶ Run Code",-1),ns=n("",3),as=s("div",{className:"run-code"},"▶ Run Code",-1),ls=n("",3),ps=s("div",{className:"run-code"},"▶ Run Code",-1),es=n("",3),os=s("div",{className:"run-code"},"▶ Run Code",-1),rs=n("",3),cs=s("div",{className:"run-code"},"▶ Run Code",-1),ts=n("",3),Ds=s("div",{className:"run-code"},"▶ Run Code",-1),ys=n("",3),Fs=s("div",{className:"run-code"},"▶ Run Code",-1),is=n("",3),As=s("div",{className:"run-code"},"▶ Run Code",-1),Cs=n("",3),ds=s("div",{className:"run-code"},"▶ Run Code",-1),bs=n("",3),us=s("div",{className:"run-code"},"▶ Run Code",-1),hs=n("",3),ms=s("div",{className:"run-code"},"▶ Run Code",-1),_s=n("",3),gs=s("div",{className:"run-code"},"▶ Run Code",-1),vs=n("",3),Es=s("div",{className:"run-code"},"▶ Run Code",-1),Ts=n("",3),fs=s("div",{className:"run-code"},"▶ Run Code",-1),ks=n("",3),Ss=s("div",{className:"run-code"},"▶ Run Code",-1),xs=n("",3),ws=s("div",{className:"run-code"},"▶ Run Code",-1),Rs=n("",3),Ns=s("div",{className:"run-code"},"▶ Run Code",-1),Vs=n("",3),Ps=s("div",{className:"run-code"},"▶ Run Code",-1),js=n("",3),Is=s("div",{className:"run-code"},"▶ Run Code",-1),zs=n("",3),Os=s("div",{className:"run-code"},"▶ Run Code",-1),Us=n("",43),Hs=[r,c,t,D,y,F,i,A,C,d,b,u,h,m,_,g,v,E,T,f,k,S,x,w,R,N,V,P,j,I,z,O,U,H,W,L,$,B,J,q,G,K,M,Q,X,Y,Z,ss,ns,as,ls,ps,es,os,rs,cs,ts,Ds,ys,Fs,is,As,Cs,ds,bs,us,hs,ms,_s,gs,vs,Es,Ts,fs,ks,Ss,xs,ws,Rs,Ns,Vs,Ps,js,Is,zs,Os,Us];function Ws(Ls,$s,Bs,Js,qs,Gs){return e(),p("div",null,Hs)}const Qs=l(o,[["render",Ws]]);export{Ms as __pageData,Qs as default}; diff --git a/docs/document/assets/en_advanced_event.md.99a25a28.js b/docs/document/assets/advanced_event.md.ff9ebe55.js similarity index 77% rename from docs/document/assets/en_advanced_event.md.99a25a28.js rename to docs/document/assets/advanced_event.md.ff9ebe55.js index 523a221de..3420d1a1b 100644 --- a/docs/document/assets/en_advanced_event.md.99a25a28.js +++ b/docs/document/assets/advanced_event.md.ff9ebe55.js @@ -1,4 +1,4 @@ -import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const Ms=JSON.parse('{"title":"实例事件","description":"","frontmatter":{},"headers":[{"level":2,"title":"ready","slug":"ready","link":"#ready","children":[]},{"level":2,"title":"restart","slug":"restart","link":"#restart","children":[]},{"level":2,"title":"pause","slug":"pause","link":"#pause","children":[]},{"level":2,"title":"play","slug":"play","link":"#play","children":[]},{"level":2,"title":"hotkey","slug":"hotkey","link":"#hotkey","children":[]},{"level":2,"title":"destroy","slug":"destroy","link":"#destroy","children":[]},{"level":2,"title":"url","slug":"url","link":"#url","children":[]},{"level":2,"title":"focus","slug":"focus","link":"#focus","children":[]},{"level":2,"title":"blur","slug":"blur","link":"#blur","children":[]},{"level":2,"title":"dblclick","slug":"dblclick","link":"#dblclick","children":[]},{"level":2,"title":"click","slug":"click","link":"#click","children":[]},{"level":2,"title":"error","slug":"error","link":"#error","children":[]},{"level":2,"title":"hover","slug":"hover","link":"#hover","children":[]},{"level":2,"title":"mousemove","slug":"mousemove","link":"#mousemove","children":[]},{"level":2,"title":"resize","slug":"resize","link":"#resize","children":[]},{"level":2,"title":"view","slug":"view","link":"#view","children":[]},{"level":2,"title":"aspectRatio","slug":"aspectratio","link":"#aspectratio","children":[]},{"level":2,"title":"autoHeight","slug":"autoheight","link":"#autoheight","children":[]},{"level":2,"title":"autoSize","slug":"autosize","link":"#autosize","children":[]},{"level":2,"title":"flip","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"fullscreen","slug":"fullscreen","link":"#fullscreen","children":[]},{"level":2,"title":"fullscreenWeb","slug":"fullscreenweb","link":"#fullscreenweb","children":[]},{"level":2,"title":"mini","slug":"mini","link":"#mini","children":[]},{"level":2,"title":"pip","slug":"pip","link":"#pip","children":[]},{"level":2,"title":"screenshot","slug":"screenshot","link":"#screenshot","children":[]},{"level":2,"title":"seek","slug":"seek","link":"#seek","children":[]},{"level":2,"title":"subtitleOffset","slug":"subtitleoffset","link":"#subtitleoffset","children":[]},{"level":2,"title":"subtitleUpdate","slug":"subtitleupdate","link":"#subtitleupdate","children":[]},{"level":2,"title":"subtitleLoad","slug":"subtitleload","link":"#subtitleload","children":[]},{"level":2,"title":"subtitleSwitch","slug":"subtitleswitch","link":"#subtitleswitch","children":[]},{"level":2,"title":"info","slug":"info","link":"#info","children":[]},{"level":2,"title":"layer","slug":"layer","link":"#layer","children":[]},{"level":2,"title":"loading","slug":"loading","link":"#loading","children":[]},{"level":2,"title":"mask","slug":"mask","link":"#mask","children":[]},{"level":2,"title":"subtitle","slug":"subtitle","link":"#subtitle","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"control","slug":"control","link":"#control","children":[]},{"level":2,"title":"setting","slug":"setting","link":"#setting","children":[]},{"level":2,"title":"video:canplay","slug":"video-canplay","link":"#video-canplay","children":[]},{"level":2,"title":"video:canplaythrough","slug":"video-canplaythrough","link":"#video-canplaythrough","children":[]},{"level":2,"title":"video:complete","slug":"video-complete","link":"#video-complete","children":[]},{"level":2,"title":"video:durationchange","slug":"video-durationchange","link":"#video-durationchange","children":[]},{"level":2,"title":"video:emptied","slug":"video-emptied","link":"#video-emptied","children":[]},{"level":2,"title":"video:ended","slug":"video-ended","link":"#video-ended","children":[]},{"level":2,"title":"video:error","slug":"video-error","link":"#video-error","children":[]},{"level":2,"title":"video:loadeddata","slug":"video-loadeddata","link":"#video-loadeddata","children":[]},{"level":2,"title":"video:loadedmetadata","slug":"video-loadedmetadata","link":"#video-loadedmetadata","children":[]},{"level":2,"title":"video:pause","slug":"video-pause","link":"#video-pause","children":[]},{"level":2,"title":"video:play","slug":"video-play","link":"#video-play","children":[]},{"level":2,"title":"video:playing","slug":"video-playing","link":"#video-playing","children":[]},{"level":2,"title":"video:progress","slug":"video-progress","link":"#video-progress","children":[]},{"level":2,"title":"video:ratechange","slug":"video-ratechange","link":"#video-ratechange","children":[]},{"level":2,"title":"video:seeked","slug":"video-seeked","link":"#video-seeked","children":[]},{"level":2,"title":"video:seeking","slug":"video-seeking","link":"#video-seeking","children":[]},{"level":2,"title":"video:stalled","slug":"video-stalled","link":"#video-stalled","children":[]},{"level":2,"title":"video:suspend","slug":"video-suspend","link":"#video-suspend","children":[]},{"level":2,"title":"video:timeupdate","slug":"video-timeupdate","link":"#video-timeupdate","children":[]},{"level":2,"title":"video:volumechange","slug":"video-volumechange","link":"#video-volumechange","children":[]},{"level":2,"title":"video:waiting","slug":"video-waiting","link":"#video-waiting","children":[]}],"relativePath":"en/advanced/event.md","lastUpdated":1677245395000}'),o={name:"en/advanced/event.md"},r=s("h1",{id:"实例事件",tabindex:"-1"},[a("实例事件 "),s("a",{class:"header-anchor",href:"#实例事件","aria-hidden":"true"},"#")],-1),c=s("p",null,[a("播放器的事件分为两种,一种视频的 "),s("code",null,"原生事件"),a(" (前缀 "),s("code",null,"video:"),a("),另外一种是 "),s("code",null,"自定义事件")],-1),t=s("p",null,"监听事件:",-1),D=s("div",{className:"run-code"},"▶ Run Code",-1),y=n(`
js
var art = new Artplayer({
+import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const Ms=JSON.parse('{"title":"实例事件","description":"","frontmatter":{},"headers":[],"relativePath":"advanced/event.md","lastUpdated":1677245395000}'),e={name:"advanced/event.md"},r=s("h1",{id:"实例事件",tabindex:"-1"},[n("实例事件 "),s("a",{class:"header-anchor",href:"#实例事件","aria-label":'Permalink to "实例事件"'},"​")],-1),c=s("p",null,[n("播放器的事件分为两种,一种视频的 "),s("code",null,"原生事件"),n(" (前缀 "),s("code",null,"video:"),n("),另外一种是 "),s("code",null,"自定义事件")],-1),t=s("p",null,"监听事件:",-1),D=s("div",{className:"run-code"},"▶ Run Code",-1),F=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -6,7 +6,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('video:canplay', () => {
     console.info('video:canplay');
 });
-

只监听一次事件:

`,2),F=s("div",{className:"run-code"},"▶ Run Code",-1),i=n(`
js
var art = new Artplayer({
+

只监听一次事件:

`,2),y=s("div",{className:"run-code"},"▶ Run Code",-1),i=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -14,13 +14,13 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.once('video:canplay', () => {
     console.info('video:canplay');
 });
-

手动触发事件:

`,2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=n(`
js
var art = new Artplayer({
+

手动触发事件:

`,2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 art.emit('focus');
-

移除事件:

`,2),d=s("div",{className:"run-code"},"▶ Run Code",-1),b=n(`
js
var art = new Artplayer({
+

移除事件:

`,2),d=s("div",{className:"run-code"},"▶ Run Code",-1),b=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -31,7 +31,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 }
 
 art.on('ready', onReady);
-

全部事件请参考以下地址:

artplayer/types/events.d.ts

ready

当播放器首次可以播放器时触发

`,4),u=s("div",{className:"run-code"},"▶ Run Code",-1),h=n(`
js
var art = new Artplayer({
+

全部事件请参考以下地址:

artplayer/types/events.d.ts

ready ​

当播放器首次可以播放器时触发

`,4),u=s("div",{className:"run-code"},"▶ Run Code",-1),h=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -39,7 +39,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('ready', () => {
     console.info('ready');
 });
-

restart

当播放器切换地址后并可以播放时触发

`,3),m=s("div",{className:"run-code"},"▶ Run Code",-1),_=n(`
js
var art = new Artplayer({
+

restart ​

当播放器切换地址后并可以播放时触发

`,3),m=s("div",{className:"run-code"},"▶ Run Code",-1),_=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -51,7 +51,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('restart', () => {
     console.info('restart');
 });
-

pause

当播放器暂停时触发

`,3),g=s("div",{className:"run-code"},"▶ Run Code",-1),v=n(`
js
var art = new Artplayer({
+

pause ​

当播放器暂停时触发

`,3),g=s("div",{className:"run-code"},"▶ Run Code",-1),v=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -59,7 +59,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('pause', () => {
     console.info('pause');
 });
-

play

当播放器播放时触发

`,3),E=s("div",{className:"run-code"},"▶ Run Code",-1),T=n(`
js
var art = new Artplayer({
+

play ​

当播放器播放时触发

`,3),E=s("div",{className:"run-code"},"▶ Run Code",-1),T=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -67,7 +67,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('play', () => {
     console.info('play');
 });
-

hotkey

当播放器热键被按下时触发

`,3),f=s("div",{className:"run-code"},"▶ Run Code",-1),k=n(`
js
var art = new Artplayer({
+

hotkey ​

当播放器热键被按下时触发

`,3),f=s("div",{className:"run-code"},"▶ Run Code",-1),k=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -75,7 +75,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('hotkey', (event) => {
     console.info('hotkey', event);
 });
-

destroy

当播放器销毁时触发

`,3),S=s("div",{className:"run-code"},"▶ Run Code",-1),x=n(`
js
var art = new Artplayer({
+

destroy ​

当播放器销毁时触发

`,3),P=s("div",{className:"run-code"},"▶ Run Code",-1),S=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -87,7 +87,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('destroy', () => {
     console.info('destroy');
 });
-

url

当视频地址变化时触发

`,3),w=s("div",{className:"run-code"},"▶ Run Code",-1),R=n(`
js
var art = new Artplayer({
+

url ​

当视频地址变化时触发

`,3),q=s("div",{className:"run-code"},"▶ Run Code",-1),w=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -99,7 +99,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('url', (url) => {
     console.info('url', url);
 });
-

focus

当播放器获得焦点时触发

`,3),N=s("div",{className:"run-code"},"▶ Run Code",-1),V=n(`
js
var art = new Artplayer({
+

focus ​

当播放器获得焦点时触发

`,3),R=s("div",{className:"run-code"},"▶ Run Code",-1),N=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -107,7 +107,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('focus', () => {
     console.info('focus');
 });
-

blur

当播放器失去焦点时触发

`,3),P=s("div",{className:"run-code"},"▶ Run Code",-1),j=n(`
js
var art = new Artplayer({
+

blur ​

当播放器失去焦点时触发

`,3),V=s("div",{className:"run-code"},"▶ Run Code",-1),j=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -115,7 +115,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('blur', () => {
     console.info('blur');
 });
-

dblclick

当播放器被双击时触发

`,3),I=s("div",{className:"run-code"},"▶ Run Code",-1),z=n(`
js
var art = new Artplayer({
+

dblclick ​

当播放器被双击时触发

`,3),I=s("div",{className:"run-code"},"▶ Run Code",-1),x=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -123,7 +123,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('dblclick', () => {
     console.info('dblclick');
 });
-

click

当播放器被单击时触发

`,3),O=s("div",{className:"run-code"},"▶ Run Code",-1),U=n(`
js
var art = new Artplayer({
+

click ​

当播放器被单击时触发

`,3),z=s("div",{className:"run-code"},"▶ Run Code",-1),U=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -131,7 +131,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('click', () => {
     console.info('click');
 });
-

error

当播放器加载视频发生错误时触发

`,3),H=s("div",{className:"run-code"},"▶ Run Code",-1),W=n(`
js
var art = new Artplayer({
+

error ​

当播放器加载视频发生错误时触发

`,3),O=s("div",{className:"run-code"},"▶ Run Code",-1),H=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/404.mp4',
 });
@@ -139,7 +139,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('error', (error, reconnectTime) => {
     console.info(error, reconnectTime);
 });
-

hover

当播放器被鼠标移出或者移入时触发

`,3),L=s("div",{className:"run-code"},"▶ Run Code",-1),$=n(`
js
var art = new Artplayer({
+

hover ​

当播放器被鼠标移出或者移入时触发

`,3),W=s("div",{className:"run-code"},"▶ Run Code",-1),L=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -147,7 +147,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('hover', (state) => {
     console.info('hover', state);
 });
-

mousemove

当播放器被鼠标经过时触发

`,3),B=s("div",{className:"run-code"},"▶ Run Code",-1),J=n(`
js
var art = new Artplayer({
+

mousemove ​

当播放器被鼠标经过时触发

`,3),$=s("div",{className:"run-code"},"▶ Run Code",-1),B=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -155,7 +155,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('mousemove', (event) => {
     console.info('mousemove', event);
 });
-

resize

当播放器尺寸变化时触发

`,3),q=s("div",{className:"run-code"},"▶ Run Code",-1),G=n(`
js
var art = new Artplayer({
+

resize ​

当播放器尺寸变化时触发

`,3),J=s("div",{className:"run-code"},"▶ Run Code",-1),G=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -163,7 +163,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('resize', () => {
     console.info('resize');
 });
-

view

当播放器出现在视口时触发

`,3),K=s("div",{className:"run-code"},"▶ Run Code",-1),M=n(`
js
var art = new Artplayer({
+

view ​

当播放器出现在视口时触发

`,3),K=s("div",{className:"run-code"},"▶ Run Code",-1),M=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -171,7 +171,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('view', (state) => {
     console.info('view', state);
 });
-

aspectRatio

当播放器长宽比变化时触发

`,3),Q=s("div",{className:"run-code"},"▶ Run Code",-1),X=n(`
js
var art = new Artplayer({
+

aspectRatio ​

当播放器长宽比变化时触发

`,3),Q=s("div",{className:"run-code"},"▶ Run Code",-1),X=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     aspectRatio: true,
@@ -181,7 +181,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('aspectRatio', (aspectRatio) => {
     console.info('aspectRatio', aspectRatio);
 });
-

autoHeight

当播放器自动设置高度时触发

`,3),Y=s("div",{className:"run-code"},"▶ Run Code",-1),Z=n(`
js
var art = new Artplayer({
+

autoHeight ​

当播放器自动设置高度时触发

`,3),Y=s("div",{className:"run-code"},"▶ Run Code",-1),Z=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -193,7 +193,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('autoHeight', (height) => {
     console.info('autoHeight', height);
 });
-

autoSize

当播放器自动设置尺寸时触发

`,3),ss=s("div",{className:"run-code"},"▶ Run Code",-1),ns=n(`
js
var art = new Artplayer({
+

autoSize ​

当播放器自动设置尺寸时触发

`,3),ss=s("div",{className:"run-code"},"▶ Run Code",-1),as=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
@@ -202,7 +202,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('autoSize', () => {
     console.info('autoSize');
 });
-

flip

当播放器发生翻转时触发

`,3),as=s("div",{className:"run-code"},"▶ Run Code",-1),ls=n(`
js
var art = new Artplayer({
+

flip ​

当播放器发生翻转时触发

`,3),ns=s("div",{className:"run-code"},"▶ Run Code",-1),ls=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     flip: true,
@@ -212,7 +212,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('flip', (flip) => {
     console.info('flip', flip);
 });
-

fullscreen

当播放器发生窗口全屏时触发

`,3),ps=s("div",{className:"run-code"},"▶ Run Code",-1),es=n(`
js
var art = new Artplayer({
+

fullscreen ​

当播放器发生窗口全屏时触发

`,3),ps=s("div",{className:"run-code"},"▶ Run Code",-1),os=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -221,7 +221,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('fullscreen', (state) => {
     console.info('fullscreen', state);
 });
-

fullscreenWeb

当播放器发生网页全屏时触发

`,3),os=s("div",{className:"run-code"},"▶ Run Code",-1),rs=n(`
js
var art = new Artplayer({
+

fullscreenWeb ​

当播放器发生网页全屏时触发

`,3),es=s("div",{className:"run-code"},"▶ Run Code",-1),rs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreenWeb: true,
@@ -230,7 +230,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('fullscreenWeb', (state) => {
     console.info('fullscreenWeb', state);
 });
-

mini

当播放器进入迷你模式时触发

`,3),cs=s("div",{className:"run-code"},"▶ Run Code",-1),ts=n(`
js
var art = new Artplayer({
+

mini ​

当播放器进入迷你模式时触发

`,3),cs=s("div",{className:"run-code"},"▶ Run Code",-1),ts=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -242,7 +242,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('mini', (state) => {
     console.info('mini', state);
 });
-

pip

当播放器进入画中画时触发

`,3),Ds=s("div",{className:"run-code"},"▶ Run Code",-1),ys=n(`
js
var art = new Artplayer({
+

pip ​

当播放器进入画中画时触发

`,3),Ds=s("div",{className:"run-code"},"▶ Run Code",-1),Fs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     pip: true,
@@ -251,7 +251,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('pip', (state) => {
     console.info('pip', state);
 });
-

screenshot

当播放器被截图时触发

`,3),Fs=s("div",{className:"run-code"},"▶ Run Code",-1),is=n(`
js
var art = new Artplayer({
+

screenshot ​

当播放器被截图时触发

`,3),ys=s("div",{className:"run-code"},"▶ Run Code",-1),is=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     screenshot: true,
@@ -260,7 +260,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('screenshot', (dataUri) => {
     console.info('screenshot', dataUri);
 });
-

seek

当播放器发生时间跳转时触发

`,3),As=s("div",{className:"run-code"},"▶ Run Code",-1),Cs=n(`
js
var art = new Artplayer({
+

seek ​

当播放器发生时间跳转时触发

`,3),As=s("div",{className:"run-code"},"▶ Run Code",-1),Cs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -268,7 +268,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('seek', (currentTime) => {
     console.info('seek', currentTime);
 });
-

subtitleOffset

当播放器发生字幕偏移时触发

`,3),ds=s("div",{className:"run-code"},"▶ Run Code",-1),bs=n(`
js
var art = new Artplayer({
+

subtitleOffset ​

当播放器发生字幕偏移时触发

`,3),ds=s("div",{className:"run-code"},"▶ Run Code",-1),bs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitleOffset: true,
@@ -281,7 +281,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('subtitleOffset', (offset) => {
     console.info('subtitleOffset', offset);
 });
-

subtitleUpdate

当字幕更新时触发

`,3),us=s("div",{className:"run-code"},"▶ Run Code",-1),hs=n(`
js
var art = new Artplayer({
+

subtitleUpdate ​

当字幕更新时触发

`,3),us=s("div",{className:"run-code"},"▶ Run Code",-1),hs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -292,7 +292,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('subtitleUpdate', (text) => {
     console.info('subtitleUpdate', text);
 });
-

subtitleLoad

当字幕加载时触发

`,3),ms=s("div",{className:"run-code"},"▶ Run Code",-1),_s=n(`
js
var art = new Artplayer({
+

subtitleLoad ​

当字幕加载时触发

`,3),ms=s("div",{className:"run-code"},"▶ Run Code",-1),_s=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -303,7 +303,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('subtitleLoad', (url) => {
     console.info('subtitleLoad', url);
 });
-

subtitleSwitch

当字幕切换时触发

`,3),gs=s("div",{className:"run-code"},"▶ Run Code",-1),vs=n(`
js
var art = new Artplayer({
+

subtitleSwitch ​

当字幕切换时触发

`,3),gs=s("div",{className:"run-code"},"▶ Run Code",-1),vs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -318,7 +318,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('subtitleSwitch', (url) => {
     console.info('subtitleSwitch', url);
 });
-

info

当信息面板显示或隐藏时触发

`,3),Es=s("div",{className:"run-code"},"▶ Run Code",-1),Ts=n(`
js
var art = new Artplayer({
+

info ​

当信息面板显示或隐藏时触发

`,3),Es=s("div",{className:"run-code"},"▶ Run Code",-1),Ts=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -326,7 +326,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('info', (state) => {
     console.log(state);
 });
-

layer

当自定义层显示或隐藏时触发

`,3),fs=s("div",{className:"run-code"},"▶ Run Code",-1),ks=n(`
js
var art = new Artplayer({
+

layer ​

当自定义层显示或隐藏时触发

`,3),fs=s("div",{className:"run-code"},"▶ Run Code",-1),ks=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -334,7 +334,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('layer', (state) => {
     console.log(state);
 });
-

loading

当加载器显示或隐藏时触发

`,3),Ss=s("div",{className:"run-code"},"▶ Run Code",-1),xs=n(`
js
var art = new Artplayer({
+

loading ​

当加载器显示或隐藏时触发

`,3),Ps=s("div",{className:"run-code"},"▶ Run Code",-1),Ss=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -342,7 +342,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('loading', (state) => {
     console.log(state);
 });
-

mask

当遮罩层显示或隐藏时触发

`,3),ws=s("div",{className:"run-code"},"▶ Run Code",-1),Rs=n(`
js
var art = new Artplayer({
+

mask ​

当遮罩层显示或隐藏时触发

`,3),qs=s("div",{className:"run-code"},"▶ Run Code",-1),ws=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -350,7 +350,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('mask', (state) => {
     console.log(state);
 });
-

subtitle

当字幕层显示或隐藏时触发

`,3),Ns=s("div",{className:"run-code"},"▶ Run Code",-1),Vs=n(`
js
var art = new Artplayer({
+

subtitle ​

当字幕层显示或隐藏时触发

`,3),Rs=s("div",{className:"run-code"},"▶ Run Code",-1),Ns=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -358,7 +358,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('subtitle', (state) => {
     console.log(state);
 });
-

contextmenu

当右键菜单显示或隐藏时触发

`,3),Ps=s("div",{className:"run-code"},"▶ Run Code",-1),js=n(`
js
var art = new Artplayer({
+

contextmenu ​

当右键菜单显示或隐藏时触发

`,3),Vs=s("div",{className:"run-code"},"▶ Run Code",-1),js=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -366,7 +366,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('contextmenu', (state) => {
     console.log(state);
 });
-

control

当控制器显示或隐藏时触发

`,3),Is=s("div",{className:"run-code"},"▶ Run Code",-1),zs=n(`
js
var art = new Artplayer({
+

control ​

当控制器显示或隐藏时触发

`,3),Is=s("div",{className:"run-code"},"▶ Run Code",-1),xs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -374,13 +374,4 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('control', (state) => {
     console.log(state);
 });
-

setting

当设置面板显示或隐藏时触发

`,3),Os=s("div",{className:"run-code"},"▶ Run Code",-1),Us=n(`
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    setting: true,
-});
-
-art.on('setting', (state) => {
-    console.log(state);
-});
-

video:canplay

浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容

video:canplaythrough

浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束

video:complete

OfflineAudioContext 渲染完成

video:durationchange

duration 属性的值改变时触发

video:emptied

媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载它

video:ended

视频停止播放,因为 media 已经到达结束点

video:error

获取媒体数据时出错,或者资源类型不是受支持的媒体格式

video:loadeddata

media 中的首帧已经完成加载

video:loadedmetadata

已加载元数据

video:pause

播放已暂停

video:play

播放已开始

video:playing

由于缺乏数据而暂停或延迟后,播放准备开始

video:progress

在浏览器加载资源时周期性触发

video:ratechange

播放速率发生变化

video:seeked

跳帧(seek)操作完成

video:seeking

跳帧(seek)操作开始

video:stalled

用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现

video:suspend

媒体数据加载已暂停

video:timeupdate

currentTime 属性指定的时间发生变化

video:volumechange

音量发生变化

video:waiting

由于暂时缺少数据,播放已停止

`,43),Hs=[r,c,t,D,y,F,i,A,C,d,b,u,h,m,_,g,v,E,T,f,k,S,x,w,R,N,V,P,j,I,z,O,U,H,W,L,$,B,J,q,G,K,M,Q,X,Y,Z,ss,ns,as,ls,ps,es,os,rs,cs,ts,Ds,ys,Fs,is,As,Cs,ds,bs,us,hs,ms,_s,gs,vs,Es,Ts,fs,ks,Ss,xs,ws,Rs,Ns,Vs,Ps,js,Is,zs,Os,Us];function Ws(Ls,$s,Bs,Js,qs,Gs){return e(),p("div",null,Hs)}const Qs=l(o,[["render",Ws]]);export{Ms as __pageData,Qs as default}; +

setting ​

当设置面板显示或隐藏时触发

`,3),zs=s("div",{className:"run-code"},"▶ Run Code",-1),Us=a('
js
var art = new Artplayer({\n    container: '.artplayer-app',\n    url: '/assets/sample/video.mp4',\n    setting: true,\n});\n\nart.on('setting', (state) => {\n    console.log(state);\n});\n

video:canplay ​

浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容

video:canplaythrough ​

浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束

video:complete ​

OfflineAudioContext 渲染完成

video:durationchange ​

duration 属性的值改变时触发

video:emptied ​

媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载它

video:ended ​

视频停止播放,因为 media 已经到达结束点

video:error ​

获取媒体数据时出错,或者资源类型不是受支持的媒体格式

video:loadeddata ​

media 中的首帧已经完成加载

video:loadedmetadata ​

已加载元数据

video:pause ​

播放已暂停

video:play ​

播放已开始

video:playing ​

由于缺乏数据而暂停或延迟后,播放准备开始

video:progress ​

在浏览器加载资源时周期性触发

video:ratechange ​

播放速率发生变化

video:seeked ​

跳帧(seek)操作完成

video:seeking ​

跳帧(seek)操作开始

video:stalled ​

用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现

video:suspend ​

媒体数据加载已暂停

video:timeupdate ​

currentTime 属性指定的时间发生变化

video:volumechange ​

音量发生变化

video:waiting ​

由于暂时缺少数据,播放已停止

',43),Os=[r,c,t,D,F,y,i,A,C,d,b,u,h,m,_,g,v,E,T,f,k,P,S,q,w,R,N,V,j,I,x,z,U,O,H,W,L,$,B,J,G,K,M,Q,X,Y,Z,ss,as,ns,ls,ps,os,es,rs,cs,ts,Ds,Fs,ys,is,As,Cs,ds,bs,us,hs,ms,_s,gs,vs,Es,Ts,fs,ks,Ps,Ss,qs,ws,Rs,Ns,Vs,js,Is,xs,zs,Us];function Hs(Ws,Ls,$s,Bs,Js,Gs){return o(),p("div",null,Os)}const Qs=l(e,[["render",Hs]]);export{Ms as __pageData,Qs as default}; diff --git a/docs/document/assets/advanced_event.md.ff9ebe55.lean.js b/docs/document/assets/advanced_event.md.ff9ebe55.lean.js new file mode 100644 index 000000000..35cfd3107 --- /dev/null +++ b/docs/document/assets/advanced_event.md.ff9ebe55.lean.js @@ -0,0 +1 @@ +import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const Ms=JSON.parse('{"title":"实例事件","description":"","frontmatter":{},"headers":[],"relativePath":"advanced/event.md","lastUpdated":1677245395000}'),e={name:"advanced/event.md"},r=s("h1",{id:"实例事件",tabindex:"-1"},[n("实例事件 "),s("a",{class:"header-anchor",href:"#实例事件","aria-label":'Permalink to "实例事件"'},"​")],-1),c=s("p",null,[n("播放器的事件分为两种,一种视频的 "),s("code",null,"原生事件"),n(" (前缀 "),s("code",null,"video:"),n("),另外一种是 "),s("code",null,"自定义事件")],-1),t=s("p",null,"监听事件:",-1),D=s("div",{className:"run-code"},"▶ Run Code",-1),F=a("",2),y=s("div",{className:"run-code"},"▶ Run Code",-1),i=a("",2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=a("",2),d=s("div",{className:"run-code"},"▶ Run Code",-1),b=a("",4),u=s("div",{className:"run-code"},"▶ Run Code",-1),h=a("",3),m=s("div",{className:"run-code"},"▶ Run Code",-1),_=a("",3),g=s("div",{className:"run-code"},"▶ Run Code",-1),v=a("",3),E=s("div",{className:"run-code"},"▶ Run Code",-1),T=a("",3),f=s("div",{className:"run-code"},"▶ Run Code",-1),k=a("",3),P=s("div",{className:"run-code"},"▶ Run Code",-1),S=a("",3),q=s("div",{className:"run-code"},"▶ Run Code",-1),w=a("",3),R=s("div",{className:"run-code"},"▶ Run Code",-1),N=a("",3),V=s("div",{className:"run-code"},"▶ Run Code",-1),j=a("",3),I=s("div",{className:"run-code"},"▶ Run Code",-1),x=a("",3),z=s("div",{className:"run-code"},"▶ Run Code",-1),U=a("",3),O=s("div",{className:"run-code"},"▶ Run Code",-1),H=a("",3),W=s("div",{className:"run-code"},"▶ Run Code",-1),L=a("",3),$=s("div",{className:"run-code"},"▶ Run Code",-1),B=a("",3),J=s("div",{className:"run-code"},"▶ Run Code",-1),G=a("",3),K=s("div",{className:"run-code"},"▶ Run Code",-1),M=a("",3),Q=s("div",{className:"run-code"},"▶ Run Code",-1),X=a("",3),Y=s("div",{className:"run-code"},"▶ Run Code",-1),Z=a("",3),ss=s("div",{className:"run-code"},"▶ Run Code",-1),as=a("",3),ns=s("div",{className:"run-code"},"▶ Run Code",-1),ls=a("",3),ps=s("div",{className:"run-code"},"▶ Run Code",-1),os=a("",3),es=s("div",{className:"run-code"},"▶ Run Code",-1),rs=a("",3),cs=s("div",{className:"run-code"},"▶ Run Code",-1),ts=a("",3),Ds=s("div",{className:"run-code"},"▶ Run Code",-1),Fs=a("",3),ys=s("div",{className:"run-code"},"▶ Run Code",-1),is=a("",3),As=s("div",{className:"run-code"},"▶ Run Code",-1),Cs=a("",3),ds=s("div",{className:"run-code"},"▶ Run Code",-1),bs=a("",3),us=s("div",{className:"run-code"},"▶ Run Code",-1),hs=a("",3),ms=s("div",{className:"run-code"},"▶ Run Code",-1),_s=a("",3),gs=s("div",{className:"run-code"},"▶ Run Code",-1),vs=a("",3),Es=s("div",{className:"run-code"},"▶ Run Code",-1),Ts=a("",3),fs=s("div",{className:"run-code"},"▶ Run Code",-1),ks=a("",3),Ps=s("div",{className:"run-code"},"▶ Run Code",-1),Ss=a("",3),qs=s("div",{className:"run-code"},"▶ Run Code",-1),ws=a("",3),Rs=s("div",{className:"run-code"},"▶ Run Code",-1),Ns=a("",3),Vs=s("div",{className:"run-code"},"▶ Run Code",-1),js=a("",3),Is=s("div",{className:"run-code"},"▶ Run Code",-1),xs=a("",3),zs=s("div",{className:"run-code"},"▶ Run Code",-1),Us=a("",43),Os=[r,c,t,D,F,y,i,A,C,d,b,u,h,m,_,g,v,E,T,f,k,P,S,q,w,R,N,V,j,I,x,z,U,O,H,W,L,$,B,J,G,K,M,Q,X,Y,Z,ss,as,ns,ls,ps,os,es,rs,cs,ts,Ds,Fs,ys,is,As,Cs,ds,bs,us,hs,ms,_s,gs,vs,Es,Ts,fs,ks,Ps,Ss,qs,ws,Rs,Ns,Vs,js,Is,xs,zs,Us];function Hs(Ws,Ls,$s,Bs,Js,Gs){return o(),p("div",null,Os)}const Qs=l(e,[["render",Hs]]);export{Ms as __pageData,Qs as default}; diff --git a/docs/document/assets/advanced_plugin.md.006d0d66.lean.js b/docs/document/assets/advanced_plugin.md.006d0d66.lean.js deleted file mode 100644 index 856e6a421..000000000 --- a/docs/document/assets/advanced_plugin.md.006d0d66.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const v=JSON.parse('{"title":"编写插件","description":"","frontmatter":{},"headers":[],"relativePath":"advanced/plugin.md","lastUpdated":1673441101000}'),e={name:"advanced/plugin.md"},r=s("h1",{id:"编写插件",tabindex:"-1"},[n("编写插件 "),s("a",{class:"header-anchor",href:"#编写插件","aria-hidden":"true"},"#")],-1),c=s("p",null,[n("但你已经知道播放器的"),s("code",null,"属性"),n(", "),s("code",null,"方法"),n("和"),s("code",null,"事件"),n("后,再编写插件是非常简单的事")],-1),t=s("p",null,"可以在实例化的时候加载插件的函数",-1),F=s("div",{className:"run-code"},"▶ Run Code",-1),D=a("",2),y=s("div",{className:"run-code"},"▶ Run Code",-1),i=a("",2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=a("",1),b=[r,c,t,F,D,y,i,A,C];function u(m,d,h,_,g,E){return o(),p("div",null,b)}const T=l(e,[["render",u]]);export{v as __pageData,T as default}; diff --git a/docs/document/assets/advanced_plugin.md.006d0d66.js b/docs/document/assets/advanced_plugin.md.7759ba7e.js similarity index 93% rename from docs/document/assets/advanced_plugin.md.006d0d66.js rename to docs/document/assets/advanced_plugin.md.7759ba7e.js index 92c2aa685..89dcd9cd2 100644 --- a/docs/document/assets/advanced_plugin.md.006d0d66.js +++ b/docs/document/assets/advanced_plugin.md.7759ba7e.js @@ -1,4 +1,4 @@ -import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const v=JSON.parse('{"title":"编写插件","description":"","frontmatter":{},"headers":[],"relativePath":"advanced/plugin.md","lastUpdated":1673441101000}'),e={name:"advanced/plugin.md"},r=s("h1",{id:"编写插件",tabindex:"-1"},[n("编写插件 "),s("a",{class:"header-anchor",href:"#编写插件","aria-hidden":"true"},"#")],-1),c=s("p",null,[n("但你已经知道播放器的"),s("code",null,"属性"),n(", "),s("code",null,"方法"),n("和"),s("code",null,"事件"),n("后,再编写插件是非常简单的事")],-1),t=s("p",null,"可以在实例化的时候加载插件的函数",-1),F=s("div",{className:"run-code"},"▶ Run Code",-1),D=a(`
js
function myPlugin(art) {
+import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const v=JSON.parse('{"title":"编写插件","description":"","frontmatter":{},"headers":[],"relativePath":"advanced/plugin.md","lastUpdated":1673441101000}'),e={name:"advanced/plugin.md"},r=s("h1",{id:"编写插件",tabindex:"-1"},[n("编写插件 "),s("a",{class:"header-anchor",href:"#编写插件","aria-label":'Permalink to "编写插件"'},"​")],-1),c=s("p",null,[n("但你已经知道播放器的"),s("code",null,"属性"),n(", "),s("code",null,"方法"),n("和"),s("code",null,"事件"),n("后,再编写插件是非常简单的事")],-1),t=s("p",null,"可以在实例化的时候加载插件的函数",-1),F=s("div",{className:"run-code"},"▶ Run Code",-1),D=a(`
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -18,7 +18,7 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const v=JSON.pars
 art.on('ready', () => {
     console.info(art.plugins.myPlugin);
 });
-

可以在实例化之后再加载插件的函数

`,2),y=s("div",{className:"run-code"},"▶ Run Code",-1),i=a(`
js
function myPlugin(art) {
+

可以在实例化之后再加载插件的函数

`,2),y=s("div",{className:"run-code"},"▶ Run Code",-1),i=a(`
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -39,7 +39,7 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const v=JSON.pars
 art.on('ready', () => {
     console.info(art.plugins.myPlugin);
 });
-

例如我想写一个在视频暂停后,显示一个图片广告的插件

`,2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=a(`
js
function adsPlugin(option) {
+

例如我想写一个在视频暂停后,显示一个图片广告的插件

`,2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=a(`
js
function adsPlugin(option) {
     return (art) => {
         art.layers.add({
             name: 'ads',
@@ -99,4 +99,4 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const v=JSON.pars
         })
     ],
 });
-
`,1),b=[r,c,t,F,D,y,i,A,C];function u(m,d,h,_,g,E){return o(),p("div",null,b)}const T=l(e,[["render",u]]);export{v as __pageData,T as default}; +
`,1),b=[r,c,t,F,D,y,i,A,C];function u(m,d,h,_,g,E){return o(),p("div",null,b)}const P=l(e,[["render",u]]);export{v as __pageData,P as default}; diff --git a/docs/document/assets/advanced_plugin.md.7759ba7e.lean.js b/docs/document/assets/advanced_plugin.md.7759ba7e.lean.js new file mode 100644 index 000000000..d203063bc --- /dev/null +++ b/docs/document/assets/advanced_plugin.md.7759ba7e.lean.js @@ -0,0 +1 @@ +import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const v=JSON.parse('{"title":"编写插件","description":"","frontmatter":{},"headers":[],"relativePath":"advanced/plugin.md","lastUpdated":1673441101000}'),e={name:"advanced/plugin.md"},r=s("h1",{id:"编写插件",tabindex:"-1"},[n("编写插件 "),s("a",{class:"header-anchor",href:"#编写插件","aria-label":'Permalink to "编写插件"'},"​")],-1),c=s("p",null,[n("但你已经知道播放器的"),s("code",null,"属性"),n(", "),s("code",null,"方法"),n("和"),s("code",null,"事件"),n("后,再编写插件是非常简单的事")],-1),t=s("p",null,"可以在实例化的时候加载插件的函数",-1),F=s("div",{className:"run-code"},"▶ Run Code",-1),D=a("",2),y=s("div",{className:"run-code"},"▶ Run Code",-1),i=a("",2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=a("",1),b=[r,c,t,F,D,y,i,A,C];function u(m,d,h,_,g,E){return o(),p("div",null,b)}const P=l(e,[["render",u]]);export{v as __pageData,P as default}; diff --git a/docs/document/assets/advanced_property.md.ac8c3af6.js b/docs/document/assets/advanced_property.md.ab237185.js similarity index 80% rename from docs/document/assets/advanced_property.md.ac8c3af6.js rename to docs/document/assets/advanced_property.md.ab237185.js index a8ed7b459..6e3e7886a 100644 --- a/docs/document/assets/advanced_property.md.ac8c3af6.js +++ b/docs/document/assets/advanced_property.md.ab237185.js @@ -1,4 +1,4 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.parse('{"title":"实例属性","description":"","frontmatter":{},"headers":[{"level":2,"title":"play","slug":"play","link":"#play","children":[]},{"level":2,"title":"pause","slug":"pause","link":"#pause","children":[]},{"level":2,"title":"toggle","slug":"toggle","link":"#toggle","children":[]},{"level":2,"title":"destroy","slug":"destroy","link":"#destroy","children":[]},{"level":2,"title":"seek","slug":"seek","link":"#seek","children":[]},{"level":2,"title":"forward","slug":"forward","link":"#forward","children":[]},{"level":2,"title":"backward","slug":"backward","link":"#backward","children":[]},{"level":2,"title":"volume","slug":"volume","link":"#volume","children":[]},{"level":2,"title":"url","slug":"url","link":"#url","children":[]},{"level":2,"title":"switchUrl","slug":"switchurl","link":"#switchurl","children":[]},{"level":2,"title":"switchQuality","slug":"switchquality","link":"#switchquality","children":[]},{"level":2,"title":"muted","slug":"muted","link":"#muted","children":[]},{"level":2,"title":"currentTime","slug":"currenttime","link":"#currenttime","children":[]},{"level":2,"title":"duration","slug":"duration","link":"#duration","children":[]},{"level":2,"title":"screenshot","slug":"screenshot","link":"#screenshot","children":[]},{"level":2,"title":"getDataURL","slug":"getdataurl","link":"#getdataurl","children":[]},{"level":2,"title":"getBlobUrl","slug":"getbloburl","link":"#getbloburl","children":[]},{"level":2,"title":"fullscreen","slug":"fullscreen","link":"#fullscreen","children":[]},{"level":2,"title":"fullscreenWeb","slug":"fullscreenweb","link":"#fullscreenweb","children":[]},{"level":2,"title":"pip","slug":"pip","link":"#pip","children":[]},{"level":2,"title":"poster","slug":"poster","link":"#poster","children":[]},{"level":2,"title":"mini","slug":"mini","link":"#mini","children":[]},{"level":2,"title":"playing","slug":"playing","link":"#playing","children":[]},{"level":2,"title":"autoSize","slug":"autosize","link":"#autosize","children":[]},{"level":2,"title":"rect","slug":"rect","link":"#rect","children":[]},{"level":2,"title":"flip","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"playbackRate","slug":"playbackrate","link":"#playbackrate","children":[]},{"level":2,"title":"aspectRatio","slug":"aspectratio","link":"#aspectratio","children":[]},{"level":2,"title":"loop","slug":"loop","link":"#loop","children":[]},{"level":2,"title":"autoHeight","slug":"autoheight","link":"#autoheight","children":[]},{"level":2,"title":"attr","slug":"attr","link":"#attr","children":[]},{"level":2,"title":"title","slug":"title","link":"#title","children":[]},{"level":2,"title":"type","slug":"type","link":"#type","children":[]},{"level":2,"title":"theme","slug":"theme","link":"#theme","children":[]},{"level":2,"title":"airplay","slug":"airplay","link":"#airplay","children":[]},{"level":2,"title":"loaded","slug":"loaded","link":"#loaded","children":[]},{"level":2,"title":"played","slug":"played","link":"#played","children":[]},{"level":2,"title":"proxy","slug":"proxy","link":"#proxy","children":[]},{"level":2,"title":"query","slug":"query","link":"#query","children":[]},{"level":2,"title":"video","slug":"video","link":"#video","children":[]}],"relativePath":"advanced/property.md","lastUpdated":1674271220000}'),o={name:"advanced/property.md"},e=s('

实例属性

这里的 实例属性 是指挂载在 实例 的 一级属性,比较常用

play

播放视频

',5),r=n("div",{className:"run-code"},"▶ Run Code",-1),c=s(`
js
var art = new Artplayer({
+import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const Ls=JSON.parse('{"title":"实例属性","description":"","frontmatter":{},"headers":[],"relativePath":"advanced/property.md","lastUpdated":1674271220000}'),o={name:"advanced/property.md"},e=s('

实例属性 ​

这里的 实例属性 是指挂载在 实例 的 一级属性,比较常用

play ​

  • Type: Function

播放视频

',5),r=n("div",{className:"run-code"},"▶ Run Code",-1),c=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -7,7 +7,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
 art.on('ready', () => {
     art.play();
 });
-

pause

  • Type: Function

暂停视频

`,4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
+

pause ​

  • Type: Function

暂停视频

`,4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -20,7 +20,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
         art.pause();
     }, 3000);
 });
-

toggle

  • Type: Function

切换视频的播放和暂停

`,4),y=n("div",{className:"run-code"},"▶ Run Code",-1),F=s(`
js
var art = new Artplayer({
+

toggle ​

  • Type: Function

切换视频的播放和暂停

`,4),y=n("div",{className:"run-code"},"▶ Run Code",-1),F=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -33,7 +33,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
         art.toggle();
     }, 3000);
 });
-

destroy

  • Type: Function
  • Parameter: Boolean

销毁播放器,接受一个参数表示是否销毁后同时移除播放器的 html,默认为 true

`,4),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer({
+

destroy ​

  • Type: Function
  • Parameter: Boolean

销毁播放器,接受一个参数表示是否销毁后同时移除播放器的 html,默认为 true

`,4),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -41,7 +41,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
 art.on('ready', () => {
     art.destroy();
 });
-

seek

  • Type: Setter
  • Parameter: Number

视频时间跳转,单位秒

`,4),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer({
+

seek ​

  • Type: Setter
  • Parameter: Number

视频时间跳转,单位秒

`,4),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -49,7 +49,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
 art.on('ready', () => {
     art.seek = 5;
 });
-

forward

  • Type: Setter
  • Parameter: Number

视频时间快进,单位秒

`,4),u=n("div",{className:"run-code"},"▶ Run Code",-1),b=s(`
js
var art = new Artplayer({
+

forward ​

  • Type: Setter
  • Parameter: Number

视频时间快进,单位秒

`,4),b=n("div",{className:"run-code"},"▶ Run Code",-1),u=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -57,7 +57,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
 art.on('ready', () => {
     art.forward = 5;
 });
-

backward

  • Type: Setter
  • Parameter: Number

视频时间快退,单位秒

`,4),h=n("div",{className:"run-code"},"▶ Run Code",-1),m=s(`
js
var art = new Artplayer({
+

backward ​

  • Type: Setter
  • Parameter: Number

视频时间快退,单位秒

`,4),m=n("div",{className:"run-code"},"▶ Run Code",-1),h=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -69,7 +69,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
         art.backward = 2;
     }, 3000);
 });
-

volume

  • Type: Setter/Getter
  • Parameter: Number

设置和获取视频音量,范围在:[0, 1]

`,4),_=n("div",{className:"run-code"},"▶ Run Code",-1),g=s(`
js
var art = new Artplayer({
+

volume ​

  • Type: Setter/Getter
  • Parameter: Number

设置和获取视频音量,范围在:[0, 1]

`,4),_=n("div",{className:"run-code"},"▶ Run Code",-1),g=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -79,7 +79,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     art.volume = 0.5;
     console.info(art.volume);
 });
-

url

  • Type: Setter/Getter
  • Parameter: String

设置和获取视频地址

`,4),v=n("div",{className:"run-code"},"▶ Run Code",-1),T=s(`
js
var art = new Artplayer({
+

url ​

  • Type: Setter/Getter
  • Parameter: String

设置和获取视频地址

`,4),v=n("div",{className:"run-code"},"▶ Run Code",-1),T=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -87,7 +87,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
 art.on('ready', () => {
     art.url = '/assets/sample/video.mp4?t=0';
 });
-

switchUrl

  • Type: Function
  • Parameter: String

设置视频地址,设置时和 url 类似,但会执行一些优化操作

函数支持两个参数,第一个为新的视频地址,第二个为可选新的视频名字

`,5),E=n("div",{className:"run-code"},"▶ Run Code",-1),S=s(`
js
var art = new Artplayer({
+

switchUrl ​

  • Type: Function
  • Parameter: String

设置视频地址,设置时和 url 类似,但会执行一些优化操作

函数支持两个参数,第一个为新的视频地址,第二个为可选新的视频名字

`,5),E=n("div",{className:"run-code"},"▶ Run Code",-1),S=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -98,7 +98,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
         art.switchUrl('/assets/sample/video.mp4?t=0', 'New Video Name');
     }, 3000);
 });
-

switchQuality

  • Type: Function
  • Parameter: String

设置视频画质地址,和 switchUrl 类似,但会带上之前的播放进度

函数支持两个参数,第一个为新的视频地址,第二个为可选新的视频名字

`,5),k=n("div",{className:"run-code"},"▶ Run Code",-1),f=s(`
js
var art = new Artplayer({
+

switchQuality ​

  • Type: Function
  • Parameter: String

设置视频画质地址,和 switchUrl 类似,但会带上之前的播放进度

函数支持两个参数,第一个为新的视频地址,第二个为可选新的视频名字

`,5),P=n("div",{className:"run-code"},"▶ Run Code",-1),k=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -109,7 +109,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
         art.switchQuality('/assets/sample/video.mp4?t=0', '新视频地址');
     }, 3000);
 });
-

muted

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取视频是否静音

`,4),w=n("div",{className:"run-code"},"▶ Run Code",-1),P=s(`
js
var art = new Artplayer({
+

muted ​

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取视频是否静音

`,4),f=n("div",{className:"run-code"},"▶ Run Code",-1),w=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -119,7 +119,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     art.muted = true;
     console.info(art.muted);
 });
-

currentTime

  • Type: Setter/Getter
  • Parameter: Number

设置和获取视频当前时间,设置时间时和 seek 类似,但它不会触发额外的事件

`,4),R=n("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
+

currentTime ​

  • Type: Setter/Getter
  • Parameter: Number

设置和获取视频当前时间,设置时间时和 seek 类似,但它不会触发额外的事件

`,4),R=n("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -129,7 +129,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     art.currentTime = 5;
     console.info(art.currentTime);
 });
-

duration

  • Type: Getter

获取视频时长

`,4),x=n("div",{className:"run-code"},"▶ Run Code",-1),I=s(`
js
var art = new Artplayer({
+

duration ​

  • Type: Getter

获取视频时长

`,4),q=n("div",{className:"run-code"},"▶ Run Code",-1),I=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -137,7 +137,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
 art.on('ready', () => {
     console.info(art.duration);
 });
-

提示

有的视频是没有时长的,例如直播中的视频或者没被解码完成的视频,这个时候获取的时长会是 0

screenshot

  • Type: Function

下载当前视频帧的截图

`,5),V=n("div",{className:"run-code"},"▶ Run Code",-1),j=s(`
js
var art = new Artplayer({
+

提示

有的视频是没有时长的,例如直播中的视频或者没被解码完成的视频,这个时候获取的时长会是 0

screenshot ​

  • Type: Function

下载当前视频帧的截图

`,5),V=n("div",{className:"run-code"},"▶ Run Code",-1),j=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -145,7 +145,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
 art.on('ready', () => {
     art.screenshot();
 });
-

getDataURL

  • Type: Function

获取当前视频帧的截图的base64地址,返回的是一个 Promise

`,4),G=n("div",{className:"run-code"},"▶ Run Code",-1),B=s(`
js
var art = new Artplayer({
+

getDataURL ​

  • Type: Function

获取当前视频帧的截图的base64地址,返回的是一个 Promise

`,4),x=n("div",{className:"run-code"},"▶ Run Code",-1),G=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -154,7 +154,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     const url = await art.getDataURL();
 	console.info(url)
 });
-

getBlobUrl

  • Type: Function

获取当前视频帧的截图的blob地址,返回的是一个 Promise

`,4),q=n("div",{className:"run-code"},"▶ Run Code",-1),z=s(`
js
var art = new Artplayer({
+

getBlobUrl ​

  • Type: Function

获取当前视频帧的截图的blob地址,返回的是一个 Promise

`,4),B=n("div",{className:"run-code"},"▶ Run Code",-1),U=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -163,7 +163,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     const url = await art.getBlobUrl();
     console.info(url);
 });
-

fullscreen

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器窗口全屏

`,4),U=n("div",{className:"run-code"},"▶ Run Code",-1),L=s(`
js
var art = new Artplayer({
+

fullscreen ​

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器窗口全屏

`,4),z=n("div",{className:"run-code"},"▶ Run Code",-1),L=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -176,7 +176,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
         },
     ],
 });
-

提示

由于浏览器安全机制,触发窗口全屏前,页面必须先存在交互(例如用户点击过页面)

fullscreenWeb

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器网页全屏

`,5),O=n("div",{className:"run-code"},"▶ Run Code",-1),W=s(`
js
var art = new Artplayer({
+

提示

由于浏览器安全机制,触发窗口全屏前,页面必须先存在交互(例如用户点击过页面)

fullscreenWeb ​

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器网页全屏

`,5),O=n("div",{className:"run-code"},"▶ Run Code",-1),W=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreenWeb: true,
@@ -189,7 +189,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
         art.fullscreenWeb = false;
     }, 3000);
 });
-

pip

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器画中画模式

`,4),H=n("div",{className:"run-code"},"▶ Run Code",-1),$=s(`
js
var art = new Artplayer({
+

pip ​

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器画中画模式

`,4),H=n("div",{className:"run-code"},"▶ Run Code",-1),$=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -202,7 +202,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
         },
     ],
 });
-

提示

由于浏览器安全机制,触发画中画前,页面必须先存在交互(例如用户点击过页面)

poster

  • Type: Setter/Getter
  • Parameter: String

设置和获取视频海报,只有在视频播放前才能看到海报效果

`,5),M=n("div",{className:"run-code"},"▶ Run Code",-1),Q=s(`
js
var art = new Artplayer({
+

提示

由于浏览器安全机制,触发画中画前,页面必须先存在交互(例如用户点击过页面)

poster ​

  • Type: Setter/Getter
  • Parameter: String

设置和获取视频海报,只有在视频播放前才能看到海报效果

`,5),M=n("div",{className:"run-code"},"▶ Run Code",-1),Q=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     poster: '/assets/sample/poster.jpg',
@@ -213,7 +213,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     art.poster = '/assets/sample/poster.jpg?t=0';
     console.info(art.poster);
 });
-

mini

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器迷你模式

`,4),J=n("div",{className:"run-code"},"▶ Run Code",-1),K=s(`
js
var art = new Artplayer({
+

mini ​

  • Type: Setter/Getter
  • Parameter: Boolean

设置和获取播放器迷你模式

`,4),J=n("div",{className:"run-code"},"▶ Run Code",-1),K=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -221,7 +221,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
 art.on('ready', () => {
     art.mini = true;
 });
-

playing

  • Type: Getter
  • Parameter: Boolean

获取视频是否正在播放中

`,4),X=n("div",{className:"run-code"},"▶ Run Code",-1),Y=s(`
js
var art = new Artplayer({
+

playing ​

  • Type: Getter
  • Parameter: Boolean

获取视频是否正在播放中

`,4),X=n("div",{className:"run-code"},"▶ Run Code",-1),Y=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -230,7 +230,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
 art.on('ready', () => {
     console.info(art.playing);
 });
-

autoSize

  • Type: Setter/Getter
  • Parameter: Boolean

设置视频是否自适应尺寸,设置为 true 之后它会只执行一次

`,4),Z=n("div",{className:"run-code"},"▶ Run Code",-1),ss=s(`
js
var art = new Artplayer({
+

autoSize ​

  • Type: Setter/Getter
  • Parameter: Boolean

设置视频是否自适应尺寸,设置为 true 之后它会只执行一次

`,4),Z=n("div",{className:"run-code"},"▶ Run Code",-1),ss=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -240,7 +240,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     art.autoSize = true;
     console.info(art.autoSize);
 });
-

rect

  • Type: Getter

获取播放器的尺寸和坐标信息

`,4),ns=n("div",{className:"run-code"},"▶ Run Code",-1),as=s(`
js
var art = new Artplayer({
+

rect ​

  • Type: Getter

获取播放器的尺寸和坐标信息

`,4),ns=n("div",{className:"run-code"},"▶ Run Code",-1),as=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -248,7 +248,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
 art.on('ready', () => {
     console.info(JSON.stringify(art.rect));
 });
-

提示

尺寸和坐标信息是通过 getBoundingClientRect 获取的

flip

  • Type: Setter/Getter
  • Parameter: String

设置和获取播放器翻转,支持normal, horizontal, vertical

`,5),ls=n("div",{className:"run-code"},"▶ Run Code",-1),ps=s(`
js
var art = new Artplayer({
+

提示

尺寸和坐标信息是通过 getBoundingClientRect 获取的

flip ​

  • Type: Setter/Getter
  • Parameter: String

设置和获取播放器翻转,支持normal, horizontal, vertical

`,5),ls=n("div",{className:"run-code"},"▶ Run Code",-1),ps=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -258,7 +258,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     art.flip = 'horizontal';
     console.info(art.flip);
 });
-

playbackRate

  • Type: Setter/Getter
  • Parameter: Number

设置和获取播放器播放速度

`,4),os=n("div",{className:"run-code"},"▶ Run Code",-1),es=s(`
js
var art = new Artplayer({
+

playbackRate ​

  • Type: Setter/Getter
  • Parameter: Number

设置和获取播放器播放速度

`,4),os=n("div",{className:"run-code"},"▶ Run Code",-1),es=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -268,7 +268,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     art.playbackRate = 2;
     console.info(art.playbackRate);
 });
-

aspectRatio

  • Type: Setter/Getter
  • Parameter: String

设置和获取播放器长宽比

`,4),rs=n("div",{className:"run-code"},"▶ Run Code",-1),cs=s(`
js
var art = new Artplayer({
+

aspectRatio ​

  • Type: Setter/Getter
  • Parameter: String

设置和获取播放器长宽比

`,4),rs=n("div",{className:"run-code"},"▶ Run Code",-1),cs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -278,7 +278,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     art.aspectRatio = '16:9';
     console.info(art.aspectRatio);
 });
-

loop

  • Type: Setter/Getter
  • Parameter: Array

设置和获取区间循序播放,单位秒

`,4),ts=n("div",{className:"run-code"},"▶ Run Code",-1),Ds=s(`
js
var art = new Artplayer({
+

loop ​

  • Type: Setter/Getter
  • Parameter: Array

设置和获取区间循序播放,单位秒

`,4),ts=n("div",{className:"run-code"},"▶ Run Code",-1),Ds=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -288,7 +288,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     art.loop = [5, 10];
     console.info(art.loop);
 });
-

提示

删除区间循环播放,只需要设置 loop 为 [] 即可

art.loop 与 art.option.loop 是两个不同的东西,请勿弄乱

autoHeight

  • Type: Setter/Getter
  • Parameter: Boolean

当容器只有宽度,该属性可以自动计算出并设置视频的高度,设置为 true 之后它会只执行一次

`,5),ys=n("div",{className:"run-code"},"▶ Run Code",-1),Fs=s(`
js
var art = new Artplayer({
+

提示

删除区间循环播放,只需要设置 loop 为 [] 即可

art.loop 与 art.option.loop 是两个不同的东西,请勿弄乱

autoHeight ​

  • Type: Setter/Getter
  • Parameter: Boolean

当容器只有宽度,该属性可以自动计算出并设置视频的高度,设置为 true 之后它会只执行一次

`,5),ys=n("div",{className:"run-code"},"▶ Run Code",-1),Fs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -300,7 +300,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
 art.on('resize', () => {
     art.autoHeight = true;
 });
-

提示

当你的容器只有宽度,但不知道具体高度时,这个属性很有用,它能自动计算出视频的高度,但你需要确定设置这个属性的时机

attr

  • Type: Function
  • Parameter: String

动态获取和设置 video 元素的属性

`,5),is=n("div",{className:"run-code"},"▶ Run Code",-1),As=s(`
js
var art = new Artplayer({
+

提示

当你的容器只有宽度,但不知道具体高度时,这个属性很有用,它能自动计算出视频的高度,但你需要确定设置这个属性的时机

attr ​

  • Type: Function
  • Parameter: String

动态获取和设置 video 元素的属性

`,5),is=n("div",{className:"run-code"},"▶ Run Code",-1),As=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -310,7 +310,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     art.attr('playsInline', true);
     console.info(art.attr('playsInline'));
 });
-

title

  • Type: Setter/Getter
  • Parameter: String

动态获取和设置播放器标题

`,4),Cs=n("div",{className:"run-code"},"▶ Run Code",-1),ds=s(`
js
var art = new Artplayer({
+

title ​

  • Type: Setter/Getter
  • Parameter: String

动态获取和设置播放器标题

`,4),Cs=n("div",{className:"run-code"},"▶ Run Code",-1),ds=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -320,7 +320,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     art.title = 'New Title';
     console.info(art.title);
 });
-

type

  • Type: Setter/Getter
  • Parameter: String

动态获取和设置视频类型

`,4),us=n("div",{className:"run-code"},"▶ Run Code",-1),bs=s(`
js
var art = new Artplayer({
+

type ​

  • Type: Setter/Getter
  • Parameter: String

动态获取和设置视频类型

`,4),bs=n("div",{className:"run-code"},"▶ Run Code",-1),us=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -330,7 +330,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     art.type = 'm3u8';
     console.info(art.type);
 });
-

theme

  • Type: Setter/Getter
  • Parameter: String

动态获取和设置播放器主题颜色

`,4),hs=n("div",{className:"run-code"},"▶ Run Code",-1),ms=s(`
js
var art = new Artplayer({
+

theme ​

  • Type: Setter/Getter
  • Parameter: String

动态获取和设置播放器主题颜色

`,4),ms=n("div",{className:"run-code"},"▶ Run Code",-1),hs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -340,7 +340,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
     art.theme = '#000';
     console.info(art.theme);
 });
-

airplay

  • Type: Function

开启隔空播放

`,4),_s=n("div",{className:"run-code"},"▶ Run Code",-1),gs=s(`
js
var art = new Artplayer({
+

airplay ​

  • Type: Function

开启隔空播放

`,4),_s=n("div",{className:"run-code"},"▶ Run Code",-1),gs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -353,7 +353,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
         },
     ],
 });
-

loaded

  • Type: Getter

视频缓存的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用

`,4),vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ts=s(`
js
var art = new Artplayer({
+

loaded ​

  • Type: Getter

视频缓存的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用

`,4),vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ts=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -361,7 +361,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
 art.on('video:timeupdate', () => {
     console.info(art.loaded);
 });
-

played

  • Type: Getter

视频播放的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用

`,4),Es=n("div",{className:"run-code"},"▶ Run Code",-1),Ss=s(`
js
var art = new Artplayer({
+

played ​

  • Type: Getter

视频播放的比例,范围是 [0, 1],常配合 video:timeupdate 事件使用

`,4),Es=n("div",{className:"run-code"},"▶ Run Code",-1),Ss=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -369,26 +369,26 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.
 art.on('video:timeupdate', () => {
     console.info(art.played);
 });
-

proxy

  • Type: Function

DOM 事件的代理函数,实质上代理了 addEventListener 和 removeEventListener, 当使用 proxy 来处理事件,播放器销毁时也会自动销毁该事件

`,4),ks=n("div",{className:"run-code"},"▶ Run Code",-1),fs=s(`
js
var container = document.querySelector('.artplayer-app');
+

proxy ​

  • Type: Function

DOM 事件的代理函数,实质上代理了 addEventListener 和 removeEventListener, 当使用 proxy 来处理事件,播放器销毁时也会自动销毁该事件

`,4),Ps=n("div",{className:"run-code"},"▶ Run Code",-1),ks=s(`
js
var container = document.querySelector('.artplayer-app');
 
 var art = new Artplayer({
 	container: container,
 	url: '/assets/sample/video.mp4',
 });
-
+
 art.proxy(container, 'click', event => {
 	console.info(event);
 });
-

提示

假如你需要一些 DOM 事件只存在于播放器的生命周期上时,强烈建议使用该函数,以避免造成内存泄漏

query

  • Type: Function

DOM 的查询函数,类似 document.querySelector,但被查询的对象局限于当前播放器内,可以避免同类名的错误

`,5),ws=n("div",{className:"run-code"},"▶ Run Code",-1),Ps=s(`
js
var art = new Artplayer({
+

提示

假如你需要一些 DOM 事件只存在于播放器的生命周期上时,强烈建议使用该函数,以避免造成内存泄漏

query ​

  • Type: Function

DOM 的查询函数,类似 document.querySelector,但被查询的对象局限于当前播放器内,可以避免同类名的错误

`,5),fs=n("div",{className:"run-code"},"▶ Run Code",-1),ws=s(`
js
var art = new Artplayer({
 	container: '.artplayer-app',
 	url: '/assets/sample/video.mp4',
 });
 
 console.info(art.query('.art-video'));
-

video

  • Type: Element

快捷返回播放器的 video 元素

`,4),Rs=n("div",{className:"run-code"},"▶ Run Code",-1),Ns=s(`
js
var art = new Artplayer({
+

video ​

  • Type: Element

快捷返回播放器的 video 元素

`,4),Rs=n("div",{className:"run-code"},"▶ Run Code",-1),Ns=s(`
js
var art = new Artplayer({
 	container: '.artplayer-app',
 	url: '/assets/sample/video.mp4',
 });
 
 console.info(art.video);
-
`,1),xs=[e,r,c,t,D,y,F,i,A,C,d,u,b,h,m,_,g,v,T,E,S,k,f,w,P,R,N,x,I,V,j,G,B,q,z,U,L,O,W,H,$,M,Q,J,K,X,Y,Z,ss,ns,as,ls,ps,os,es,rs,cs,ts,Ds,ys,Fs,is,As,Cs,ds,us,bs,hs,ms,_s,gs,vs,Ts,Es,Ss,ks,fs,ws,Ps,Rs,Ns];function Is(Vs,js,Gs,Bs,qs,zs){return p(),l("div",null,xs)}const Os=a(o,[["render",Is]]);export{Ls as __pageData,Os as default}; +
`,1),qs=[e,r,c,t,D,y,F,i,A,C,d,b,u,m,h,_,g,v,T,E,S,P,k,f,w,R,N,q,I,V,j,x,G,B,U,z,L,O,W,H,$,M,Q,J,K,X,Y,Z,ss,ns,as,ls,ps,os,es,rs,cs,ts,Ds,ys,Fs,is,As,Cs,ds,bs,us,ms,hs,_s,gs,vs,Ts,Es,Ss,Ps,ks,fs,ws,Rs,Ns];function Is(Vs,js,xs,Gs,Bs,Us){return p(),l("div",null,qs)}const Os=a(o,[["render",Is]]);export{Ls as __pageData,Os as default}; diff --git a/docs/document/assets/advanced_property.md.ab237185.lean.js b/docs/document/assets/advanced_property.md.ab237185.lean.js new file mode 100644 index 000000000..ff2224b1d --- /dev/null +++ b/docs/document/assets/advanced_property.md.ab237185.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const Ls=JSON.parse('{"title":"实例属性","description":"","frontmatter":{},"headers":[],"relativePath":"advanced/property.md","lastUpdated":1674271220000}'),o={name:"advanced/property.md"},e=s("",5),r=n("div",{className:"run-code"},"▶ Run Code",-1),c=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),y=n("div",{className:"run-code"},"▶ Run Code",-1),F=s("",4),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",4),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s("",4),b=n("div",{className:"run-code"},"▶ Run Code",-1),u=s("",4),m=n("div",{className:"run-code"},"▶ Run Code",-1),h=s("",4),_=n("div",{className:"run-code"},"▶ Run Code",-1),g=s("",4),v=n("div",{className:"run-code"},"▶ Run Code",-1),T=s("",5),E=n("div",{className:"run-code"},"▶ Run Code",-1),S=s("",5),P=n("div",{className:"run-code"},"▶ Run Code",-1),k=s("",4),f=n("div",{className:"run-code"},"▶ Run Code",-1),w=s("",4),R=n("div",{className:"run-code"},"▶ Run Code",-1),N=s("",4),q=n("div",{className:"run-code"},"▶ Run Code",-1),I=s("",5),V=n("div",{className:"run-code"},"▶ Run Code",-1),j=s("",4),x=n("div",{className:"run-code"},"▶ Run Code",-1),G=s("",4),B=n("div",{className:"run-code"},"▶ Run Code",-1),U=s("",4),z=n("div",{className:"run-code"},"▶ Run Code",-1),L=s("",5),O=n("div",{className:"run-code"},"▶ Run Code",-1),W=s("",4),H=n("div",{className:"run-code"},"▶ Run Code",-1),$=s("",5),M=n("div",{className:"run-code"},"▶ Run Code",-1),Q=s("",4),J=n("div",{className:"run-code"},"▶ Run Code",-1),K=s("",4),X=n("div",{className:"run-code"},"▶ Run Code",-1),Y=s("",4),Z=n("div",{className:"run-code"},"▶ Run Code",-1),ss=s("",4),ns=n("div",{className:"run-code"},"▶ Run Code",-1),as=s("",5),ls=n("div",{className:"run-code"},"▶ Run Code",-1),ps=s("",4),os=n("div",{className:"run-code"},"▶ Run Code",-1),es=s("",4),rs=n("div",{className:"run-code"},"▶ Run Code",-1),cs=s("",4),ts=n("div",{className:"run-code"},"▶ Run Code",-1),Ds=s("",5),ys=n("div",{className:"run-code"},"▶ Run Code",-1),Fs=s("",5),is=n("div",{className:"run-code"},"▶ Run Code",-1),As=s("",4),Cs=n("div",{className:"run-code"},"▶ Run Code",-1),ds=s("",4),bs=n("div",{className:"run-code"},"▶ Run Code",-1),us=s("",4),ms=n("div",{className:"run-code"},"▶ Run Code",-1),hs=s("",4),_s=n("div",{className:"run-code"},"▶ Run Code",-1),gs=s("",4),vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ts=s("",4),Es=n("div",{className:"run-code"},"▶ Run Code",-1),Ss=s("",4),Ps=n("div",{className:"run-code"},"▶ Run Code",-1),ks=s("",5),fs=n("div",{className:"run-code"},"▶ Run Code",-1),ws=s("",4),Rs=n("div",{className:"run-code"},"▶ Run Code",-1),Ns=s("",1),qs=[e,r,c,t,D,y,F,i,A,C,d,b,u,m,h,_,g,v,T,E,S,P,k,f,w,R,N,q,I,V,j,x,G,B,U,z,L,O,W,H,$,M,Q,J,K,X,Y,Z,ss,ns,as,ls,ps,os,es,rs,cs,ts,Ds,ys,Fs,is,As,Cs,ds,bs,us,ms,hs,_s,gs,vs,Ts,Es,Ss,Ps,ks,fs,ws,Rs,Ns];function Is(Vs,js,xs,Gs,Bs,Us){return p(),l("div",null,qs)}const Os=a(o,[["render",Is]]);export{Ls as __pageData,Os as default}; diff --git a/docs/document/assets/advanced_property.md.ac8c3af6.lean.js b/docs/document/assets/advanced_property.md.ac8c3af6.lean.js deleted file mode 100644 index ab9e53221..000000000 --- a/docs/document/assets/advanced_property.md.ac8c3af6.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ls=JSON.parse('{"title":"实例属性","description":"","frontmatter":{},"headers":[{"level":2,"title":"play","slug":"play","link":"#play","children":[]},{"level":2,"title":"pause","slug":"pause","link":"#pause","children":[]},{"level":2,"title":"toggle","slug":"toggle","link":"#toggle","children":[]},{"level":2,"title":"destroy","slug":"destroy","link":"#destroy","children":[]},{"level":2,"title":"seek","slug":"seek","link":"#seek","children":[]},{"level":2,"title":"forward","slug":"forward","link":"#forward","children":[]},{"level":2,"title":"backward","slug":"backward","link":"#backward","children":[]},{"level":2,"title":"volume","slug":"volume","link":"#volume","children":[]},{"level":2,"title":"url","slug":"url","link":"#url","children":[]},{"level":2,"title":"switchUrl","slug":"switchurl","link":"#switchurl","children":[]},{"level":2,"title":"switchQuality","slug":"switchquality","link":"#switchquality","children":[]},{"level":2,"title":"muted","slug":"muted","link":"#muted","children":[]},{"level":2,"title":"currentTime","slug":"currenttime","link":"#currenttime","children":[]},{"level":2,"title":"duration","slug":"duration","link":"#duration","children":[]},{"level":2,"title":"screenshot","slug":"screenshot","link":"#screenshot","children":[]},{"level":2,"title":"getDataURL","slug":"getdataurl","link":"#getdataurl","children":[]},{"level":2,"title":"getBlobUrl","slug":"getbloburl","link":"#getbloburl","children":[]},{"level":2,"title":"fullscreen","slug":"fullscreen","link":"#fullscreen","children":[]},{"level":2,"title":"fullscreenWeb","slug":"fullscreenweb","link":"#fullscreenweb","children":[]},{"level":2,"title":"pip","slug":"pip","link":"#pip","children":[]},{"level":2,"title":"poster","slug":"poster","link":"#poster","children":[]},{"level":2,"title":"mini","slug":"mini","link":"#mini","children":[]},{"level":2,"title":"playing","slug":"playing","link":"#playing","children":[]},{"level":2,"title":"autoSize","slug":"autosize","link":"#autosize","children":[]},{"level":2,"title":"rect","slug":"rect","link":"#rect","children":[]},{"level":2,"title":"flip","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"playbackRate","slug":"playbackrate","link":"#playbackrate","children":[]},{"level":2,"title":"aspectRatio","slug":"aspectratio","link":"#aspectratio","children":[]},{"level":2,"title":"loop","slug":"loop","link":"#loop","children":[]},{"level":2,"title":"autoHeight","slug":"autoheight","link":"#autoheight","children":[]},{"level":2,"title":"attr","slug":"attr","link":"#attr","children":[]},{"level":2,"title":"title","slug":"title","link":"#title","children":[]},{"level":2,"title":"type","slug":"type","link":"#type","children":[]},{"level":2,"title":"theme","slug":"theme","link":"#theme","children":[]},{"level":2,"title":"airplay","slug":"airplay","link":"#airplay","children":[]},{"level":2,"title":"loaded","slug":"loaded","link":"#loaded","children":[]},{"level":2,"title":"played","slug":"played","link":"#played","children":[]},{"level":2,"title":"proxy","slug":"proxy","link":"#proxy","children":[]},{"level":2,"title":"query","slug":"query","link":"#query","children":[]},{"level":2,"title":"video","slug":"video","link":"#video","children":[]}],"relativePath":"advanced/property.md","lastUpdated":1674271220000}'),o={name:"advanced/property.md"},e=s("",5),r=n("div",{className:"run-code"},"▶ Run Code",-1),c=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),y=n("div",{className:"run-code"},"▶ Run Code",-1),F=s("",4),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",4),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s("",4),u=n("div",{className:"run-code"},"▶ Run Code",-1),b=s("",4),h=n("div",{className:"run-code"},"▶ Run Code",-1),m=s("",4),_=n("div",{className:"run-code"},"▶ Run Code",-1),g=s("",4),v=n("div",{className:"run-code"},"▶ Run Code",-1),T=s("",5),E=n("div",{className:"run-code"},"▶ Run Code",-1),S=s("",5),k=n("div",{className:"run-code"},"▶ Run Code",-1),f=s("",4),w=n("div",{className:"run-code"},"▶ Run Code",-1),P=s("",4),R=n("div",{className:"run-code"},"▶ Run Code",-1),N=s("",4),x=n("div",{className:"run-code"},"▶ Run Code",-1),I=s("",5),V=n("div",{className:"run-code"},"▶ Run Code",-1),j=s("",4),G=n("div",{className:"run-code"},"▶ Run Code",-1),B=s("",4),q=n("div",{className:"run-code"},"▶ Run Code",-1),z=s("",4),U=n("div",{className:"run-code"},"▶ Run Code",-1),L=s("",5),O=n("div",{className:"run-code"},"▶ Run Code",-1),W=s("",4),H=n("div",{className:"run-code"},"▶ Run Code",-1),$=s("",5),M=n("div",{className:"run-code"},"▶ Run Code",-1),Q=s("",4),J=n("div",{className:"run-code"},"▶ Run Code",-1),K=s("",4),X=n("div",{className:"run-code"},"▶ Run Code",-1),Y=s("",4),Z=n("div",{className:"run-code"},"▶ Run Code",-1),ss=s("",4),ns=n("div",{className:"run-code"},"▶ Run Code",-1),as=s("",5),ls=n("div",{className:"run-code"},"▶ Run Code",-1),ps=s("",4),os=n("div",{className:"run-code"},"▶ Run Code",-1),es=s("",4),rs=n("div",{className:"run-code"},"▶ Run Code",-1),cs=s("",4),ts=n("div",{className:"run-code"},"▶ Run Code",-1),Ds=s("",5),ys=n("div",{className:"run-code"},"▶ Run Code",-1),Fs=s("",5),is=n("div",{className:"run-code"},"▶ Run Code",-1),As=s("",4),Cs=n("div",{className:"run-code"},"▶ Run Code",-1),ds=s("",4),us=n("div",{className:"run-code"},"▶ Run Code",-1),bs=s("",4),hs=n("div",{className:"run-code"},"▶ Run Code",-1),ms=s("",4),_s=n("div",{className:"run-code"},"▶ Run Code",-1),gs=s("",4),vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ts=s("",4),Es=n("div",{className:"run-code"},"▶ Run Code",-1),Ss=s("",4),ks=n("div",{className:"run-code"},"▶ Run Code",-1),fs=s("",5),ws=n("div",{className:"run-code"},"▶ Run Code",-1),Ps=s("",4),Rs=n("div",{className:"run-code"},"▶ Run Code",-1),Ns=s("",1),xs=[e,r,c,t,D,y,F,i,A,C,d,u,b,h,m,_,g,v,T,E,S,k,f,w,P,R,N,x,I,V,j,G,B,q,z,U,L,O,W,H,$,M,Q,J,K,X,Y,Z,ss,ns,as,ls,ps,os,es,rs,cs,ts,Ds,ys,Fs,is,As,Cs,ds,us,bs,hs,ms,_s,gs,vs,Ts,Es,Ss,ks,fs,ws,Ps,Rs,Ns];function Is(Vs,js,Gs,Bs,qs,zs){return p(),l("div",null,xs)}const Os=a(o,[["render",Is]]);export{Ls as __pageData,Os as default}; diff --git a/docs/document/assets/app.6018ab40.js b/docs/document/assets/app.6018ab40.js new file mode 100644 index 000000000..9d856ba2e --- /dev/null +++ b/docs/document/assets/app.6018ab40.js @@ -0,0 +1 @@ +import{d as p,O as s,a5 as i,u,h as c,l,a6 as d,a7 as f,a8 as m,a9 as h,aa as A,ab as g,ac as P,ad as v,ae as y,af as C,ag as w,ah as E,ai as _,E as b}from"./chunks/framework.75837252.js";import{t as R}from"./chunks/theme.76ae0cc6.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(R),D=p({name:"VitePressApp",setup(){const{site:e}=u();return c(()=>{l(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),d(),f(),m(),n.setup&&n.setup(),()=>h(n.Layout)}});async function O(){const e=T(),a=S();a.provide(A,e);const t=g(e.route);return a.provide(P,t),a.component("Content",v),a.component("ClientOnly",y),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:C}),{app:a,router:e,data:t}}function S(){return w(D)}function T(){let e=s,a;return E(t=>{let o=_(t);return e&&(a=o),(e||a===o)&&(o=o.replace(/\.js$/,".lean.js")),s&&(e=!1),b(()=>import(o),[])},n.NotFound)}s&&O().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{O as createApp}; diff --git a/docs/document/assets/app.77a2ba76.js b/docs/document/assets/app.77a2ba76.js deleted file mode 100644 index 36d18e008..000000000 --- a/docs/document/assets/app.77a2ba76.js +++ /dev/null @@ -1,8 +0,0 @@ -function Js(e,t){const n=Object.create(null),s=e.split(",");for(let o=0;o!!n[o.toLowerCase()]:o=>!!n[o]}function Zs(e){if(Z(e)){const t={};for(let n=0;n{if(n){const s=n.split(cl);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function ve(e){let t="";if(be(e))t=e;else if(Z(e))for(let n=0;nbe(e)?e:e==null?"":Z(e)||ge(e)&&(e.toString===Di||!se(e.toString))?JSON.stringify(e,Fi,2):String(e),Fi=(e,t)=>t&&t.__v_isRef?Fi(e,t.value):Rt(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,o])=>(n[`${s} =>`]=o,n),{})}:Hi(t)?{[`Set(${t.size})`]:[...t.values()]}:ge(t)&&!Z(t)&&!ji(t)?String(t):t,me={},Ht=[],We=()=>{},hl=()=>!1,pl=/^on[^a-z]/,kn=e=>pl.test(e),eo=e=>e.startsWith("onUpdate:"),$e=Object.assign,to=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},_l=Object.prototype.hasOwnProperty,ae=(e,t)=>_l.call(e,t),Z=Array.isArray,Rt=e=>ts(e)==="[object Map]",Hi=e=>ts(e)==="[object Set]",se=e=>typeof e=="function",be=e=>typeof e=="string",no=e=>typeof e=="symbol",ge=e=>e!==null&&typeof e=="object",Ri=e=>ge(e)&&se(e.then)&&se(e.catch),Di=Object.prototype.toString,ts=e=>Di.call(e),ml=e=>ts(e).slice(8,-1),ji=e=>ts(e)==="[object Object]",so=e=>be(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ln=Js(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),ns=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},vl=/-(\w)/g,et=ns(e=>e.replace(vl,(t,n)=>n?n.toUpperCase():"")),gl=/\B([A-Z])/g,Xt=ns(e=>e.replace(gl,"-$1").toLowerCase()),ss=ns(e=>e.charAt(0).toUpperCase()+e.slice(1)),bs=ns(e=>e?`on${ss(e)}`:""),_n=(e,t)=>!Object.is(e,t),Fn=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Vs=e=>{const t=parseFloat(e);return isNaN(t)?e:t},yl=e=>{const t=be(e)?Number(e):NaN;return isNaN(t)?e:t};let Bo;const bl=()=>Bo||(Bo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let Be;class xl{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Be,!t&&Be&&(this.index=(Be.scopes||(Be.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Be;try{return Be=this,t()}finally{Be=n}}}on(){Be=this}off(){Be=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Ui=e=>(e.w&mt)>0,qi=e=>(e.n&mt)>0,$l=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(f==="length"||f>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(r.get(n)),t){case"add":Z(e)?so(n)&&l.push(r.get("length")):(l.push(r.get(Vt)),Rt(e)&&l.push(r.get(Ns)));break;case"delete":Z(e)||(l.push(r.get(Vt)),Rt(e)&&l.push(r.get(Ns)));break;case"set":Rt(e)&&l.push(r.get(Vt));break}if(l.length===1)l[0]&&Os(l[0]);else{const c=[];for(const a of l)a&&c.push(...a);Os(oo(c))}}function Os(e,t){const n=Z(e)?e:[...e];for(const s of n)s.computed&&Ho(s);for(const s of n)s.computed||Ho(s)}function Ho(e,t){(e!==qe||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const Cl=Js("__proto__,__v_isRef,__isVue"),Gi=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(no)),Sl=ro(),Tl=ro(!1,!0),Al=ro(!0),Ro=Ll();function Ll(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=ue(this);for(let i=0,r=this.length;i{e[t]=function(...n){Jt();const s=ue(this)[t].apply(this,n);return Zt(),s}}),e}function El(e){const t=ue(this);return Ie(t,"has",e),t.hasOwnProperty(e)}function ro(e=!1,t=!1){return function(s,o,i){if(o==="__v_isReactive")return!e;if(o==="__v_isReadonly")return e;if(o==="__v_isShallow")return t;if(o==="__v_raw"&&i===(e?t?Wl:Zi:t?Ji:Xi).get(s))return s;const r=Z(s);if(!e){if(r&&ae(Ro,o))return Reflect.get(Ro,o,i);if(o==="hasOwnProperty")return El}const l=Reflect.get(s,o,i);return(no(o)?Gi.has(o):Cl(o))||(e||Ie(s,"get",o),t)?l:Te(l)?r&&so(o)?l:l.value:ge(l)?e?ao(l):is(l):l}}const Vl=Yi(),Ml=Yi(!0);function Yi(e=!1){return function(n,s,o,i){let r=n[s];if(Wt(r)&&Te(r)&&!Te(o))return!1;if(!e&&(!zn(o)&&!Wt(o)&&(r=ue(r),o=ue(o)),!Z(n)&&Te(r)&&!Te(o)))return r.value=o,!0;const l=Z(n)&&so(s)?Number(s)e,os=e=>Reflect.getPrototypeOf(e);function Sn(e,t,n=!1,s=!1){e=e.__v_raw;const o=ue(e),i=ue(t);n||(t!==i&&Ie(o,"get",t),Ie(o,"get",i));const{has:r}=os(o),l=s?lo:n?fo:mn;if(r.call(o,t))return l(e.get(t));if(r.call(o,i))return l(e.get(i));e!==o&&e.get(t)}function Tn(e,t=!1){const n=this.__v_raw,s=ue(n),o=ue(e);return t||(e!==o&&Ie(s,"has",e),Ie(s,"has",o)),e===o?n.has(e):n.has(e)||n.has(o)}function An(e,t=!1){return e=e.__v_raw,!t&&Ie(ue(e),"iterate",Vt),Reflect.get(e,"size",e)}function Do(e){e=ue(e);const t=ue(this);return os(t).has.call(t,e)||(t.add(e),it(t,"add",e,e)),this}function jo(e,t){t=ue(t);const n=ue(this),{has:s,get:o}=os(n);let i=s.call(n,e);i||(e=ue(e),i=s.call(n,e));const r=o.call(n,e);return n.set(e,t),i?_n(t,r)&&it(n,"set",e,t):it(n,"add",e,t),this}function zo(e){const t=ue(this),{has:n,get:s}=os(t);let o=n.call(t,e);o||(e=ue(e),o=n.call(t,e)),s&&s.call(t,e);const i=t.delete(e);return o&&it(t,"delete",e,void 0),i}function Uo(){const e=ue(this),t=e.size!==0,n=e.clear();return t&&it(e,"clear",void 0,void 0),n}function Ln(e,t){return function(s,o){const i=this,r=i.__v_raw,l=ue(r),c=t?lo:e?fo:mn;return!e&&Ie(l,"iterate",Vt),r.forEach((a,f)=>s.call(o,c(a),c(f),i))}}function En(e,t,n){return function(...s){const o=this.__v_raw,i=ue(o),r=Rt(i),l=e==="entries"||e===Symbol.iterator&&r,c=e==="keys"&&r,a=o[e](...s),f=n?lo:t?fo:mn;return!t&&Ie(i,"iterate",c?Ns:Vt),{next(){const{value:d,done:_}=a.next();return _?{value:d,done:_}:{value:l?[f(d[0]),f(d[1])]:f(d),done:_}},[Symbol.iterator](){return this}}}}function ct(e){return function(...t){return e==="delete"?!1:this}}function Hl(){const e={get(i){return Sn(this,i)},get size(){return An(this)},has:Tn,add:Do,set:jo,delete:zo,clear:Uo,forEach:Ln(!1,!1)},t={get(i){return Sn(this,i,!1,!0)},get size(){return An(this)},has:Tn,add:Do,set:jo,delete:zo,clear:Uo,forEach:Ln(!1,!0)},n={get(i){return Sn(this,i,!0)},get size(){return An(this,!0)},has(i){return Tn.call(this,i,!0)},add:ct("add"),set:ct("set"),delete:ct("delete"),clear:ct("clear"),forEach:Ln(!0,!1)},s={get(i){return Sn(this,i,!0,!0)},get size(){return An(this,!0)},has(i){return Tn.call(this,i,!0)},add:ct("add"),set:ct("set"),delete:ct("delete"),clear:ct("clear"),forEach:Ln(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=En(i,!1,!1),n[i]=En(i,!0,!1),t[i]=En(i,!1,!0),s[i]=En(i,!0,!0)}),[e,n,t,s]}const[Rl,Dl,jl,zl]=Hl();function co(e,t){const n=t?e?zl:jl:e?Dl:Rl;return(s,o,i)=>o==="__v_isReactive"?!e:o==="__v_isReadonly"?e:o==="__v_raw"?s:Reflect.get(ae(n,o)&&o in s?n:s,o,i)}const Ul={get:co(!1,!1)},ql={get:co(!1,!0)},Kl={get:co(!0,!1)},Xi=new WeakMap,Ji=new WeakMap,Zi=new WeakMap,Wl=new WeakMap;function Gl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Yl(e){return e.__v_skip||!Object.isExtensible(e)?0:Gl(ml(e))}function is(e){return Wt(e)?e:uo(e,!1,Qi,Ul,Xi)}function Ql(e){return uo(e,!1,Fl,ql,Ji)}function ao(e){return uo(e,!0,Bl,Kl,Zi)}function uo(e,t,n,s,o){if(!ge(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=o.get(e);if(i)return i;const r=Yl(e);if(r===0)return e;const l=new Proxy(e,r===2?s:n);return o.set(e,l),l}function Dt(e){return Wt(e)?Dt(e.__v_raw):!!(e&&e.__v_isReactive)}function Wt(e){return!!(e&&e.__v_isReadonly)}function zn(e){return!!(e&&e.__v_isShallow)}function er(e){return Dt(e)||Wt(e)}function ue(e){const t=e&&e.__v_raw;return t?ue(t):e}function cn(e){return jn(e,"__v_skip",!0),e}const mn=e=>ge(e)?is(e):e,fo=e=>ge(e)?ao(e):e;function tr(e){pt&&qe&&(e=ue(e),Wi(e.dep||(e.dep=oo())))}function nr(e,t){e=ue(e);const n=e.dep;n&&Os(n)}function Te(e){return!!(e&&e.__v_isRef===!0)}function oe(e){return sr(e,!1)}function Xl(e){return sr(e,!0)}function sr(e,t){return Te(e)?e:new Jl(e,t)}class Jl{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:ue(t),this._value=n?t:mn(t)}get value(){return tr(this),this._value}set value(t){const n=this.__v_isShallow||zn(t)||Wt(t);t=n?t:ue(t),_n(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:mn(t),nr(this))}}function m(e){return Te(e)?e.value:e}const Zl={get:(e,t,n)=>m(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const o=e[t];return Te(o)&&!Te(n)?(o.value=n,!0):Reflect.set(e,t,n,s)}};function or(e){return Dt(e)?e:new Proxy(e,Zl)}var ir;class ec{constructor(t,n,s,o){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[ir]=!1,this._dirty=!0,this.effect=new io(t,()=>{this._dirty||(this._dirty=!0,nr(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=s}get value(){const t=ue(this);return tr(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}ir="__v_isReadonly";function tc(e,t,n=!1){let s,o;const i=se(e);return i?(s=e,o=We):(s=e.get,o=e.set),new ec(s,o,i||!o,n)}function _t(e,t,n,s){let o;try{o=s?e(...s):e()}catch(i){rs(i,t,n)}return o}function De(e,t,n,s){if(se(e)){const i=_t(e,t,n,s);return i&&Ri(i)&&i.catch(r=>{rs(r,t,n)}),i}const o=[];for(let i=0;i>>1;gn(Se[s])Je&&Se.splice(t,1)}function ic(e){Z(e)?jt.push(...e):(!ot||!ot.includes(e,e.allowRecurse?St+1:St))&&jt.push(e),lr()}function qo(e,t=vn?Je+1:0){for(;tgn(n)-gn(s)),St=0;Ste.id==null?1/0:e.id,rc=(e,t)=>{const n=gn(e)-gn(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function cr(e){Bs=!1,vn=!0,Se.sort(rc);const t=We;try{for(Je=0;Jebe(v)?v.trim():v)),d&&(o=n.map(Vs))}let l,c=s[l=bs(t)]||s[l=bs(et(t))];!c&&i&&(c=s[l=bs(Xt(t))]),c&&De(c,e,6,o);const a=s[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,De(a,e,6,o)}}function ar(e,t,n=!1){const s=t.emitsCache,o=s.get(e);if(o!==void 0)return o;const i=e.emits;let r={},l=!1;if(!se(e)){const c=a=>{const f=ar(a,t,!0);f&&(l=!0,$e(r,f))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(ge(e)&&s.set(e,null),null):(Z(i)?i.forEach(c=>r[c]=null):$e(r,i),ge(e)&&s.set(e,r),r)}function ls(e,t){return!e||!kn(t)?!1:(t=t.slice(2).replace(/Once$/,""),ae(e,t[0].toLowerCase()+t.slice(1))||ae(e,Xt(t))||ae(e,t))}let ke=null,cs=null;function qn(e){const t=ke;return ke=e,cs=e&&e.type.__scopeId||null,t}function tt(e){cs=e}function nt(){cs=null}function N(e,t=ke,n){if(!t||e._n)return e;const s=(...o)=>{s._d&&si(-1);const i=qn(t);let r;try{r=e(...o)}finally{qn(i),s._d&&si(1)}return r};return s._n=!0,s._c=!0,s._d=!0,s}function xs(e){const{type:t,vnode:n,proxy:s,withProxy:o,props:i,propsOptions:[r],slots:l,attrs:c,emit:a,render:f,renderCache:d,data:_,setupState:v,ctx:S,inheritAttrs:A}=e;let Y,b;const w=qn(e);try{if(n.shapeFlag&4){const B=o||s;Y=Ue(f.call(B,B,d,i,v,_,S)),b=c}else{const B=t;Y=Ue(B.length>1?B(i,{attrs:c,slots:l,emit:a}):B(i,null)),b=t.props?c:cc(c)}}catch(B){dn.length=0,rs(B,e,1),Y=I(Fe)}let P=Y;if(b&&A!==!1){const B=Object.keys(b),{shapeFlag:F}=P;B.length&&F&7&&(r&&B.some(eo)&&(b=ac(b,r)),P=vt(P,b))}return n.dirs&&(P=vt(P),P.dirs=P.dirs?P.dirs.concat(n.dirs):n.dirs),n.transition&&(P.transition=n.transition),Y=P,qn(w),Y}const cc=e=>{let t;for(const n in e)(n==="class"||n==="style"||kn(n))&&((t||(t={}))[n]=e[n]);return t},ac=(e,t)=>{const n={};for(const s in e)(!eo(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function uc(e,t,n){const{props:s,children:o,component:i}=e,{props:r,children:l,patchFlag:c}=t,a=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Ko(s,r,a):!!r;if(c&8){const f=t.dynamicProps;for(let d=0;de.__isSuspense;function ur(e,t){t&&t.pendingBranch?Z(e)?t.effects.push(...e):t.effects.push(e):ic(e)}function zt(e,t){if(xe){let n=xe.provides;const s=xe.parent&&xe.parent.provides;s===n&&(n=xe.provides=Object.create(s)),n[e]=t}}function Ge(e,t,n=!1){const s=xe||ke;if(s){const o=s.parent==null?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return n&&se(t)?t.call(s.proxy):t}}function It(e,t){return as(e,null,t)}function hc(e,t){return as(e,null,{flush:"post"})}const Vn={};function Ze(e,t,n){return as(e,t,n)}function as(e,t,{immediate:n,deep:s,flush:o,onTrack:i,onTrigger:r}=me){const l=zi()===(xe==null?void 0:xe.scope)?xe:null;let c,a=!1,f=!1;if(Te(e)?(c=()=>e.value,a=zn(e)):Dt(e)?(c=()=>e,s=!0):Z(e)?(f=!0,a=e.some(P=>Dt(P)||zn(P)),c=()=>e.map(P=>{if(Te(P))return P.value;if(Dt(P))return Et(P);if(se(P))return _t(P,l,2)})):se(e)?t?c=()=>_t(e,l,2):c=()=>{if(!(l&&l.isUnmounted))return d&&d(),De(e,l,3,[_])}:c=We,t&&s){const P=c;c=()=>Et(P())}let d,_=P=>{d=b.onStop=()=>{_t(P,l,4)}},v;if(xn)if(_=We,t?n&&De(t,l,3,[c(),f?[]:void 0,_]):c(),o==="sync"){const P=ca();v=P.__watcherHandles||(P.__watcherHandles=[])}else return We;let S=f?new Array(e.length).fill(Vn):Vn;const A=()=>{if(b.active)if(t){const P=b.run();(s||a||(f?P.some((B,F)=>_n(B,S[F])):_n(P,S)))&&(d&&d(),De(t,l,3,[P,S===Vn?void 0:f&&S[0]===Vn?[]:S,_]),S=P)}else b.run()};A.allowRecurse=!!t;let Y;o==="sync"?Y=A:o==="post"?Y=()=>Ve(A,l&&l.suspense):(A.pre=!0,l&&(A.id=l.uid),Y=()=>_o(A));const b=new io(c,Y);t?n?A():S=b.run():o==="post"?Ve(b.run.bind(b),l&&l.suspense):b.run();const w=()=>{b.stop(),l&&l.scope&&to(l.scope.effects,b)};return v&&v.push(w),w}function pc(e,t,n){const s=this.proxy,o=be(e)?e.includes(".")?fr(s,e):()=>s[e]:e.bind(s,s);let i;se(t)?i=t:(i=t.handler,n=t);const r=xe;Yt(this);const l=as(o,i.bind(s),n);return r?Yt(r):Mt(),l}function fr(e,t){const n=t.split(".");return()=>{let s=e;for(let o=0;o{Et(n,t)});else if(ji(e))for(const n in e)Et(e[n],t);return e}function _c(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return je(()=>{e.isMounted=!0}),mr(()=>{e.isUnmounting=!0}),e}const He=[Function,Array],mc={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:He,onEnter:He,onAfterEnter:He,onEnterCancelled:He,onBeforeLeave:He,onLeave:He,onAfterLeave:He,onLeaveCancelled:He,onBeforeAppear:He,onAppear:He,onAfterAppear:He,onAppearCancelled:He},setup(e,{slots:t}){const n=wo(),s=_c();let o;return()=>{const i=t.default&&pr(t.default(),!0);if(!i||!i.length)return;let r=i[0];if(i.length>1){for(const A of i)if(A.type!==Fe){r=A;break}}const l=ue(e),{mode:c}=l;if(s.isLeaving)return ws(r);const a=Wo(r);if(!a)return ws(r);const f=Fs(a,l,s,n);Hs(a,f);const d=n.subTree,_=d&&Wo(d);let v=!1;const{getTransitionKey:S}=a.type;if(S){const A=S();o===void 0?o=A:A!==o&&(o=A,v=!0)}if(_&&_.type!==Fe&&(!Tt(a,_)||v)){const A=Fs(_,l,s,n);if(Hs(_,A),c==="out-in")return s.isLeaving=!0,A.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&n.update()},ws(r);c==="in-out"&&a.type!==Fe&&(A.delayLeave=(Y,b,w)=>{const P=hr(s,_);P[String(_.key)]=_,Y._leaveCb=()=>{b(),Y._leaveCb=void 0,delete f.delayedLeave},f.delayedLeave=w})}return r}}},dr=mc;function hr(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function Fs(e,t,n,s){const{appear:o,mode:i,persisted:r=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:f,onBeforeLeave:d,onLeave:_,onAfterLeave:v,onLeaveCancelled:S,onBeforeAppear:A,onAppear:Y,onAfterAppear:b,onAppearCancelled:w}=t,P=String(e.key),B=hr(n,e),F=(V,Q)=>{V&&De(V,s,9,Q)},X=(V,Q)=>{const J=Q[1];F(V,Q),Z(V)?V.every(ie=>ie.length<=1)&&J():V.length<=1&&J()},z={mode:i,persisted:r,beforeEnter(V){let Q=l;if(!n.isMounted)if(o)Q=A||l;else return;V._leaveCb&&V._leaveCb(!0);const J=B[P];J&&Tt(e,J)&&J.el._leaveCb&&J.el._leaveCb(),F(Q,[V])},enter(V){let Q=c,J=a,ie=f;if(!n.isMounted)if(o)Q=Y||c,J=b||a,ie=w||f;else return;let H=!1;const re=V._enterCb=U=>{H||(H=!0,U?F(ie,[V]):F(J,[V]),z.delayedLeave&&z.delayedLeave(),V._enterCb=void 0)};Q?X(Q,[V,re]):re()},leave(V,Q){const J=String(e.key);if(V._enterCb&&V._enterCb(!0),n.isUnmounting)return Q();F(d,[V]);let ie=!1;const H=V._leaveCb=re=>{ie||(ie=!0,Q(),re?F(S,[V]):F(v,[V]),V._leaveCb=void 0,B[J]===e&&delete B[J])};B[J]=e,_?X(_,[V,H]):H()},clone(V){return Fs(V,t,n,s)}};return z}function ws(e){if(us(e))return e=vt(e),e.children=null,e}function Wo(e){return us(e)?e.children?e.children[0]:void 0:e}function Hs(e,t){e.shapeFlag&6&&e.component?Hs(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function pr(e,t=!1,n){let s=[],o=0;for(let i=0;i1)for(let i=0;i!!e.type.__asyncLoader,us=e=>e.type.__isKeepAlive;function vc(e,t){_r(e,"a",t)}function gc(e,t){_r(e,"da",t)}function _r(e,t,n=xe){const s=e.__wdc||(e.__wdc=()=>{let o=n;for(;o;){if(o.isDeactivated)return;o=o.parent}return e()});if(fs(t,s,n),n){let o=n.parent;for(;o&&o.parent;)us(o.parent.vnode)&&yc(s,t,n,o),o=o.parent}}function yc(e,t,n,s){const o=fs(t,e,s,!0);en(()=>{to(s[t],o)},n)}function fs(e,t,n=xe,s=!1){if(n){const o=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...r)=>{if(n.isUnmounted)return;Jt(),Yt(n);const l=De(t,n,e,r);return Mt(),Zt(),l});return s?o.unshift(i):o.push(i),i}}const rt=e=>(t,n=xe)=>(!xn||e==="sp")&&fs(e,(...s)=>t(...s),n),bc=rt("bm"),je=rt("m"),xc=rt("bu"),mo=rt("u"),mr=rt("bum"),en=rt("um"),wc=rt("sp"),kc=rt("rtg"),$c=rt("rtc");function Pc(e,t=xe){fs("ec",e,t)}function Go(e,t){const n=ke;if(n===null)return e;const s=hs(n)||n.proxy,o=e.dirs||(e.dirs=[]);for(let i=0;it(r,l,void 0,i&&i[l]));else{const r=Object.keys(e);o=new Array(r.length);for(let l=0,c=r.length;lGn(t)?!(t.type===Fe||t.type===ne&&!yr(t.children)):!0)?e:null}const Rs=e=>e?Lr(e)?hs(e)||e.proxy:Rs(e.parent):null,an=$e(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Rs(e.parent),$root:e=>Rs(e.root),$emit:e=>e.emit,$options:e=>go(e),$forceUpdate:e=>e.f||(e.f=()=>_o(e.update)),$nextTick:e=>e.n||(e.n=po.bind(e.proxy)),$watch:e=>pc.bind(e)}),ks=(e,t)=>e!==me&&!e.__isScriptSetup&&ae(e,t),Cc={get({_:e},t){const{ctx:n,setupState:s,data:o,props:i,accessCache:r,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const v=r[t];if(v!==void 0)switch(v){case 1:return s[t];case 2:return o[t];case 4:return n[t];case 3:return i[t]}else{if(ks(s,t))return r[t]=1,s[t];if(o!==me&&ae(o,t))return r[t]=2,o[t];if((a=e.propsOptions[0])&&ae(a,t))return r[t]=3,i[t];if(n!==me&&ae(n,t))return r[t]=4,n[t];Ds&&(r[t]=0)}}const f=an[t];let d,_;if(f)return t==="$attrs"&&Ie(e,"get",t),f(e);if((d=l.__cssModules)&&(d=d[t]))return d;if(n!==me&&ae(n,t))return r[t]=4,n[t];if(_=c.config.globalProperties,ae(_,t))return _[t]},set({_:e},t,n){const{data:s,setupState:o,ctx:i}=e;return ks(o,t)?(o[t]=n,!0):s!==me&&ae(s,t)?(s[t]=n,!0):ae(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:o,propsOptions:i}},r){let l;return!!n[r]||e!==me&&ae(e,r)||ks(t,r)||(l=i[0])&&ae(l,r)||ae(s,r)||ae(an,r)||ae(o.config.globalProperties,r)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ae(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let Ds=!0;function Sc(e){const t=go(e),n=e.proxy,s=e.ctx;Ds=!1,t.beforeCreate&&Qo(t.beforeCreate,e,"bc");const{data:o,computed:i,methods:r,watch:l,provide:c,inject:a,created:f,beforeMount:d,mounted:_,beforeUpdate:v,updated:S,activated:A,deactivated:Y,beforeDestroy:b,beforeUnmount:w,destroyed:P,unmounted:B,render:F,renderTracked:X,renderTriggered:z,errorCaptured:V,serverPrefetch:Q,expose:J,inheritAttrs:ie,components:H,directives:re,filters:U}=t;if(a&&Tc(a,s,null,e.appContext.config.unwrapInjectedRef),r)for(const ye in r){const pe=r[ye];se(pe)&&(s[ye]=pe.bind(n))}if(o){const ye=o.call(n,n);ge(ye)&&(e.data=is(ye))}if(Ds=!0,i)for(const ye in i){const pe=i[ye],xt=se(pe)?pe.bind(n,n):se(pe.get)?pe.get.bind(n,n):We,Pn=!se(pe)&&se(pe.set)?pe.set.bind(n):We,wt=G({get:xt,set:Pn});Object.defineProperty(s,ye,{enumerable:!0,configurable:!0,get:()=>wt.value,set:Ye=>wt.value=Ye})}if(l)for(const ye in l)br(l[ye],s,n,ye);if(c){const ye=se(c)?c.call(n):c;Reflect.ownKeys(ye).forEach(pe=>{zt(pe,ye[pe])})}f&&Qo(f,e,"c");function de(ye,pe){Z(pe)?pe.forEach(xt=>ye(xt.bind(n))):pe&&ye(pe.bind(n))}if(de(bc,d),de(je,_),de(xc,v),de(mo,S),de(vc,A),de(gc,Y),de(Pc,V),de($c,X),de(kc,z),de(mr,w),de(en,B),de(wc,Q),Z(J))if(J.length){const ye=e.exposed||(e.exposed={});J.forEach(pe=>{Object.defineProperty(ye,pe,{get:()=>n[pe],set:xt=>n[pe]=xt})})}else e.exposed||(e.exposed={});F&&e.render===We&&(e.render=F),ie!=null&&(e.inheritAttrs=ie),H&&(e.components=H),re&&(e.directives=re)}function Tc(e,t,n=We,s=!1){Z(e)&&(e=js(e));for(const o in e){const i=e[o];let r;ge(i)?"default"in i?r=Ge(i.from||o,i.default,!0):r=Ge(i.from||o):r=Ge(i),Te(r)&&s?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>r.value,set:l=>r.value=l}):t[o]=r}}function Qo(e,t,n){De(Z(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function br(e,t,n,s){const o=s.includes(".")?fr(n,s):()=>n[s];if(be(e)){const i=t[e];se(i)&&Ze(o,i)}else if(se(e))Ze(o,e.bind(n));else if(ge(e))if(Z(e))e.forEach(i=>br(i,t,n,s));else{const i=se(e.handler)?e.handler.bind(n):t[e.handler];se(i)&&Ze(o,i,e)}}function go(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:o,optionsCache:i,config:{optionMergeStrategies:r}}=e.appContext,l=i.get(t);let c;return l?c=l:!o.length&&!n&&!s?c=t:(c={},o.length&&o.forEach(a=>Kn(c,a,r,!0)),Kn(c,t,r)),ge(t)&&i.set(t,c),c}function Kn(e,t,n,s=!1){const{mixins:o,extends:i}=t;i&&Kn(e,i,n,!0),o&&o.forEach(r=>Kn(e,r,n,!0));for(const r in t)if(!(s&&r==="expose")){const l=Ac[r]||n&&n[r];e[r]=l?l(e[r],t[r]):t[r]}return e}const Ac={data:Xo,props:Ct,emits:Ct,methods:Ct,computed:Ct,beforeCreate:Le,created:Le,beforeMount:Le,mounted:Le,beforeUpdate:Le,updated:Le,beforeDestroy:Le,beforeUnmount:Le,destroyed:Le,unmounted:Le,activated:Le,deactivated:Le,errorCaptured:Le,serverPrefetch:Le,components:Ct,directives:Ct,watch:Ec,provide:Xo,inject:Lc};function Xo(e,t){return t?e?function(){return $e(se(e)?e.call(this,this):e,se(t)?t.call(this,this):t)}:t:e}function Lc(e,t){return Ct(js(e),js(t))}function js(e){if(Z(e)){const t={};for(let n=0;n0)&&!(r&16)){if(r&8){const f=e.vnode.dynamicProps;for(let d=0;d{c=!0;const[_,v]=wr(d,t,!0);$e(r,_),v&&l.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}if(!i&&!c)return ge(e)&&s.set(e,Ht),Ht;if(Z(i))for(let f=0;f-1,v[1]=A<0||S-1||ae(v,"default"))&&l.push(d)}}}const a=[r,l];return ge(e)&&s.set(e,a),a}function Jo(e){return e[0]!=="$"}function Zo(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function ei(e,t){return Zo(e)===Zo(t)}function ti(e,t){return Z(t)?t.findIndex(n=>ei(n,e)):se(t)&&ei(t,e)?0:-1}const kr=e=>e[0]==="_"||e==="$stable",yo=e=>Z(e)?e.map(Ue):[Ue(e)],Ic=(e,t,n)=>{if(t._n)return t;const s=N((...o)=>yo(t(...o)),n);return s._c=!1,s},$r=(e,t,n)=>{const s=e._ctx;for(const o in e){if(kr(o))continue;const i=e[o];if(se(i))t[o]=Ic(o,i,s);else if(i!=null){const r=yo(i);t[o]=()=>r}}},Pr=(e,t)=>{const n=yo(t);e.slots.default=()=>n},Nc=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=ue(t),jn(t,"_",n)):$r(t,e.slots={})}else e.slots={},t&&Pr(e,t);jn(e.slots,ds,1)},Oc=(e,t,n)=>{const{vnode:s,slots:o}=e;let i=!0,r=me;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:($e(o,t),!n&&l===1&&delete o._):(i=!t.$stable,$r(t,o)),r=t}else t&&(Pr(e,t),r={default:1});if(i)for(const l in o)!kr(l)&&!(l in r)&&delete o[l]};function Cr(){return{app:null,config:{isNativeTag:hl,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Bc=0;function Fc(e,t){return function(s,o=null){se(s)||(s=Object.assign({},s)),o!=null&&!ge(o)&&(o=null);const i=Cr(),r=new Set;let l=!1;const c=i.app={_uid:Bc++,_component:s,_props:o,_container:null,_context:i,_instance:null,version:aa,get config(){return i.config},set config(a){},use(a,...f){return r.has(a)||(a&&se(a.install)?(r.add(a),a.install(c,...f)):se(a)&&(r.add(a),a(c,...f))),c},mixin(a){return i.mixins.includes(a)||i.mixins.push(a),c},component(a,f){return f?(i.components[a]=f,c):i.components[a]},directive(a,f){return f?(i.directives[a]=f,c):i.directives[a]},mount(a,f,d){if(!l){const _=I(s,o);return _.appContext=i,f&&t?t(_,a):e(_,a,d),l=!0,c._container=a,a.__vue_app__=c,hs(_.component)||_.component.proxy}},unmount(){l&&(e(null,c._container),delete c._container.__vue_app__)},provide(a,f){return i.provides[a]=f,c}};return c}}function Wn(e,t,n,s,o=!1){if(Z(e)){e.forEach((_,v)=>Wn(_,t&&(Z(t)?t[v]:t),n,s,o));return}if(Ut(s)&&!o)return;const i=s.shapeFlag&4?hs(s.component)||s.component.proxy:s.el,r=o?null:i,{i:l,r:c}=e,a=t&&t.r,f=l.refs===me?l.refs={}:l.refs,d=l.setupState;if(a!=null&&a!==c&&(be(a)?(f[a]=null,ae(d,a)&&(d[a]=null)):Te(a)&&(a.value=null)),se(c))_t(c,l,12,[r,f]);else{const _=be(c),v=Te(c);if(_||v){const S=()=>{if(e.f){const A=_?ae(d,c)?d[c]:f[c]:c.value;o?Z(A)&&to(A,i):Z(A)?A.includes(i)||A.push(i):_?(f[c]=[i],ae(d,c)&&(d[c]=f[c])):(c.value=[i],e.k&&(f[e.k]=c.value))}else _?(f[c]=r,ae(d,c)&&(d[c]=r)):v&&(c.value=r,e.k&&(f[e.k]=r))};r?(S.id=-1,Ve(S,n)):S()}}}let at=!1;const Mn=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",In=e=>e.nodeType===8;function Hc(e){const{mt:t,p:n,o:{patchProp:s,createText:o,nextSibling:i,parentNode:r,remove:l,insert:c,createComment:a}}=e,f=(b,w)=>{if(!w.hasChildNodes()){n(null,b,w),Un(),w._vnode=b;return}at=!1,d(w.firstChild,b,null,null,null),Un(),w._vnode=b,at&&console.error("Hydration completed but contains mismatches.")},d=(b,w,P,B,F,X=!1)=>{const z=In(b)&&b.data==="[",V=()=>A(b,w,P,B,F,z),{type:Q,ref:J,shapeFlag:ie,patchFlag:H}=w;let re=b.nodeType;w.el=b,H===-2&&(X=!1,w.dynamicChildren=null);let U=null;switch(Q){case Gt:re!==3?w.children===""?(c(w.el=o(""),r(b),b),U=b):U=V():(b.data!==w.children&&(at=!0,b.data=w.children),U=i(b));break;case Fe:re!==8||z?U=V():U=i(b);break;case fn:if(z&&(b=i(b),re=b.nodeType),re===1||re===3){U=b;const Ne=!w.children.length;for(let de=0;de{X=X||!!w.dynamicChildren;const{type:z,props:V,patchFlag:Q,shapeFlag:J,dirs:ie}=w,H=z==="input"&&ie||z==="option";if(H||Q!==-1){if(ie&&Xe(w,null,P,"created"),V)if(H||!X||Q&48)for(const U in V)(H&&U.endsWith("value")||kn(U)&&!ln(U))&&s(b,U,null,V[U],!1,void 0,P);else V.onClick&&s(b,"onClick",null,V.onClick,!1,void 0,P);let re;if((re=V&&V.onVnodeBeforeMount)&&Re(re,P,w),ie&&Xe(w,null,P,"beforeMount"),((re=V&&V.onVnodeMounted)||ie)&&ur(()=>{re&&Re(re,P,w),ie&&Xe(w,null,P,"mounted")},B),J&16&&!(V&&(V.innerHTML||V.textContent))){let U=v(b.firstChild,w,b,P,B,F,X);for(;U;){at=!0;const Ne=U;U=U.nextSibling,l(Ne)}}else J&8&&b.textContent!==w.children&&(at=!0,b.textContent=w.children)}return b.nextSibling},v=(b,w,P,B,F,X,z)=>{z=z||!!w.dynamicChildren;const V=w.children,Q=V.length;for(let J=0;J{const{slotScopeIds:z}=w;z&&(F=F?F.concat(z):z);const V=r(b),Q=v(i(b),w,V,P,B,F,X);return Q&&In(Q)&&Q.data==="]"?i(w.anchor=Q):(at=!0,c(w.anchor=a("]"),V,Q),Q)},A=(b,w,P,B,F,X)=>{if(at=!0,w.el=null,X){const Q=Y(b);for(;;){const J=i(b);if(J&&J!==Q)l(J);else break}}const z=i(b),V=r(b);return l(b),n(null,w,V,z,P,B,Mn(V),F),z},Y=b=>{let w=0;for(;b;)if(b=i(b),b&&In(b)&&(b.data==="["&&w++,b.data==="]")){if(w===0)return i(b);w--}return b};return[f,d]}const Ve=ur;function Rc(e){return Dc(e,Hc)}function Dc(e,t){const n=bl();n.__VUE__=!0;const{insert:s,remove:o,patchProp:i,createElement:r,createText:l,createComment:c,setText:a,setElementText:f,parentNode:d,nextSibling:_,setScopeId:v=We,insertStaticContent:S}=e,A=(u,h,g,$=null,k=null,L=null,O=!1,T=null,M=!!h.dynamicChildren)=>{if(u===h)return;u&&!Tt(u,h)&&($=Cn(u),Ye(u,k,L,!0),u=null),h.patchFlag===-2&&(M=!1,h.dynamicChildren=null);const{type:C,ref:K,shapeFlag:R}=h;switch(C){case Gt:Y(u,h,g,$);break;case Fe:b(u,h,g,$);break;case fn:u==null&&w(h,g,$,O);break;case ne:H(u,h,g,$,k,L,O,T,M);break;default:R&1?F(u,h,g,$,k,L,O,T,M):R&6?re(u,h,g,$,k,L,O,T,M):(R&64||R&128)&&C.process(u,h,g,$,k,L,O,T,M,Ot)}K!=null&&k&&Wn(K,u&&u.ref,L,h||u,!h)},Y=(u,h,g,$)=>{if(u==null)s(h.el=l(h.children),g,$);else{const k=h.el=u.el;h.children!==u.children&&a(k,h.children)}},b=(u,h,g,$)=>{u==null?s(h.el=c(h.children||""),g,$):h.el=u.el},w=(u,h,g,$)=>{[u.el,u.anchor]=S(u.children,h,g,$,u.el,u.anchor)},P=({el:u,anchor:h},g,$)=>{let k;for(;u&&u!==h;)k=_(u),s(u,g,$),u=k;s(h,g,$)},B=({el:u,anchor:h})=>{let g;for(;u&&u!==h;)g=_(u),o(u),u=g;o(h)},F=(u,h,g,$,k,L,O,T,M)=>{O=O||h.type==="svg",u==null?X(h,g,$,k,L,O,T,M):Q(u,h,k,L,O,T,M)},X=(u,h,g,$,k,L,O,T)=>{let M,C;const{type:K,props:R,shapeFlag:W,transition:te,dirs:le}=u;if(M=u.el=r(u.type,L,R&&R.is,R),W&8?f(M,u.children):W&16&&V(u.children,M,null,$,k,L&&K!=="foreignObject",O,T),le&&Xe(u,null,$,"created"),z(M,u,u.scopeId,O,$),R){for(const he in R)he!=="value"&&!ln(he)&&i(M,he,null,R[he],L,u.children,$,k,st);"value"in R&&i(M,"value",null,R.value),(C=R.onVnodeBeforeMount)&&Re(C,$,u)}le&&Xe(u,null,$,"beforeMount");const _e=(!k||k&&!k.pendingBranch)&&te&&!te.persisted;_e&&te.beforeEnter(M),s(M,h,g),((C=R&&R.onVnodeMounted)||_e||le)&&Ve(()=>{C&&Re(C,$,u),_e&&te.enter(M),le&&Xe(u,null,$,"mounted")},k)},z=(u,h,g,$,k)=>{if(g&&v(u,g),$)for(let L=0;L<$.length;L++)v(u,$[L]);if(k){let L=k.subTree;if(h===L){const O=k.vnode;z(u,O,O.scopeId,O.slotScopeIds,k.parent)}}},V=(u,h,g,$,k,L,O,T,M=0)=>{for(let C=M;C{const T=h.el=u.el;let{patchFlag:M,dynamicChildren:C,dirs:K}=h;M|=u.patchFlag&16;const R=u.props||me,W=h.props||me;let te;g&&kt(g,!1),(te=W.onVnodeBeforeUpdate)&&Re(te,g,h,u),K&&Xe(h,u,g,"beforeUpdate"),g&&kt(g,!0);const le=k&&h.type!=="foreignObject";if(C?J(u.dynamicChildren,C,T,g,$,le,L):O||pe(u,h,T,null,g,$,le,L,!1),M>0){if(M&16)ie(T,h,R,W,g,$,k);else if(M&2&&R.class!==W.class&&i(T,"class",null,W.class,k),M&4&&i(T,"style",R.style,W.style,k),M&8){const _e=h.dynamicProps;for(let he=0;he<_e.length;he++){const we=_e[he],ze=R[we],Bt=W[we];(Bt!==ze||we==="value")&&i(T,we,ze,Bt,k,u.children,g,$,st)}}M&1&&u.children!==h.children&&f(T,h.children)}else!O&&C==null&&ie(T,h,R,W,g,$,k);((te=W.onVnodeUpdated)||K)&&Ve(()=>{te&&Re(te,g,h,u),K&&Xe(h,u,g,"updated")},$)},J=(u,h,g,$,k,L,O)=>{for(let T=0;T{if(g!==$){if(g!==me)for(const T in g)!ln(T)&&!(T in $)&&i(u,T,g[T],null,O,h.children,k,L,st);for(const T in $){if(ln(T))continue;const M=$[T],C=g[T];M!==C&&T!=="value"&&i(u,T,C,M,O,h.children,k,L,st)}"value"in $&&i(u,"value",g.value,$.value)}},H=(u,h,g,$,k,L,O,T,M)=>{const C=h.el=u?u.el:l(""),K=h.anchor=u?u.anchor:l("");let{patchFlag:R,dynamicChildren:W,slotScopeIds:te}=h;te&&(T=T?T.concat(te):te),u==null?(s(C,g,$),s(K,g,$),V(h.children,g,K,k,L,O,T,M)):R>0&&R&64&&W&&u.dynamicChildren?(J(u.dynamicChildren,W,g,k,L,O,T),(h.key!=null||k&&h===k.subTree)&&bo(u,h,!0)):pe(u,h,g,K,k,L,O,T,M)},re=(u,h,g,$,k,L,O,T,M)=>{h.slotScopeIds=T,u==null?h.shapeFlag&512?k.ctx.activate(h,g,$,O,M):U(h,g,$,k,L,O,M):Ne(u,h,M)},U=(u,h,g,$,k,L,O)=>{const T=u.component=Zc(u,$,k);if(us(u)&&(T.ctx.renderer=Ot),ea(T),T.asyncDep){if(k&&k.registerDep(T,de),!u.el){const M=T.subTree=I(Fe);b(null,M,h,g)}return}de(T,u,h,g,k,L,O)},Ne=(u,h,g)=>{const $=h.component=u.component;if(uc(u,h,g))if($.asyncDep&&!$.asyncResolved){ye($,h,g);return}else $.next=h,oc($.update),$.update();else h.el=u.el,$.vnode=h},de=(u,h,g,$,k,L,O)=>{const T=()=>{if(u.isMounted){let{next:K,bu:R,u:W,parent:te,vnode:le}=u,_e=K,he;kt(u,!1),K?(K.el=le.el,ye(u,K,O)):K=le,R&&Fn(R),(he=K.props&&K.props.onVnodeBeforeUpdate)&&Re(he,te,K,le),kt(u,!0);const we=xs(u),ze=u.subTree;u.subTree=we,A(ze,we,d(ze.el),Cn(ze),u,k,L),K.el=we.el,_e===null&&fc(u,we.el),W&&Ve(W,k),(he=K.props&&K.props.onVnodeUpdated)&&Ve(()=>Re(he,te,K,le),k)}else{let K;const{el:R,props:W}=h,{bm:te,m:le,parent:_e}=u,he=Ut(h);if(kt(u,!1),te&&Fn(te),!he&&(K=W&&W.onVnodeBeforeMount)&&Re(K,_e,h),kt(u,!0),R&&ys){const we=()=>{u.subTree=xs(u),ys(R,u.subTree,u,k,null)};he?h.type.__asyncLoader().then(()=>!u.isUnmounted&&we()):we()}else{const we=u.subTree=xs(u);A(null,we,g,$,u,k,L),h.el=we.el}if(le&&Ve(le,k),!he&&(K=W&&W.onVnodeMounted)){const we=h;Ve(()=>Re(K,_e,we),k)}(h.shapeFlag&256||_e&&Ut(_e.vnode)&&_e.vnode.shapeFlag&256)&&u.a&&Ve(u.a,k),u.isMounted=!0,h=g=$=null}},M=u.effect=new io(T,()=>_o(C),u.scope),C=u.update=()=>M.run();C.id=u.uid,kt(u,!0),C()},ye=(u,h,g)=>{h.component=u;const $=u.vnode.props;u.vnode=h,u.next=null,Mc(u,h.props,$,g),Oc(u,h.children,g),Jt(),qo(),Zt()},pe=(u,h,g,$,k,L,O,T,M=!1)=>{const C=u&&u.children,K=u?u.shapeFlag:0,R=h.children,{patchFlag:W,shapeFlag:te}=h;if(W>0){if(W&128){Pn(C,R,g,$,k,L,O,T,M);return}else if(W&256){xt(C,R,g,$,k,L,O,T,M);return}}te&8?(K&16&&st(C,k,L),R!==C&&f(g,R)):K&16?te&16?Pn(C,R,g,$,k,L,O,T,M):st(C,k,L,!0):(K&8&&f(g,""),te&16&&V(R,g,$,k,L,O,T,M))},xt=(u,h,g,$,k,L,O,T,M)=>{u=u||Ht,h=h||Ht;const C=u.length,K=h.length,R=Math.min(C,K);let W;for(W=0;WK?st(u,k,L,!0,!1,R):V(h,g,$,k,L,O,T,M,R)},Pn=(u,h,g,$,k,L,O,T,M)=>{let C=0;const K=h.length;let R=u.length-1,W=K-1;for(;C<=R&&C<=W;){const te=u[C],le=h[C]=M?dt(h[C]):Ue(h[C]);if(Tt(te,le))A(te,le,g,null,k,L,O,T,M);else break;C++}for(;C<=R&&C<=W;){const te=u[R],le=h[W]=M?dt(h[W]):Ue(h[W]);if(Tt(te,le))A(te,le,g,null,k,L,O,T,M);else break;R--,W--}if(C>R){if(C<=W){const te=W+1,le=teW)for(;C<=R;)Ye(u[C],k,L,!0),C++;else{const te=C,le=C,_e=new Map;for(C=le;C<=W;C++){const Oe=h[C]=M?dt(h[C]):Ue(h[C]);Oe.key!=null&&_e.set(Oe.key,C)}let he,we=0;const ze=W-le+1;let Bt=!1,Io=0;const tn=new Array(ze);for(C=0;C=ze){Ye(Oe,k,L,!0);continue}let Qe;if(Oe.key!=null)Qe=_e.get(Oe.key);else for(he=le;he<=W;he++)if(tn[he-le]===0&&Tt(Oe,h[he])){Qe=he;break}Qe===void 0?Ye(Oe,k,L,!0):(tn[Qe-le]=C+1,Qe>=Io?Io=Qe:Bt=!0,A(Oe,h[Qe],g,null,k,L,O,T,M),we++)}const No=Bt?jc(tn):Ht;for(he=No.length-1,C=ze-1;C>=0;C--){const Oe=le+C,Qe=h[Oe],Oo=Oe+1{const{el:L,type:O,transition:T,children:M,shapeFlag:C}=u;if(C&6){wt(u.component.subTree,h,g,$);return}if(C&128){u.suspense.move(h,g,$);return}if(C&64){O.move(u,h,g,Ot);return}if(O===ne){s(L,h,g);for(let R=0;RT.enter(L),k);else{const{leave:R,delayLeave:W,afterLeave:te}=T,le=()=>s(L,h,g),_e=()=>{R(L,()=>{le(),te&&te()})};W?W(L,le,_e):_e()}else s(L,h,g)},Ye=(u,h,g,$=!1,k=!1)=>{const{type:L,props:O,ref:T,children:M,dynamicChildren:C,shapeFlag:K,patchFlag:R,dirs:W}=u;if(T!=null&&Wn(T,null,g,u,!0),K&256){h.ctx.deactivate(u);return}const te=K&1&&W,le=!Ut(u);let _e;if(le&&(_e=O&&O.onVnodeBeforeUnmount)&&Re(_e,h,u),K&6)rl(u.component,g,$);else{if(K&128){u.suspense.unmount(g,$);return}te&&Xe(u,null,h,"beforeUnmount"),K&64?u.type.remove(u,h,g,k,Ot,$):C&&(L!==ne||R>0&&R&64)?st(C,h,g,!1,!0):(L===ne&&R&384||!k&&K&16)&&st(M,h,g),$&&Vo(u)}(le&&(_e=O&&O.onVnodeUnmounted)||te)&&Ve(()=>{_e&&Re(_e,h,u),te&&Xe(u,null,h,"unmounted")},g)},Vo=u=>{const{type:h,el:g,anchor:$,transition:k}=u;if(h===ne){il(g,$);return}if(h===fn){B(u);return}const L=()=>{o(g),k&&!k.persisted&&k.afterLeave&&k.afterLeave()};if(u.shapeFlag&1&&k&&!k.persisted){const{leave:O,delayLeave:T}=k,M=()=>O(g,L);T?T(u.el,L,M):M()}else L()},il=(u,h)=>{let g;for(;u!==h;)g=_(u),o(u),u=g;o(h)},rl=(u,h,g)=>{const{bum:$,scope:k,update:L,subTree:O,um:T}=u;$&&Fn($),k.stop(),L&&(L.active=!1,Ye(O,u,h,g)),T&&Ve(T,h),Ve(()=>{u.isUnmounted=!0},h),h&&h.pendingBranch&&!h.isUnmounted&&u.asyncDep&&!u.asyncResolved&&u.suspenseId===h.pendingId&&(h.deps--,h.deps===0&&h.resolve())},st=(u,h,g,$=!1,k=!1,L=0)=>{for(let O=L;Ou.shapeFlag&6?Cn(u.component.subTree):u.shapeFlag&128?u.suspense.next():_(u.anchor||u.el),Mo=(u,h,g)=>{u==null?h._vnode&&Ye(h._vnode,null,null,!0):A(h._vnode||null,u,h,null,null,null,g),qo(),Un(),h._vnode=u},Ot={p:A,um:Ye,m:wt,r:Vo,mt:U,mc:V,pc:pe,pbc:J,n:Cn,o:e};let gs,ys;return t&&([gs,ys]=t(Ot)),{render:Mo,hydrate:gs,createApp:Fc(Mo,gs)}}function kt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function bo(e,t,n=!1){const s=e.children,o=t.children;if(Z(s)&&Z(o))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,r=n[i-1];i-- >0;)n[i]=r,r=t[r];return n}const zc=e=>e.__isTeleport,un=e=>e&&(e.disabled||e.disabled===""),ni=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Us=(e,t)=>{const n=e&&e.to;return be(n)?t?t(n):null:n},Uc={__isTeleport:!0,process(e,t,n,s,o,i,r,l,c,a){const{mc:f,pc:d,pbc:_,o:{insert:v,querySelector:S,createText:A,createComment:Y}}=a,b=un(t.props);let{shapeFlag:w,children:P,dynamicChildren:B}=t;if(e==null){const F=t.el=A(""),X=t.anchor=A("");v(F,n,s),v(X,n,s);const z=t.target=Us(t.props,S),V=t.targetAnchor=A("");z&&(v(V,z),r=r||ni(z));const Q=(J,ie)=>{w&16&&f(P,J,ie,o,i,r,l,c)};b?Q(n,X):z&&Q(z,V)}else{t.el=e.el;const F=t.anchor=e.anchor,X=t.target=e.target,z=t.targetAnchor=e.targetAnchor,V=un(e.props),Q=V?n:X,J=V?F:z;if(r=r||ni(X),B?(_(e.dynamicChildren,B,Q,o,i,r,l),bo(e,t,!0)):c||d(e,t,Q,J,o,i,r,l,!1),b)V||Nn(t,n,F,a,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const ie=t.target=Us(t.props,S);ie&&Nn(t,ie,null,a,0)}else V&&Nn(t,X,z,a,1)}Sr(t)},remove(e,t,n,s,{um:o,o:{remove:i}},r){const{shapeFlag:l,children:c,anchor:a,targetAnchor:f,target:d,props:_}=e;if(d&&i(f),(r||!un(_))&&(i(a),l&16))for(let v=0;v0?Ke||Ht:null,Wc(),bn>0&&Ke&&Ke.push(e),e}function x(e,t,n,s,o,i){return Tr(y(e,t,n,s,o,i,!0))}function ee(e,t,n,s,o){return Tr(I(e,t,n,s,o,!0))}function Gn(e){return e?e.__v_isVNode===!0:!1}function Tt(e,t){return e.type===t.type&&e.key===t.key}const ds="__vInternal",Ar=({key:e})=>e??null,Hn=({ref:e,ref_key:t,ref_for:n})=>e!=null?be(e)||Te(e)||se(e)?{i:ke,r:e,k:t,f:!!n}:e:null;function y(e,t=null,n=null,s=0,o=null,i=e===ne?0:1,r=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ar(t),ref:t&&Hn(t),scopeId:cs,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:ke};return l?(xo(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=be(n)?8:16),bn>0&&!r&&Ke&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Ke.push(c),c}const I=Gc;function Gc(e,t=null,n=null,s=0,o=null,i=!1){if((!e||e===vr)&&(e=Fe),Gn(e)){const l=vt(e,t,!0);return n&&xo(l,n),bn>0&&!i&&Ke&&(l.shapeFlag&6?Ke[Ke.indexOf(e)]=l:Ke.push(l)),l.patchFlag|=-2,l}if(oa(e)&&(e=e.__vccOpts),t){t=Yc(t);let{class:l,style:c}=t;l&&!be(l)&&(t.class=ve(l)),ge(c)&&(er(c)&&!Z(c)&&(c=$e({},c)),t.style=Zs(c))}const r=be(e)?1:dc(e)?128:zc(e)?64:ge(e)?4:se(e)?2:0;return y(e,t,n,s,o,r,i,!0)}function Yc(e){return e?er(e)||ds in e?$e({},e):e:null}function vt(e,t,n=!1){const{props:s,ref:o,patchFlag:i,children:r}=e,l=t?Rn(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Ar(l),ref:t&&t.ref?n&&o?Z(o)?o.concat(Hn(t)):[o,Hn(t)]:Hn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ne?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&vt(e.ssContent),ssFallback:e.ssFallback&&vt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function Ae(e=" ",t=0){return I(Gt,null,e,t)}function Qc(e,t){const n=I(fn,null,e);return n.staticCount=t,n}function q(e="",t=!1){return t?(p(),ee(Fe,null,e)):I(Fe,null,e)}function Ue(e){return e==null||typeof e=="boolean"?I(Fe):Z(e)?I(ne,null,e.slice()):typeof e=="object"?dt(e):I(Gt,null,String(e))}function dt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:vt(e)}function xo(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(Z(t))n=16;else if(typeof t=="object")if(s&65){const o=t.default;o&&(o._c&&(o._d=!1),xo(e,o()),o._c&&(o._d=!0));return}else{n=32;const o=t._;!o&&!(ds in t)?t._ctx=ke:o===3&&ke&&(ke.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else se(t)?(t={default:t,_ctx:ke},n=32):(t=String(t),s&64?(n=16,t=[Ae(t)]):n=8);e.children=t,e.shapeFlag|=n}function Rn(...e){const t={};for(let n=0;nxe||ke,Yt=e=>{xe=e,e.scope.on()},Mt=()=>{xe&&xe.scope.off(),xe=null};function Lr(e){return e.vnode.shapeFlag&4}let xn=!1;function ea(e,t=!1){xn=t;const{props:n,children:s}=e.vnode,o=Lr(e);Vc(e,n,o,t),Nc(e,s);const i=o?ta(e,t):void 0;return xn=!1,i}function ta(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=cn(new Proxy(e.ctx,Cc));const{setup:s}=n;if(s){const o=e.setupContext=s.length>1?Vr(e):null;Yt(e),Jt();const i=_t(s,e,0,[e.props,o]);if(Zt(),Mt(),Ri(i)){if(i.then(Mt,Mt),t)return i.then(r=>{oi(e,r,t)}).catch(r=>{rs(r,e,0)});e.asyncDep=i}else oi(e,i,t)}else Er(e,t)}function oi(e,t,n){se(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ge(t)&&(e.setupState=or(t)),Er(e,n)}let ii;function Er(e,t,n){const s=e.type;if(!e.render){if(!t&&ii&&!s.render){const o=s.template||go(e).template;if(o){const{isCustomElement:i,compilerOptions:r}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,a=$e($e({isCustomElement:i,delimiters:l},r),c);s.render=ii(o,a)}}e.render=s.render||We}Yt(e),Jt(),Sc(e),Zt(),Mt()}function na(e){return new Proxy(e.attrs,{get(t,n){return Ie(e,"get","$attrs"),t[n]}})}function Vr(e){const t=s=>{e.exposed=s||{}};let n;return{get attrs(){return n||(n=na(e))},slots:e.slots,emit:e.emit,expose:t}}function hs(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(or(cn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in an)return an[n](e)},has(t,n){return n in t||n in an}}))}function sa(e,t=!0){return se(e)?e.displayName||e.name:e.name||t&&e.__name}function oa(e){return se(e)&&"__vccOpts"in e}const G=(e,t)=>tc(e,t,xn);function ia(){return ra().slots}function ra(){const e=wo();return e.setupContext||(e.setupContext=Vr(e))}function Yn(e,t,n){const s=arguments.length;return s===2?ge(t)&&!Z(t)?Gn(t)?I(e,null,[t]):I(e,t):I(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&Gn(n)&&(n=[n]),I(e,t,n))}const la=Symbol(""),ca=()=>Ge(la),aa="3.2.47",ua="http://www.w3.org/2000/svg",At=typeof document<"u"?document:null,ri=At&&At.createElement("template"),fa={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const o=t?At.createElementNS(ua,e):At.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&o.setAttribute("multiple",s.multiple),o},createText:e=>At.createTextNode(e),createComment:e=>At.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>At.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,o,i){const r=n?n.previousSibling:t.lastChild;if(o&&(o===i||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===i||!(o=o.nextSibling)););else{ri.innerHTML=s?`${e}`:e;const l=ri.content;if(s){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[r?r.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function da(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function ha(e,t,n){const s=e.style,o=be(n);if(n&&!o){if(t&&!be(t))for(const i in t)n[i]==null&&qs(s,i,"");for(const i in n)qs(s,i,n[i])}else{const i=s.display;o?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=i)}}const li=/\s*!important$/;function qs(e,t,n){if(Z(n))n.forEach(s=>qs(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=pa(e,t);li.test(n)?e.setProperty(Xt(s),n.replace(li,""),"important"):e[s]=n}}const ci=["Webkit","Moz","ms"],$s={};function pa(e,t){const n=$s[t];if(n)return n;let s=et(t);if(s!=="filter"&&s in e)return $s[t]=s;s=ss(s);for(let o=0;oPs||(ba.then(()=>Ps=0),Ps=Date.now());function wa(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;De(ka(s,n.value),t,5,[s])};return n.value=e,n.attached=xa(),n}function ka(e,t){if(Z(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>o=>!o._stopped&&s&&s(o))}else return t}const fi=/^on[a-z]/,$a=(e,t,n,s,o=!1,i,r,l,c)=>{t==="class"?da(e,s,o):t==="style"?ha(e,n,s):kn(t)?eo(t)||ga(e,t,n,s,r):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Pa(e,t,s,o))?ma(e,t,s,i,r,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),_a(e,t,s,o))};function Pa(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&fi.test(t)&&se(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||fi.test(t)&&be(n)?!1:t in e}const ut="transition",nn="animation",ps=(e,{slots:t})=>Yn(dr,Ca(e),t);ps.displayName="Transition";const Mr={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};ps.props=$e({},dr.props,Mr);const $t=(e,t=[])=>{Z(e)?e.forEach(n=>n(...t)):e&&e(...t)},di=e=>e?Z(e)?e.some(t=>t.length>1):e.length>1:!1;function Ca(e){const t={};for(const H in e)H in Mr||(t[H]=e[H]);if(e.css===!1)return t;const{name:n="v",type:s,duration:o,enterFromClass:i=`${n}-enter-from`,enterActiveClass:r=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:a=r,appearToClass:f=l,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:_=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,S=Sa(o),A=S&&S[0],Y=S&&S[1],{onBeforeEnter:b,onEnter:w,onEnterCancelled:P,onLeave:B,onLeaveCancelled:F,onBeforeAppear:X=b,onAppear:z=w,onAppearCancelled:V=P}=t,Q=(H,re,U)=>{Pt(H,re?f:l),Pt(H,re?a:r),U&&U()},J=(H,re)=>{H._isLeaving=!1,Pt(H,d),Pt(H,v),Pt(H,_),re&&re()},ie=H=>(re,U)=>{const Ne=H?z:w,de=()=>Q(re,H,U);$t(Ne,[re,de]),hi(()=>{Pt(re,H?c:i),ft(re,H?f:l),di(Ne)||pi(re,s,A,de)})};return $e(t,{onBeforeEnter(H){$t(b,[H]),ft(H,i),ft(H,r)},onBeforeAppear(H){$t(X,[H]),ft(H,c),ft(H,a)},onEnter:ie(!1),onAppear:ie(!0),onLeave(H,re){H._isLeaving=!0;const U=()=>J(H,re);ft(H,d),La(),ft(H,_),hi(()=>{H._isLeaving&&(Pt(H,d),ft(H,v),di(B)||pi(H,s,Y,U))}),$t(B,[H,U])},onEnterCancelled(H){Q(H,!1),$t(P,[H])},onAppearCancelled(H){Q(H,!0),$t(V,[H])},onLeaveCancelled(H){J(H),$t(F,[H])}})}function Sa(e){if(e==null)return null;if(ge(e))return[Cs(e.enter),Cs(e.leave)];{const t=Cs(e);return[t,t]}}function Cs(e){return yl(e)}function ft(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Pt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function hi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Ta=0;function pi(e,t,n,s){const o=e._endId=++Ta,i=()=>{o===e._endId&&s()};if(n)return setTimeout(i,n);const{type:r,timeout:l,propCount:c}=Aa(e,t);if(!r)return s();const a=r+"end";let f=0;const d=()=>{e.removeEventListener(a,_),i()},_=v=>{v.target===e&&++f>=c&&d()};setTimeout(()=>{f(n[S]||"").split(", "),o=s(`${ut}Delay`),i=s(`${ut}Duration`),r=_i(o,i),l=s(`${nn}Delay`),c=s(`${nn}Duration`),a=_i(l,c);let f=null,d=0,_=0;t===ut?r>0&&(f=ut,d=r,_=i.length):t===nn?a>0&&(f=nn,d=a,_=c.length):(d=Math.max(r,a),f=d>0?r>a?ut:nn:null,_=f?f===ut?i.length:c.length:0);const v=f===ut&&/\b(transform|all)(,|$)/.test(s(`${ut}Property`).toString());return{type:f,timeout:d,propCount:_,hasTransform:v}}function _i(e,t){for(;e.lengthmi(n)+mi(e[s])))}function mi(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function La(){return document.body.offsetHeight}const vi=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Z(t)?n=>Fn(t,n):t};function Ea(e){e.target.composing=!0}function gi(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Va={created(e,{modifiers:{lazy:t,trim:n,number:s}},o){e._assign=vi(o);const i=s||o.props&&o.props.type==="number";Ft(e,t?"change":"input",r=>{if(r.target.composing)return;let l=e.value;n&&(l=l.trim()),i&&(l=Vs(l)),e._assign(l)}),n&&Ft(e,"change",()=>{e.value=e.value.trim()}),t||(Ft(e,"compositionstart",Ea),Ft(e,"compositionend",gi),Ft(e,"change",gi))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:s,number:o}},i){if(e._assign=vi(i),e.composing||document.activeElement===e&&e.type!=="range"&&(n||s&&e.value.trim()===t||(o||e.type==="number")&&Vs(e.value)===t))return;const r=t??"";e.value!==r&&(e.value=r)}},Ma=["ctrl","shift","alt","meta"],Ia={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Ma.some(n=>e[`${n}Key`]&&!t.includes(n))},Ir=(e,t)=>(n,...s)=>{for(let o=0;o{sn(e,!1)}):sn(e,t))},beforeUnmount(e,{value:t}){sn(e,t)}};function sn(e,t){e.style.display=t?e._vod:"none"}const Oa=$e({patchProp:$a},fa);let Ss,yi=!1;function Ba(){return Ss=yi?Ss:Rc(Oa),yi=!0,Ss}const Fa=(...e)=>{const t=Ba().createApp(...e),{mount:n}=t;return t.mount=s=>{const o=Ha(s);if(o)return n(o,!0,o instanceof SVGElement)},t};function Ha(e){return be(e)?document.querySelector(e):e}const D=(e,t)=>{const n=e.__vccOpts||e;for(const[s,o]of t)n[s]=o;return n},Ra="modulepreload",Da=function(e){return"/document/"+e},bi={},Nr=function(t,n,s){if(!n||n.length===0)return t();const o=document.getElementsByTagName("link");return Promise.all(n.map(i=>{if(i=Da(i),i in bi)return;bi[i]=!0;const r=i.endsWith(".css"),l=r?'[rel="stylesheet"]':"";if(!!s)for(let f=o.length-1;f>=0;f--){const d=o[f];if(d.href===i&&(!r||d.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${l}`))return;const a=document.createElement("link");if(a.rel=r?"stylesheet":Ra,r||(a.as="script",a.crossOrigin=""),a.href=i,document.head.appendChild(a),r)return new Promise((f,d)=>{a.addEventListener("load",f),a.addEventListener("error",()=>d(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t())};const ja=j({__name:"VPBadge",props:{text:null,type:null},setup(e){return(t,n)=>(p(),x("span",{class:ve(["VPBadge",e.type??"tip"])},[E(t.$slots,"default",{},()=>[Ae(ce(e.text),1)],!0)],2))}});const za=D(ja,[["__scopeId","data-v-e233384c"]]),Ua=JSON.parse('{"lang":"en-US","dir":"ltr","title":"Artplayer.js","description":"ArtPlayer.js is a modern and full featured HTML5 video player","base":"/document/","head":[],"appearance":"dark","themeConfig":{"siteTitle":"Artplayer.js","logo":"/logo.png","nav":[{"text":"中文版","link":"/"},{"text":"English","link":"/en/","activeMatch":"/en/"},{"text":"Online Editor","link":"https://artplayer.org"},{"text":"4.6.x","items":[{"text":"Changelog","link":"https://github.com/zhw2590582/ArtPlayer/blob/master/CHANGELOG_CN.md"},{"text":"Donation","link":"https://github.com/zhw2590582/ArtPlayer#donations"},{"text":"Q群: 320881312","link":"https://github.com/zhw2590582/ArtPlayer#qq-group"}]}],"socialLinks":[{"icon":"github","link":"https://github.com/zhw2590582/ArtPlayer"}],"sidebar":{"/":[{"text":"开始","collapsible":true,"items":[{"text":"安装使用","link":"/"},{"text":"基础选项","link":"/start/option"},{"text":"组件配置","link":"/start/component"},{"text":"设置面板","link":"/start/setting"}]},{"text":"高级","collapsible":true,"items":[{"text":"实例属性","link":"/advanced/property"},{"text":"高级属性","link":"/advanced/built-in"},{"text":"静态属性","link":"/advanced/class"},{"text":"实例事件","link":"/advanced/event"},{"text":"编写插件","link":"/advanced/plugin"}]},{"text":"插件","collapsible":true,"items":[{"text":"弹幕库","link":"/plugin/danmuku"},{"text":"视频广告","link":"/plugin/ads"},{"text":"Iframe 控制","link":"/plugin/iframe"},{"text":"Hls 画质","link":"/plugin/hls-quality"},{"text":"Dash 画质","link":"/plugin/dash-quality"},{"text":"控制器皮肤","link":"/plugin/control-ui"}]},{"text":"第三方库","collapsible":true,"items":[{"text":"hls.js","link":"/library/hls"},{"text":"flv.js","link":"/library/flv"},{"text":"dash.js","link":"/library/dash"},{"text":"webtorrent.js","link":"/library/webtorrent"}]}],"/en/":[{"text":"Quick start","collapsible":true,"items":[{"text":"Install","link":"/en/"},{"text":"Option","link":"/en/start/option"},{"text":"Component","link":"/en/start/component"},{"text":"Setting","link":"/en/start/setting"}]},{"text":"Advanced","collapsible":true,"items":[{"text":"Instance Property","link":"/en/advanced/property"},{"text":"Advanced Property","link":"/en/advanced/built-in"},{"text":"Static Property","link":"/en/advanced/class"},{"text":"Instance Event","link":"/en/advanced/event"},{"text":"Writing Plugin","link":"/en/advanced/plugin"}]},{"text":"Plugins","collapsible":true,"items":[{"text":"Video Ads","link":"/en/plugin/ads"},{"text":"Iframe Control","link":"/en/plugin/iframe"},{"text":"Hls Quality","link":"/en/plugin/hls-quality"},{"text":"Dash Quality","link":"/en/plugin/dash-quality"},{"text":"Control UI","link":"/en/plugin/control-ui"}]},{"text":"Libraries","collapsible":true,"items":[{"text":"hls.js","link":"/en/library/hls"},{"text":"flv.js","link":"/en/library/flv"},{"text":"dash.js","link":"/en/library/dash"},{"text":"webtorrent.js","link":"/en/library/webtorrent"}]}]},"editLink":{"pattern":"https://github.com/zhw2590582/ArtPlayer/tree/master/packages/artplayer-vitepress/docs/:path","text":"Edit this page on GitHub"}},"locales":{},"scrollOffset":90,"cleanUrls":false}'),_s=/^[a-z]+:/i,qa=/^pathname:\/\//,xi="vitepress-theme-appearance",Or=/#.*$/,Ka=/(index)?\.(md|html)$/,Ce=typeof document<"u",Br={relativePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0};function Nt(e,t,n=!1){if(t===void 0)return!1;if(e=wi(`/${e}`),n)return new RegExp(t).test(e);if(wi(t)!==e)return!1;const s=t.match(Or);return s?(Ce?location.hash:"")===s[0]:!0}function wi(e){return decodeURI(e).replace(Or,"").replace(Ka,"")}function Fr(e){return _s.test(e)}function Wa(e,t){var s,o,i,r,l,c,a;const n=Object.keys(e.locales).find(f=>f!=="root"&&!Fr(f)&&Nt(t,`/${f}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((o=e.locales[n])==null?void 0:o.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((r=e.locales[n])==null?void 0:r.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Rr(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function Hr(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const o=Ga(e.title,s);return`${n}${o}`}function Ga(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function Ya(e,t){const[n,s]=t;if(n!=="meta")return!1;const o=Object.entries(s)[0];return o==null?!1:e.some(([i,r])=>i===n&&r[o[0]]===o[1])}function Rr(e,t){return[...e.filter(n=>!Ya(t,n)),...t]}const Qa=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,Xa=/^[a-z]:/i;function ki(e){const t=Xa.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(Qa,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const Dr=Symbol(),ht=Xl(Ua);function Ja(e){const t=G(()=>Wa(ht.value,e.data.relativePath));return{site:t,theme:G(()=>t.value.themeConfig),page:G(()=>e.data),frontmatter:G(()=>e.data.frontmatter),lang:G(()=>t.value.lang),dir:G(()=>t.value.dir),localeIndex:G(()=>t.value.localeIndex||"root"),title:G(()=>Hr(t.value,e.data)),description:G(()=>e.data.description||t.value.description),isDark:oe(!1)}}function ko(){const e=Ge(Dr);if(!e)throw new Error("vitepress data not properly injected in app");return e}function Za(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function Qt(e){return _s.test(e)||e.startsWith(".")?e:Za(ht.value.base,e)}function jr(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),Ce){const n="/document/";t=ki(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),t=`${n}assets/${t}.${s}.js`}else t=`./${ki(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}const zr=Symbol(),$i="http://a.com",eu=()=>({path:"/",component:null,data:Br});function tu(e,t){const n=is(eu()),s={route:n,go:o};async function o(l=Ce?location.href:"/"){var a,f;await((a=s.onBeforeRouteChange)==null?void 0:a.call(s,l));const c=new URL(l,$i);ht.value.cleanUrls||!c.pathname.endsWith("/")&&!c.pathname.endsWith(".html")&&(c.pathname+=".html",l=c.pathname+c.search+c.hash),Ce&&l!==location.href&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",l)),await r(l),await((f=s.onAfterRouteChanged)==null?void 0:f.call(s,l))}let i=null;async function r(l,c=0,a=!1){const f=new URL(l,$i),d=i=f.pathname;try{let _=await e(d);if(i===d){i=null;const{default:v,__pageData:S}=_;if(!v)throw new Error(`Invalid route component: ${v}`);n.path=Ce?d:Qt(d),n.component=cn(v),n.data=cn(S),Ce&&po(()=>{let A=ht.value.base+S.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!ht.value.cleanUrls&&!A.endsWith("/")&&(A+=".html"),A!==f.pathname&&(f.pathname=A,l=A+f.search+f.hash,history.replaceState(null,"",l)),f.hash&&!c){let Y=null;try{Y=document.querySelector(decodeURIComponent(f.hash))}catch(b){console.warn(b)}if(Y){Pi(Y,f.hash);return}}window.scrollTo(0,c)})}}catch(_){if(!/fetch/.test(_.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(_),!a)try{const v=await fetch(ht.value.base+"hashmap.json");window.__VP_HASH_MAP__=await v.json(),await r(l,c,!0);return}catch{}i===d&&(i=null,n.path=Ce?d:Qt(d),n.component=t?cn(t):null,n.data=Br)}}return Ce&&(window.addEventListener("click",l=>{if(l.target.closest("button"))return;const a=l.target.closest("a");if(a&&!a.closest(".vp-raw")&&(a instanceof SVGElement||!a.download)){const{target:f}=a,{href:d,origin:_,pathname:v,hash:S,search:A}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),Y=window.location,b=v.match(/\.\w+$/);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&f!=="_blank"&&_===Y.origin&&!(b&&b[0]!==".html")&&(l.preventDefault(),v===Y.pathname&&A===Y.search?S&&S!==Y.hash&&(history.pushState(null,"",S),window.dispatchEvent(new Event("hashchange")),Pi(a,S,a.classList.contains("header-anchor"))):o(d))}},{capture:!0}),window.addEventListener("popstate",l=>{r(location.href,l.state&&l.state.scrollPosition||0)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function nu(){const e=Ge(zr);if(!e)throw new Error("useRouter() is called without provider.");return e}function yt(){return nu().route}function Pi(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.querySelector(decodeURIComponent(t))}catch(o){console.warn(o)}if(s){let o=ht.value.scrollOffset;typeof o=="string"&&(o=document.querySelector(o).getBoundingClientRect().bottom+24);const i=parseInt(window.getComputedStyle(s).paddingTop,10),r=window.scrollY+s.getBoundingClientRect().top-o+i;!n||Math.abs(r-window.scrollY)>window.innerHeight?window.scrollTo(0,r):window.scrollTo({left:0,top:r,behavior:"smooth"})}}const su=j({name:"VitePressContent",props:{onContentUpdated:Function},setup(e){const t=yt();return mo(()=>{var n;(n=e.onContentUpdated)==null||n.call(e)}),()=>Yn("div",{style:{position:"relative"}},[t.component?Yn(t.component):null])}}),fe=ko;var Ci;const Ur=typeof window<"u",ou=e=>typeof e=="string",iu=()=>{};Ur&&((Ci=window==null?void 0:window.navigator)!=null&&Ci.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function qr(e){return typeof e=="function"?e():m(e)}function ru(e){return e}function Kr(e){return zi()?(kl(e),!0):!1}function lu(e){return typeof e=="function"?G(e):oe(e)}function cu(e,t=!0){wo()?je(e):t?e():po(e)}function au(e){var t;const n=qr(e);return(t=n==null?void 0:n.$el)!=null?t:n}const $o=Ur?window:void 0;function uu(...e){let t,n,s,o;if(ou(e[0])||Array.isArray(e[0])?([n,s,o]=e,t=$o):[t,n,s,o]=e,!t)return iu;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const i=[],r=()=>{i.forEach(f=>f()),i.length=0},l=(f,d,_,v)=>(f.addEventListener(d,_,v),()=>f.removeEventListener(d,_,v)),c=Ze(()=>[au(t),qr(o)],([f,d])=>{r(),f&&i.push(...n.flatMap(_=>s.map(v=>l(f,_,v,d))))},{immediate:!0,flush:"post"}),a=()=>{c(),r()};return Kr(a),a}function fu(e,t=!1){const n=oe(),s=()=>n.value=Boolean(e());return s(),cu(s,t),n}function Ks(e,t={}){const{window:n=$o}=t,s=fu(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const i=oe(!1),r=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",l):o.removeListener(l))},l=()=>{s.value&&(r(),o=n.matchMedia(lu(e).value),i.value=o.matches,"addEventListener"in o?o.addEventListener("change",l):o.addListener(l))};return It(l),Kr(()=>r()),i}const Ws=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Gs="__vueuse_ssr_handlers__";Ws[Gs]=Ws[Gs]||{};Ws[Gs];var Si;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(Si||(Si={}));var du=Object.defineProperty,Ti=Object.getOwnPropertySymbols,hu=Object.prototype.hasOwnProperty,pu=Object.prototype.propertyIsEnumerable,Ai=(e,t,n)=>t in e?du(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_u=(e,t)=>{for(var n in t||(t={}))hu.call(t,n)&&Ai(e,n,t[n]);if(Ti)for(var n of Ti(t))pu.call(t,n)&&Ai(e,n,t[n]);return e};const mu={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};_u({linear:ru},mu);function vu({window:e=$o}={}){if(!e)return{x:oe(0),y:oe(0)};const t=oe(e.scrollX),n=oe(e.scrollY);return uu(e,"scroll",()=>{t.value=e.scrollX,n.value=e.scrollY},{capture:!1,passive:!0}),{x:t,y:n}}function gu(e,t){let n,s=!1;return()=>{n&&clearTimeout(n),s?n=setTimeout(e,t):(e(),s=!0,setTimeout(()=>{s=!1},t))}}function Ys(e){return/^\//.test(e)?e:`/${e}`}function wn(e){if(Fr(e))return e.replace(qa,"");const{site:t}=fe(),{pathname:n,search:s,hash:o}=new URL(e,"http://example.com"),i=n.endsWith("/")||n.endsWith(".html")?e:e.replace(/(?:(^\.+)\/)?.*$/,`$1${n.replace(/(\.md)?$/,t.value.cleanUrls?"":".html")}${s}${o}`);return Qt(i)}function Wr(e,t){if(Array.isArray(e))return e;if(e==null)return[];t=Ys(t);const n=Object.keys(e).sort((s,o)=>o.split("/").length-s.split("/").length).find(s=>t.startsWith(Ys(s)));return n?e[n]:[]}function yu(e){const t=[];let n=0;for(const s in e){const o=e[s];if(o.items){n=t.push(o);continue}t[n]||t.push({items:[]}),t[n].items.push(o)}return t}function bu(e){const t=[];function n(s){for(const o of s)o.text&&o.link&&t.push({text:o.text,link:o.link}),o.items&&n(o.items)}return n(e),t}function Qs(e,t){return Array.isArray(t)?t.some(n=>Qs(e,n)):Nt(e,t.link)?!0:t.items?Qs(e,t.items):!1}function lt(){const e=yt(),{theme:t,frontmatter:n}=fe(),s=Ks("(min-width: 960px)"),o=oe(!1),i=G(()=>{const v=t.value.sidebar,S=e.data.relativePath;return v?Wr(v,S):[]}),r=G(()=>n.value.sidebar!==!1&&i.value.length>0&&n.value.layout!=="home"),l=G(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),c=G(()=>r.value&&s.value),a=G(()=>r.value?yu(i.value):[]);function f(){o.value=!0}function d(){o.value=!1}function _(){o.value?d():f()}return{isOpen:o,sidebar:i,sidebarGroups:a,hasSidebar:r,hasAside:l,isSidebarEnabled:c,open:f,close:d,toggle:_}}function xu(e,t){let n;It(()=>{n=e.value?document.activeElement:void 0}),je(()=>{window.addEventListener("keyup",s)}),en(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&e.value&&(t(),n==null||n.focus())}}function wu(e){const{page:t}=fe(),n=oe(!1),s=G(()=>e.value.collapsed!=null),o=G(()=>!!e.value.link),i=G(()=>Nt(t.value.relativePath,e.value.link)),r=G(()=>i.value?!0:e.value.items?Qs(t.value.relativePath,e.value.items):!1),l=G(()=>!!(e.value.items&&e.value.items.length));It(()=>{n.value=!!(s.value&&e.value.collapsed)}),It(()=>{(i.value||r.value)&&(n.value=!1)});function c(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:o,isActiveLink:i,hasActiveLink:r,hasChildren:l,toggle:c}}const ku=j({__name:"VPSkipLink",setup(e){const t=yt(),n=oe();Ze(()=>t.path,()=>n.value.focus());function s({target:o}){const i=document.querySelector(o.hash);if(i){const r=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",r)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",r),i.focus(),window.scrollTo(0,0)}}return(o,i)=>(p(),x(ne,null,[y("span",{ref_key:"backToTop",ref:n,tabindex:"-1"},null,512),y("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}});const $u=D(ku,[["__scopeId","data-v-8ab7c6af"]]),Pu={key:0,class:"VPBackdrop"},Cu=j({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,n)=>(p(),ee(ps,{name:"fade"},{default:N(()=>[e.show?(p(),x("div",Pu)):q("",!0)]),_:1}))}});const Su=D(Cu,[["__scopeId","data-v-b2600058"]]);function Tu(){const e=oe(!1);function t(){e.value=!0,window.addEventListener("resize",o)}function n(){e.value=!1,window.removeEventListener("resize",o)}function s(){e.value?n():t()}function o(){window.outerWidth>=768&&n()}const i=yt();return Ze(()=>i.path,n),{isScreenOpen:e,openScreen:t,closeScreen:n,toggleScreen:s}}function $n({removeCurrent:e=!0,correspondingLink:t=!1}={}){const{site:n,localeIndex:s,page:o,theme:i}=fe(),r=G(()=>{var c,a;return{label:(c=n.value.locales[s.value])==null?void 0:c.label,link:((a=n.value.locales[s.value])==null?void 0:a.link)||(s.value==="root"?"/":`/${s.value}/`)}});return{localeLinks:G(()=>Object.entries(n.value.locales).flatMap(([c,a])=>e&&r.value.label===a.label?[]:{text:a.label,link:Au(a.link||(c==="root"?"/":`/${c}/`),i.value.i18nRouting!==!1&&t,o.value.relativePath.slice(r.value.link.length-1),!n.value.cleanUrls)})),currentLang:r}}function Au(e,t,n,s){return t?e.replace(/\/$/,"")+Ys(n.replace(/(^|\/)?index.md$/,"$1").replace(/\.md$/,s?".html":"")):e}const Lu=["src","alt"],Eu={inheritAttrs:!1},Vu=j({...Eu,__name:"VPImage",props:{image:null,alt:null},setup(e){return(t,n)=>{const s=gt("VPImage",!0);return e.image?(p(),x(ne,{key:0},[typeof e.image=="string"||"src"in e.image?(p(),x("img",Rn({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:m(Qt)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,Lu)):(p(),x(ne,{key:1},[I(s,Rn({class:"dark",image:e.image.dark,alt:e.image.alt},t.$attrs),null,16,["image","alt"]),I(s,Rn({class:"light",image:e.image.light,alt:e.image.alt},t.$attrs),null,16,["image","alt"])],64))],64)):q("",!0)}}});const Po=D(Vu,[["__scopeId","data-v-74766fef"]]),Mu=["href"],Iu=j({__name:"VPNavBarTitle",setup(e){const{site:t,theme:n}=fe(),{hasSidebar:s}=lt(),{currentLang:o}=$n();return(i,r)=>(p(),x("div",{class:ve(["VPNavBarTitle",{"has-sidebar":m(s)}])},[y("a",{class:"title",href:m(wn)(m(o).link)},[E(i.$slots,"nav-bar-title-before",{},void 0,!0),m(n).logo?(p(),ee(Po,{key:0,class:"logo",image:m(n).logo},null,8,["image"])):q("",!0),m(n).siteTitle?(p(),x(ne,{key:1},[Ae(ce(m(n).siteTitle),1)],64)):m(n).siteTitle===void 0?(p(),x(ne,{key:2},[Ae(ce(m(t).title),1)],64)):q("",!0),E(i.$slots,"nav-bar-title-after",{},void 0,!0)],8,Mu)],2))}});const Nu=D(Iu,[["__scopeId","data-v-2f3d65eb"]]),Ou="/document/assets/flex-logo.2489261b.svg";function Ts(e,t){return typeof e>"u"?t:e}function Li(e){const t=Array(e);for(let n=0;n=this.minlength&&(l||!r[f])){let _=On(c,o,a),v="";switch(this.tokenize){case"full":if(3S;A--)if(A-S>=this.minlength){const Y=On(c,o,a,d,S);v=f.substring(S,A),this.push_index(r,v,Y,e,n)}break}case"reverse":if(2=this.minlength){const A=On(c,o,a,d,S);this.push_index(r,v,A,e,n)}v=""}case"forward":if(1=this.minlength&&this.push_index(r,v,_,e,n);break}default:if(this.boost&&(_=Math.min(0|_/this.boost(t,f,a),c-1)),this.push_index(r,f,_,e,n),l&&1=this.minlength&&!S[f]){S[f]=1;const P=On(A+(o/2>A?0:1),o,a,b-1,w-1),B=this.bidirectional&&f>Y;this.push_index(i,B?Y:f,P,e,n,B?f:Y)}}}}}this.fastupdate||(this.register[e]=1)}}return this};function On(e,t,n,s,o){return n&&1=this.minlength&&!d[v]){if(!this.optimize&&!i&&!this.map[v])return r;_[A++]=v,d[v]=1}e=_,s=e.length}if(!s)return r;t||(t=100);let c,a=this.depth&&1=n)))));v++);if(a)return o?Mi(l,n,0):void(e[e.length]=l)}return!t&&l};function Mi(e,t,n){return e=e.length===1?e[0]:Fu(e),n||e.length>t?e.slice(n,n+t):e}function Ii(e,t,n,s){if(n){const o=s&&t>n;e=e[o?t:n],e=e&&e[o?n:t]}else e=e[t];return e}Ee.prototype.contain=function(e){return!!this.register[e]},Ee.prototype.update=function(e,t){return this.remove(e).add(e,t)},Ee.prototype.remove=function(e,t){const n=this.register[e];if(n){if(this.fastupdate)for(let s,o=0;o{if(i.value){for(var w=d.value.search(i.value,{enrich:!0}),P=[],B=0;B!w||!w.length?[]:w.reduce((B,F)=>(B[P(F)]||(B[P(F)]=[]),B[P(F)].push(F),B),{}),Y=()=>{setTimeout(()=>{l.value&&l.value.focus()},100),b(),o.value=!0};je(async()=>{var F,X;const w=await Nr(()=>import("./chunks/virtual_search-data.5a1b4eb0.js"),[]);c.value=w.default.INDEX_DATA,a.value=w.default.PREVIEW_LOOKUP,f.value=w.default.Options,r.value=window.location.origin+Qt(n.value==="root"?"/":n.value),_.value=((F=f.value)==null?void 0:F.buttonLabel)||_.value,v.value=((X=f.value)==null?void 0:X.placeholder)||v.value;var P=new Ee(f.value);P.import("reg",c.value.reg),P.import("cfg",c.value.cfg),P.import("map",c.value.map),P.import("ctx",c.value.ctx),d.value=P,s.value.innerHTML=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"⌘":"Ctrl";const B=z=>{z.key==="k"&&(z.ctrlKey||z.metaKey)&&(z.preventDefault(),Y())};window.addEventListener("keydown",B)});function b(){o.value=!1,i.value=""}return(w,P)=>{const B=gt("ClientOnly");return p(),x("div",of,[I(B,null,{default:N(()=>[(p(),ee(Kc,{to:"body"},[Go(y("div",{class:"modal-back",onClick:P[2]||(P[2]=F=>o.value=!1)},[y("div",{class:"modal",onClick:P[1]||(P[1]=Ir(()=>{},["stop"]))},[y("form",rf,[lf,Go(y("input",{class:"DocSearch-Input","aria-autocomplete":"both","aria-labelledby":"docsearch-label",id:"docsearch-input",autocomplete:"off",autocorrect:"off",autocapitalize:"off",enterkeyhint:"search",spellcheck:"false",autofocus:"true","onUpdate:modelValue":P[0]||(P[0]=F=>i.value=F),placeholder:v.value,maxlength:"64",type:"search",ref_key:"input",ref:l},null,8,cf),[[Va,i.value]])]),y("div",af,[(p(!0),x(ne,null,Pe(A(m(S),F=>F.link.split("/").slice(0,-1).join("-")),(F,X)=>(p(),x("div",{key:X},[y("span",uf,ce(X?X.toString()[0].toUpperCase()+X.toString().slice(1):"Home"),1),(p(!0),x(ne,null,Pe(F,z=>(p(),x("a",{href:r.value+z.link,key:z.id,onClick:b},[y("div",df,[y("span",hf,ce(z.link.includes("#")?"#":"▤"),1),y("div",pf,[y("h3",null,ce(z.title),1),y("p",null,[y("div",{innerHTML:z.preview},null,8,_f)])]),mf])],8,ff))),128))]))),128))]),vf])],512),[[Na,o.value]])]))]),_:1}),y("div",{id:"docsearch",onClick:P[3]||(P[3]=F=>Y())},[y("button",gf,[y("span",yf,[bf,y("span",xf,ce(_.value),1)]),y("span",wf,[y("span",{class:"DocSearch-Button-Key",ref_key:"metaKey",ref:s},"Meta",512),kf])])])])}}});const Pf={},Cf={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",height:"24px",viewBox:"0 0 24 24",width:"24px"},Sf=y("path",{d:"M0 0h24v24H0V0z",fill:"none"},null,-1),Tf=y("path",{d:"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"},null,-1),Af=[Sf,Tf];function Lf(e,t){return p(),x("svg",Cf,Af)}const Ef=D(Pf,[["render",Lf]]),Vf=j({__name:"VPLink",props:{tag:null,href:null,noIcon:{type:Boolean}},setup(e){const t=e,n=G(()=>t.tag??t.href?"a":"span"),s=G(()=>t.href&&_s.test(t.href));return(o,i)=>(p(),ee(yn(m(n)),{class:ve(["VPLink",{link:e.href}]),href:e.href?m(wn)(e.href):void 0,target:m(s)?"_blank":void 0,rel:m(s)?"noreferrer":void 0},{default:N(()=>[E(o.$slots,"default",{},void 0,!0),m(s)&&!e.noIcon?(p(),ee(Ef,{key:0,class:"icon"})):q("",!0)]),_:3},8,["class","href","target","rel"]))}});const bt=D(Vf,[["__scopeId","data-v-7cc39089"]]),Mf=j({__name:"VPNavBarMenuLink",props:{item:null},setup(e){const{page:t}=fe();return(n,s)=>(p(),ee(bt,{class:ve({VPNavBarMenuLink:!0,active:m(Nt)(m(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,noIcon:!0},{default:N(()=>[Ae(ce(e.item.text),1)]),_:1},8,["class","href"]))}});const If=D(Mf,[["__scopeId","data-v-2d894c10"]]),Co=oe();let Gr=!1,Ls=0;function Nf(e){const t=oe(!1);if(Ce){!Gr&&Of(),Ls++;const n=Ze(Co,s=>{var o,i,r;s===e.el.value||(o=e.el.value)!=null&&o.contains(s)?(t.value=!0,(i=e.onFocus)==null||i.call(e)):(t.value=!1,(r=e.onBlur)==null||r.call(e))});en(()=>{n(),Ls--,Ls||Bf()})}return ao(t)}function Of(){document.addEventListener("focusin",Yr),Gr=!0,Co.value=document.activeElement}function Bf(){document.removeEventListener("focusin",Yr)}function Yr(){Co.value=document.activeElement}const Ff={},Hf={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Rf=y("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),Df=[Rf];function jf(e,t){return p(),x("svg",Hf,Df)}const Qr=D(Ff,[["render",jf]]),zf={},Uf={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},qf=y("circle",{cx:"12",cy:"12",r:"2"},null,-1),Kf=y("circle",{cx:"19",cy:"12",r:"2"},null,-1),Wf=y("circle",{cx:"5",cy:"12",r:"2"},null,-1),Gf=[qf,Kf,Wf];function Yf(e,t){return p(),x("svg",Uf,Gf)}const Qf=D(zf,[["render",Yf]]),Xf={class:"VPMenuLink"},Jf=j({__name:"VPMenuLink",props:{item:null},setup(e){const{page:t}=fe();return(n,s)=>(p(),x("div",Xf,[I(bt,{class:ve({active:m(Nt)(m(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link},{default:N(()=>[Ae(ce(e.item.text),1)]),_:1},8,["class","href"])]))}});const ms=D(Jf,[["__scopeId","data-v-6e851226"]]),Zf={class:"VPMenuGroup"},ed={key:0,class:"title"},td=j({__name:"VPMenuGroup",props:{text:null,items:null},setup(e){return(t,n)=>(p(),x("div",Zf,[e.text?(p(),x("p",ed,ce(e.text),1)):q("",!0),(p(!0),x(ne,null,Pe(e.items,s=>(p(),x(ne,null,["link"in s?(p(),ee(ms,{key:0,item:s},null,8,["item"])):q("",!0)],64))),256))]))}});const nd=D(td,[["__scopeId","data-v-e245600e"]]),sd={class:"VPMenu"},od={key:0,class:"items"},id=j({__name:"VPMenu",props:{items:null},setup(e){return(t,n)=>(p(),x("div",sd,[e.items?(p(),x("div",od,[(p(!0),x(ne,null,Pe(e.items,s=>(p(),x(ne,{key:s.text},["link"in s?(p(),ee(ms,{key:0,item:s},null,8,["item"])):(p(),ee(nd,{key:1,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):q("",!0),E(t.$slots,"default",{},void 0,!0)]))}});const rd=D(id,[["__scopeId","data-v-7bffa9cd"]]),ld=["aria-expanded","aria-label"],cd={key:0,class:"text"},ad={class:"menu"},ud=j({__name:"VPFlyout",props:{icon:null,button:null,label:null,items:null},setup(e){const t=oe(!1),n=oe();Nf({el:n,onBlur:s});function s(){t.value=!1}return(o,i)=>(p(),x("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:i[1]||(i[1]=r=>t.value=!0),onMouseleave:i[2]||(i[2]=r=>t.value=!1)},[y("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":e.label,onClick:i[0]||(i[0]=r=>t.value=!t.value)},[e.button||e.icon?(p(),x("span",cd,[e.icon?(p(),ee(yn(e.icon),{key:0,class:"option-icon"})):q("",!0),Ae(" "+ce(e.button)+" ",1),I(Qr,{class:"text-icon"})])):(p(),ee(Qf,{key:1,class:"icon"}))],8,ld),y("div",ad,[I(rd,{items:e.items},{default:N(()=>[E(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const So=D(ud,[["__scopeId","data-v-b0ce3d84"]]),fd=j({__name:"VPNavBarMenuGroup",props:{item:null},setup(e){const{page:t}=fe();return(n,s)=>(p(),ee(So,{class:ve({VPNavBarMenuGroup:!0,active:m(Nt)(m(t).relativePath,e.item.activeMatch,!!e.item.activeMatch)}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}}),dd=e=>(tt("data-v-78eb315b"),e=e(),nt(),e),hd={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},pd=dd(()=>y("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),_d=j({__name:"VPNavBarMenu",setup(e){const{theme:t}=fe();return(n,s)=>m(t).nav?(p(),x("nav",hd,[pd,(p(!0),x(ne,null,Pe(m(t).nav,o=>(p(),x(ne,{key:o.text},["link"in o?(p(),ee(If,{key:0,item:o},null,8,["item"])):(p(),ee(fd,{key:1,item:o},null,8,["item"]))],64))),128))])):q("",!0)}});const md=D(_d,[["__scopeId","data-v-78eb315b"]]),vd={},gd={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},yd=y("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),bd=y("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),xd=[yd,bd];function wd(e,t){return p(),x("svg",gd,xd)}const Xr=D(vd,[["render",wd]]),kd={class:"items"},$d={class:"title"},Pd=j({__name:"VPNavBarTranslations",setup(e){const{localeLinks:t,currentLang:n}=$n({correspondingLink:!0});return(s,o)=>m(t).length&&m(n).label?(p(),ee(So,{key:0,class:"VPNavBarTranslations",icon:Xr},{default:N(()=>[y("div",kd,[y("p",$d,ce(m(n).label),1),(p(!0),x(ne,null,Pe(m(t),i=>(p(),ee(ms,{key:i.link,item:i},null,8,["item"]))),128))])]),_:1})):q("",!0)}});const Cd=D(Pd,[["__scopeId","data-v-750e2fc2"]]);const Sd={},Td={class:"VPSwitch",type:"button",role:"switch"},Ad={class:"check"},Ld={key:0,class:"icon"};function Ed(e,t){return p(),x("button",Td,[y("span",Ad,[e.$slots.default?(p(),x("span",Ld,[E(e.$slots,"default",{},void 0,!0)])):q("",!0)])])}const Vd=D(Sd,[["render",Ed],["__scopeId","data-v-0a2eba70"]]),Md={},Id={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Nd=Qc('',9),Od=[Nd];function Bd(e,t){return p(),x("svg",Id,Od)}const Fd=D(Md,[["render",Bd]]),Hd={},Rd={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Dd=y("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),jd=[Dd];function zd(e,t){return p(),x("svg",Rd,jd)}const Ud=D(Hd,[["render",zd]]),qd=j({__name:"VPSwitchAppearance",setup(e){const{site:t,isDark:n}=fe(),s=oe(!1),o=typeof localStorage<"u"?i():()=>{};je(()=>{s.value=document.documentElement.classList.contains("dark")});function i(){const r=window.matchMedia("(prefers-color-scheme: dark)"),l=document.documentElement.classList;let c=localStorage.getItem(xi),a=t.value.appearance==="dark"&&c==null||(c==="auto"||c==null?r.matches:c==="dark");r.onchange=_=>{c==="auto"&&d(a=_.matches)};function f(){d(a=!a),c=a?r.matches?"auto":"dark":r.matches?"light":"auto",localStorage.setItem(xi,c)}function d(_){const v=document.createElement("style");v.type="text/css",v.appendChild(document.createTextNode(`:not(.VPSwitchAppearance):not(.VPSwitchAppearance *) { - -webkit-transition: none !important; - -moz-transition: none !important; - -o-transition: none !important; - -ms-transition: none !important; - transition: none !important; -}`)),document.head.appendChild(v),s.value=_,l[_?"add":"remove"]("dark"),window.getComputedStyle(v).opacity,document.head.removeChild(v)}return f}return Ze(s,r=>{n.value=r}),(r,l)=>(p(),ee(Vd,{class:"VPSwitchAppearance","aria-label":"toggle dark mode","aria-checked":s.value,onClick:m(o)},{default:N(()=>[I(Fd,{class:"sun"}),I(Ud,{class:"moon"})]),_:1},8,["aria-checked","onClick"]))}});const To=D(qd,[["__scopeId","data-v-79763c0a"]]),Kd={key:0,class:"VPNavBarAppearance"},Wd=j({__name:"VPNavBarAppearance",setup(e){const{site:t}=fe();return(n,s)=>m(t).appearance?(p(),x("div",Kd,[I(To)])):q("",!0)}});const Gd=D(Wd,[["__scopeId","data-v-b203cd40"]]),Yd={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',youtube:'YouTube'},Qd=["href","innerHTML"],Xd=j({__name:"VPSocialLink",props:{icon:null,link:null},setup(e){const t=e,n=G(()=>typeof t.icon=="object"?t.icon.svg:Yd[t.icon]);return(s,o)=>(p(),x("a",{class:"VPSocialLink",href:e.link,target:"_blank",rel:"noopener",innerHTML:m(n)},null,8,Qd))}});const Jd=D(Xd,[["__scopeId","data-v-af939139"]]),Zd={class:"VPSocialLinks"},eh=j({__name:"VPSocialLinks",props:{links:null},setup(e){return(t,n)=>(p(),x("div",Zd,[(p(!0),x(ne,null,Pe(e.links,({link:s,icon:o})=>(p(),ee(Jd,{key:s,icon:o,link:s},null,8,["icon","link"]))),128))]))}});const Ao=D(eh,[["__scopeId","data-v-de2bf516"]]),th=j({__name:"VPNavBarSocialLinks",setup(e){const{theme:t}=fe();return(n,s)=>m(t).socialLinks?(p(),ee(Ao,{key:0,class:"VPNavBarSocialLinks",links:m(t).socialLinks},null,8,["links"])):q("",!0)}});const nh=D(th,[["__scopeId","data-v-db7c17db"]]),sh={key:0,class:"group translations"},oh={class:"trans-title"},ih={key:1,class:"group"},rh={class:"item appearance"},lh={class:"label"},ch={class:"appearance-action"},ah={key:2,class:"group"},uh={class:"item social-links"},fh=j({__name:"VPNavBarExtra",setup(e){const{site:t,theme:n}=fe(),{localeLinks:s,currentLang:o}=$n({correspondingLink:!0}),i=G(()=>s.value.length&&o.value.label||t.value.appearance||n.value.socialLinks);return(r,l)=>m(i)?(p(),ee(So,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:N(()=>[m(s).length&&m(o).label?(p(),x("div",sh,[y("p",oh,ce(m(o).label),1),(p(!0),x(ne,null,Pe(m(s),c=>(p(),ee(ms,{key:c.link,item:c},null,8,["item"]))),128))])):q("",!0),m(t).appearance?(p(),x("div",ih,[y("div",rh,[y("p",lh,ce(m(n).darkModeSwitchLabel||"Appearance"),1),y("div",ch,[I(To)])])])):q("",!0),m(n).socialLinks?(p(),x("div",ah,[y("div",uh,[I(Ao,{class:"social-links-list",links:m(n).socialLinks},null,8,["links"])])])):q("",!0)]),_:1})):q("",!0)}});const dh=D(fh,[["__scopeId","data-v-edd480f6"]]),hh=e=>(tt("data-v-670493dd"),e=e(),nt(),e),ph=["aria-expanded"],_h=hh(()=>y("span",{class:"container"},[y("span",{class:"top"}),y("span",{class:"middle"}),y("span",{class:"bottom"})],-1)),mh=[_h],vh=j({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(e){return(t,n)=>(p(),x("button",{type:"button",class:ve(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=s=>t.$emit("click"))},mh,10,ph))}});const gh=D(vh,[["__scopeId","data-v-670493dd"]]),yh=e=>(tt("data-v-37d41a43"),e=e(),nt(),e),bh={class:"container"},xh={class:"title"},wh={class:"content"},kh=yh(()=>y("div",{class:"curtain"},null,-1)),$h={class:"content-body"},Ph=j({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(e){const{y:t}=vu(),{hasSidebar:n}=lt(),s=G(()=>({"has-sidebar":n.value,fill:t.value>0}));return(o,i)=>(p(),x("div",{class:ve(["VPNavBar",m(s)])},[y("div",bh,[y("div",xh,[I(Nu,null,{"nav-bar-title-before":N(()=>[E(o.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":N(()=>[E(o.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),y("div",wh,[kh,y("div",$h,[E(o.$slots,"nav-bar-content-before",{},void 0,!0),I($f,{class:"search"}),I(md,{class:"menu"}),I(Cd,{class:"translations"}),I(Gd,{class:"appearance"}),I(nh,{class:"social-links"}),I(dh,{class:"extra"}),E(o.$slots,"nav-bar-content-after",{},void 0,!0),I(gh,{class:"hamburger",active:e.isScreenOpen,onClick:i[0]||(i[0]=r=>o.$emit("toggle-screen"))},null,8,["active"])])])])],2))}});const Ch=D(Ph,[["__scopeId","data-v-37d41a43"]]);function Sh(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1),qt=[],Zn=!1,Eo=-1,hn=void 0,Lt=void 0,pn=void 0,Jr=function(t){return qt.some(function(n){return!!(n.options.allowTouchMove&&n.options.allowTouchMove(t))})},es=function(t){var n=t||window.event;return Jr(n.target)||n.touches.length>1?!0:(n.preventDefault&&n.preventDefault(),!1)},Th=function(t){if(pn===void 0){var n=!!t&&t.reserveScrollBarGap===!0,s=window.innerWidth-document.documentElement.clientWidth;if(n&&s>0){var o=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10);pn=document.body.style.paddingRight,document.body.style.paddingRight=o+s+"px"}}hn===void 0&&(hn=document.body.style.overflow,document.body.style.overflow="hidden")},Ah=function(){pn!==void 0&&(document.body.style.paddingRight=pn,pn=void 0),hn!==void 0&&(document.body.style.overflow=hn,hn=void 0)},Lh=function(){return window.requestAnimationFrame(function(){if(Lt===void 0){Lt={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left};var t=window,n=t.scrollY,s=t.scrollX,o=t.innerHeight;document.body.style.position="fixed",document.body.style.top=-n,document.body.style.left=-s,setTimeout(function(){return window.requestAnimationFrame(function(){var i=o-window.innerHeight;i&&n>=o&&(document.body.style.top=-(n+i))})},300)}})},Eh=function(){if(Lt!==void 0){var t=-parseInt(document.body.style.top,10),n=-parseInt(document.body.style.left,10);document.body.style.position=Lt.position,document.body.style.top=Lt.top,document.body.style.left=Lt.left,window.scrollTo(n,t),Lt=void 0}},Vh=function(t){return t?t.scrollHeight-t.scrollTop<=t.clientHeight:!1},Mh=function(t,n){var s=t.targetTouches[0].clientY-Eo;return Jr(t.target)?!1:n&&n.scrollTop===0&&s>0||Vh(n)&&s<0?es(t):(t.stopPropagation(),!0)},Zr=function(t,n){if(!t){console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");return}if(!qt.some(function(o){return o.targetElement===t})){var s={targetElement:t,options:n||{}};qt=[].concat(Sh(qt),[s]),Jn?Lh():Th(n),Jn&&(t.ontouchstart=function(o){o.targetTouches.length===1&&(Eo=o.targetTouches[0].clientY)},t.ontouchmove=function(o){o.targetTouches.length===1&&Mh(o,t)},Zn||(document.addEventListener("touchmove",es,Lo?{passive:!1}:void 0),Zn=!0))}},el=function(){Jn&&(qt.forEach(function(t){t.targetElement.ontouchstart=null,t.targetElement.ontouchmove=null}),Zn&&(document.removeEventListener("touchmove",es,Lo?{passive:!1}:void 0),Zn=!1),Eo=-1),Jn?Eh():Ah(),qt=[]};const Ih=j({__name:"VPNavScreenMenuLink",props:{text:null,link:null},setup(e){const t=Ge("close-screen");return(n,s)=>(p(),ee(bt,{class:"VPNavScreenMenuLink",href:e.link,onClick:m(t)},{default:N(()=>[Ae(ce(e.text),1)]),_:1},8,["href","onClick"]))}});const Nh=D(Ih,[["__scopeId","data-v-0162d08e"]]),Oh={},Bh={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Fh=y("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),Hh=[Fh];function Rh(e,t){return p(),x("svg",Bh,Hh)}const Dh=D(Oh,[["render",Rh]]),jh=j({__name:"VPNavScreenMenuGroupLink",props:{text:null,link:null},setup(e){const t=Ge("close-screen");return(n,s)=>(p(),ee(bt,{class:"VPNavScreenMenuGroupLink",href:e.link,onClick:m(t)},{default:N(()=>[Ae(ce(e.text),1)]),_:1},8,["href","onClick"]))}});const tl=D(jh,[["__scopeId","data-v-7fd086c3"]]),zh={class:"VPNavScreenMenuGroupSection"},Uh={key:0,class:"title"},qh=j({__name:"VPNavScreenMenuGroupSection",props:{text:null,items:null},setup(e){return(t,n)=>(p(),x("div",zh,[e.text?(p(),x("p",Uh,ce(e.text),1)):q("",!0),(p(!0),x(ne,null,Pe(e.items,s=>(p(),ee(tl,{key:s.text,text:s.text,link:s.link},null,8,["text","link"]))),128))]))}});const Kh=D(qh,[["__scopeId","data-v-eb049aaa"]]),Wh=["aria-controls","aria-expanded"],Gh={class:"button-text"},Yh=["id"],Qh={key:1,class:"group"},Xh=j({__name:"VPNavScreenMenuGroup",props:{text:null,items:null},setup(e){const t=e,n=oe(!1),s=G(()=>`NavScreenGroup-${t.text.replace(" ","-").toLowerCase()}`);function o(){n.value=!n.value}return(i,r)=>(p(),x("div",{class:ve(["VPNavScreenMenuGroup",{open:n.value}])},[y("button",{class:"button","aria-controls":m(s),"aria-expanded":n.value,onClick:o},[y("span",Gh,ce(e.text),1),I(Dh,{class:"button-icon"})],8,Wh),y("div",{id:m(s),class:"items"},[(p(!0),x(ne,null,Pe(e.items,l=>(p(),x(ne,{key:l.text},["link"in l?(p(),x("div",{key:l.text,class:"item"},[I(tl,{text:l.text,link:l.link},null,8,["text","link"])])):(p(),x("div",Qh,[I(Kh,{text:l.text,items:l.items},null,8,["text","items"])]))],64))),128))],8,Yh)],2))}});const Jh=D(Xh,[["__scopeId","data-v-48a8b068"]]),Zh={key:0,class:"VPNavScreenMenu"},e0=j({__name:"VPNavScreenMenu",setup(e){const{theme:t}=fe();return(n,s)=>m(t).nav?(p(),x("nav",Zh,[(p(!0),x(ne,null,Pe(m(t).nav,o=>(p(),x(ne,{key:o.text},["link"in o?(p(),ee(Nh,{key:0,text:o.text,link:o.link},null,8,["text","link"])):(p(),ee(Jh,{key:1,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):q("",!0)}}),t0={key:0,class:"VPNavScreenAppearance"},n0={class:"text"},s0=j({__name:"VPNavScreenAppearance",setup(e){const{site:t,theme:n}=fe();return(s,o)=>m(t).appearance?(p(),x("div",t0,[y("p",n0,ce(m(n).darkModeSwitchLabel||"Appearance"),1),I(To)])):q("",!0)}});const o0=D(s0,[["__scopeId","data-v-7c28cbe2"]]),i0={class:"list"},r0=j({__name:"VPNavScreenTranslations",setup(e){const{localeLinks:t,currentLang:n}=$n({correspondingLink:!0}),s=oe(!1);function o(){s.value=!s.value}return(i,r)=>m(t).length&&m(n).label?(p(),x("div",{key:0,class:ve(["VPNavScreenTranslations",{open:s.value}])},[y("button",{class:"title",onClick:o},[I(Xr,{class:"icon lang"}),Ae(" "+ce(m(n).label)+" ",1),I(Qr,{class:"icon chevron"})]),y("ul",i0,[(p(!0),x(ne,null,Pe(m(t),l=>(p(),x("li",{key:l.link,class:"item"},[I(bt,{class:"link",href:l.link},{default:N(()=>[Ae(ce(l.text),1)]),_:2},1032,["href"])]))),128))])],2)):q("",!0)}});const l0=D(r0,[["__scopeId","data-v-ebb3a0b5"]]),c0=j({__name:"VPNavScreenSocialLinks",setup(e){const{theme:t}=fe();return(n,s)=>m(t).socialLinks?(p(),ee(Ao,{key:0,class:"VPNavScreenSocialLinks",links:m(t).socialLinks},null,8,["links"])):q("",!0)}}),a0={class:"container"},u0=j({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(e){const t=oe(null);function n(){Zr(t.value,{reserveScrollBarGap:!0})}function s(){el()}return(o,i)=>(p(),ee(ps,{name:"fade",onEnter:n,onAfterLeave:s},{default:N(()=>[e.open?(p(),x("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:t},[y("div",a0,[E(o.$slots,"nav-screen-content-before",{},void 0,!0),I(e0,{class:"menu"}),I(l0,{class:"translations"}),I(o0,{class:"appearance"}),I(c0,{class:"social-links"}),E(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):q("",!0)]),_:3}))}});const f0=D(u0,[["__scopeId","data-v-ea8d6f65"]]),d0={class:"VPNav"},h0=j({__name:"VPNav",setup(e){const{isScreenOpen:t,closeScreen:n,toggleScreen:s}=Tu();return zt("close-screen",n),(o,i)=>(p(),x("header",d0,[I(Ch,{"is-screen-open":m(t),onToggleScreen:m(s)},{"nav-bar-title-before":N(()=>[E(o.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":N(()=>[E(o.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":N(()=>[E(o.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":N(()=>[E(o.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),I(f0,{open:m(t)},{"nav-screen-content-before":N(()=>[E(o.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":N(()=>[E(o.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])]))}});const p0=D(h0,[["__scopeId","data-v-66446b03"]]),_0={},m0={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},v0=y("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),g0=y("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),y0=y("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),b0=y("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),x0=[v0,g0,y0,b0];function w0(e,t){return p(),x("svg",m0,x0)}const k0=D(_0,[["render",w0]]),$0={key:0,class:"VPLocalNav"},P0=["aria-expanded"],C0={class:"menu-text"},S0=j({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(e){const{theme:t}=fe(),{hasSidebar:n}=lt();function s(){window.scrollTo({top:0,left:0,behavior:"smooth"})}return(o,i)=>m(n)?(p(),x("div",$0,[y("button",{class:"menu","aria-expanded":e.open,"aria-controls":"VPSidebarNav",onClick:i[0]||(i[0]=r=>o.$emit("open-menu"))},[I(k0,{class:"menu-icon"}),y("span",C0,ce(m(t).sidebarMenuLabel||"Menu"),1)],8,P0),y("a",{class:"top-link",href:"#",onClick:s},ce(m(t).returnToTopLabel||"Return to top"),1)])):q("",!0)}});const T0=D(S0,[["__scopeId","data-v-6226d912"]]),A0={},L0={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},E0=y("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),V0=[E0];function M0(e,t){return p(),x("svg",L0,V0)}const I0=D(A0,[["render",M0]]),N0=e=>(tt("data-v-9e9ac16f"),e=e(),nt(),e),O0=["role"],B0=N0(()=>y("div",{class:"indicator"},null,-1)),F0={key:1,class:"items"},H0=j({__name:"VPSidebarItem",props:{item:null,depth:null},setup(e){const t=e,{collapsed:n,collapsible:s,isLink:o,isActiveLink:i,hasActiveLink:r,hasChildren:l,toggle:c}=wu(G(()=>t.item)),a=G(()=>l.value?"section":"div"),f=G(()=>o.value?"a":"div"),d=G(()=>l.value?t.depth+2===7?"p":`h${t.depth+2}`:"p"),_=G(()=>o.value?void 0:"button"),v=G(()=>[[`level-${t.depth}`],{collapsible:s.value},{collapsed:n.value},{"is-link":o.value},{"is-active":i.value},{"has-active":r.value}]);function S(){!t.item.link&&c()}function A(){t.item.link&&c()}return(Y,b)=>{const w=gt("VPSidebarItem",!0);return p(),ee(yn(m(a)),{class:ve(["VPSidebarItem",m(v)])},{default:N(()=>[e.item.text?(p(),x("div",{key:0,class:"item",role:m(_),onClick:S},[B0,I(bt,{tag:m(f),class:"link",href:e.item.link},{default:N(()=>[(p(),ee(yn(m(d)),{class:"text",innerHTML:e.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href"]),e.item.collapsed!=null?(p(),x("div",{key:0,class:"caret",role:"button",onClick:A},[I(I0,{class:"caret-icon"})])):q("",!0)],8,O0)):q("",!0),e.item.items&&e.item.items.length?(p(),x("div",F0,[e.depth<5?(p(!0),x(ne,{key:0},Pe(e.item.items,P=>(p(),ee(w,{key:P.text,item:P,depth:e.depth+1},null,8,["item","depth"]))),128)):q("",!0)])):q("",!0)]),_:1},8,["class"])}}});const R0=D(H0,[["__scopeId","data-v-9e9ac16f"]]),nl=e=>(tt("data-v-f125b138"),e=e(),nt(),e),D0=nl(()=>y("div",{class:"curtain"},null,-1)),j0={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},z0=nl(()=>y("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),U0=j({__name:"VPSidebar",props:{open:{type:Boolean}},setup(e){const t=e,{sidebarGroups:n,hasSidebar:s}=lt();let o=oe(null);function i(){Zr(o.value,{reserveScrollBarGap:!0})}function r(){el()}return hc(async()=>{var l;t.open?(i(),(l=o.value)==null||l.focus()):r()}),(l,c)=>m(s)?(p(),x("aside",{key:0,class:ve(["VPSidebar",{open:e.open}]),ref_key:"navEl",ref:o,onClick:c[0]||(c[0]=Ir(()=>{},["stop"]))},[D0,y("nav",j0,[z0,E(l.$slots,"sidebar-nav-before",{},void 0,!0),(p(!0),x(ne,null,Pe(m(n),a=>(p(),x("div",{key:a.text,class:"group"},[I(R0,{item:a,depth:0},null,8,["item"])]))),128)),E(l.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):q("",!0)}});const q0=D(U0,[["__scopeId","data-v-f125b138"]]),K0={},W0={class:"VPPage"};function G0(e,t){const n=gt("Content");return p(),x("div",W0,[I(n)])}const Y0=D(K0,[["render",G0]]),Q0=j({__name:"VPButton",props:{tag:null,size:null,theme:null,text:null,href:null},setup(e){const t=e,n=G(()=>[t.size??"medium",t.theme??"brand"]),s=G(()=>t.href&&_s.test(t.href)),o=G(()=>t.tag?t.tag:t.href?"a":"button");return(i,r)=>(p(),ee(yn(m(o)),{class:ve(["VPButton",m(n)]),href:e.href?m(wn)(e.href):void 0,target:m(s)?"_blank":void 0,rel:m(s)?"noreferrer":void 0},{default:N(()=>[Ae(ce(e.text),1)]),_:1},8,["class","href","target","rel"]))}});const X0=D(Q0,[["__scopeId","data-v-aea69b24"]]),J0=e=>(tt("data-v-34a19025"),e=e(),nt(),e),Z0={class:"container"},ep={class:"main"},tp={key:0,class:"name"},np={class:"clip"},sp={key:1,class:"text"},op={key:2,class:"tagline"},ip={key:3,class:"actions"},rp={key:0,class:"image"},lp={class:"image-container"},cp=J0(()=>y("div",{class:"image-bg"},null,-1)),ap=j({__name:"VPHero",props:{name:null,text:null,tagline:null,image:null,actions:null},setup(e){const t=Ge("hero-image-slot-exists");return(n,s)=>(p(),x("div",{class:ve(["VPHero",{"has-image":e.image||m(t)}])},[y("div",Z0,[y("div",ep,[e.name?(p(),x("h1",tp,[y("span",np,ce(e.name),1)])):q("",!0),e.text?(p(),x("p",sp,ce(e.text),1)):q("",!0),e.tagline?(p(),x("p",op,ce(e.tagline),1)):q("",!0),e.actions?(p(),x("div",ip,[(p(!0),x(ne,null,Pe(e.actions,o=>(p(),x("div",{key:o.link,class:"action"},[I(X0,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link},null,8,["theme","text","href"])]))),128))])):q("",!0)]),e.image||m(t)?(p(),x("div",rp,[y("div",lp,[cp,E(n.$slots,"home-hero-image",{},()=>[e.image?(p(),ee(Po,{key:0,class:"image-src",image:e.image},null,8,["image"])):q("",!0)],!0)])])):q("",!0)])],2))}});const up=D(ap,[["__scopeId","data-v-34a19025"]]),fp=j({__name:"VPHomeHero",setup(e){const{frontmatter:t}=fe();return(n,s)=>m(t).hero?(p(),ee(up,{key:0,class:"VPHomeHero",name:m(t).hero.name,text:m(t).hero.text,tagline:m(t).hero.tagline,image:m(t).hero.image,actions:m(t).hero.actions},{"home-hero-image":N(()=>[E(n.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):q("",!0)}}),dp={},hp={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},pp=y("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),_p=[pp];function mp(e,t){return p(),x("svg",hp,_p)}const vp=D(dp,[["render",mp]]),gp={class:"box"},yp={key:1,class:"icon"},bp=["innerHTML"],xp=["innerHTML"],wp={key:2,class:"link-text"},kp={class:"link-text-value"},$p=j({__name:"VPFeature",props:{icon:null,title:null,details:null,link:null,linkText:null},setup(e){return(t,n)=>(p(),ee(bt,{class:"VPFeature",href:e.link,"no-icon":!0},{default:N(()=>[y("article",gp,[typeof e.icon=="object"?(p(),ee(Po,{key:0,image:e.icon,alt:e.icon.alt,height:e.icon.height,width:e.icon.width},null,8,["image","alt","height","width"])):e.icon?(p(),x("div",yp,ce(e.icon),1)):q("",!0),y("h2",{class:"title",innerHTML:e.title},null,8,bp),y("p",{class:"details",innerHTML:e.details},null,8,xp),e.linkText?(p(),x("div",wp,[y("p",kp,[Ae(ce(e.linkText)+" ",1),I(vp,{class:"link-text-icon"})])])):q("",!0)])]),_:1},8,["href"]))}});const Pp=D($p,[["__scopeId","data-v-d8821566"]]),Cp={key:0,class:"VPFeatures"},Sp={class:"container"},Tp={class:"items"},Ap=j({__name:"VPFeatures",props:{features:null},setup(e){const t=e,n=G(()=>{const s=t.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s%2===0)return"grid-4"}else return});return(s,o)=>e.features?(p(),x("div",Cp,[y("div",Sp,[y("div",Tp,[(p(!0),x(ne,null,Pe(e.features,i=>(p(),x("div",{key:i.title,class:ve(["item",[m(n)]])},[I(Pp,{icon:i.icon,title:i.title,details:i.details,link:i.link,"link-text":i.linkText},null,8,["icon","title","details","link","link-text"])],2))),128))])])])):q("",!0)}});const Lp=D(Ap,[["__scopeId","data-v-5e2470ab"]]),Ep=j({__name:"VPHomeFeatures",setup(e){const{frontmatter:t}=fe();return(n,s)=>m(t).features?(p(),ee(Lp,{key:0,class:"VPHomeFeatures",features:m(t).features},null,8,["features"])):q("",!0)}}),Vp={class:"VPHome"},Mp=j({__name:"VPHome",setup(e){return(t,n)=>{const s=gt("Content");return p(),x("div",Vp,[E(t.$slots,"home-hero-before",{},void 0,!0),I(fp,null,{"home-hero-image":N(()=>[E(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),E(t.$slots,"home-hero-after",{},void 0,!0),E(t.$slots,"home-features-before",{},void 0,!0),I(Ep),E(t.$slots,"home-features-after",{},void 0,!0),I(s)])}}});const Ip=D(Mp,[["__scopeId","data-v-a6ccdea8"]]);function Np(){const{hasSidebar:e}=lt(),t=Ks("(min-width: 960px)"),n=Ks("(min-width: 1280px)");return{isAsideEnabled:G(()=>!n.value&&!t.value?!1:e.value?n.value:t.value)}}const Op=71;function Bp(e,t){if(e===!1)return[];let n=[];return document.querySelectorAll("h2, h3, h4, h5, h6").forEach(s=>{if(s.textContent&&s.id){let o=s.textContent;if(t===!1){const i=s.cloneNode(!0);for(const r of i.querySelectorAll(".VPBadge"))r.remove();o=i.textContent||""}n.push({level:Number(s.tagName[1]),title:o.replace(/\s+#\s*$/,""),link:`#${s.id}`})}}),Fp(n,e)}function Fp(e,t){const n=(typeof t=="object"&&!Array.isArray(t)?t.level:t)||2;return Hp(e,typeof n=="number"?[n,n]:n==="deep"?[2,6]:n)}function Hp(e,t){const n=[];return e=e.map(s=>({...s})),e.forEach((s,o)=>{s.level>=t[0]&&s.level<=t[1]&&Rp(o,e,t)&&n.push(s)}),n}function Rp(e,t,n){if(e===0)return!0;const s=t[e];for(let o=e-1;o>=0;o--){const i=t[o];if(i.level=n[0]&&i.level<=n[1])return i.children==null&&(i.children=[]),i.children.push(s),!1}return!0}function Dp(e,t){const{isAsideEnabled:n}=Np(),s=gu(i,100);let o=null;je(()=>{requestAnimationFrame(i),window.addEventListener("scroll",s)}),mo(()=>{r(location.hash)}),en(()=>{window.removeEventListener("scroll",s)});function i(){if(!n.value)return;const l=[].slice.call(e.value.querySelectorAll(".outline-link")),c=[].slice.call(document.querySelectorAll(".content .header-anchor")).filter(v=>l.some(S=>S.hash===v.hash&&v.offsetParent!==null)),a=window.scrollY,f=window.innerHeight,d=document.body.offsetHeight,_=Math.abs(a+f-d)<1;if(c.length&&_){r(c[c.length-1].hash);return}for(let v=0;v{const s=gt("VPDocAsideOutlineItem",!0);return p(),x("ul",{class:ve(e.root?"root":"nested")},[(p(!0),x(ne,null,Pe(e.headers,({children:o,link:i,title:r})=>(p(),x("li",null,[y("a",{class:"outline-link",href:i,onClick:n[0]||(n[0]=(...l)=>e.onClick&&e.onClick(...l))},ce(r),9,zp),o!=null&&o.length?(p(),ee(s,{key:0,headers:o,onClick:e.onClick},null,8,["headers","onClick"])):q("",!0)]))),256))],2)}}});const qp=D(Up,[["__scopeId","data-v-0eba5460"]]),Kp=e=>(tt("data-v-8ecbaa97"),e=e(),nt(),e),Wp={class:"content"},Gp={class:"outline-title"},Yp={"aria-labelledby":"doc-outline-aria-label"},Qp=Kp(()=>y("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),Xp=j({__name:"VPDocAsideOutline",setup(e){const{frontmatter:t,theme:n}=fe(),s=G(()=>t.value.outline??n.value.outline),o=Ge("onContentUpdated");o.value=()=>{i.value=Bp(s.value,n.value.outlineBadges)};const i=oe([]),r=G(()=>i.value.length>0),l=oe(),c=oe();Dp(l,c);function a({target:f}){const d="#"+f.href.split("#")[1],_=document.querySelector(decodeURIComponent(d));_==null||_.focus()}return(f,d)=>(p(),x("div",{class:ve(["VPDocAsideOutline",{"has-outline":m(r)}]),ref_key:"container",ref:l},[y("div",Wp,[y("div",{class:"outline-marker",ref_key:"marker",ref:c},null,512),y("div",Gp,ce(typeof m(n).outline=="object"&&!Array.isArray(m(n).outline)&&m(n).outline.label||m(n).outlineTitle||"On this page"),1),y("nav",Yp,[Qp,I(qp,{headers:i.value,root:!0,onClick:a},null,8,["headers"])])])],2))}});const Jp=D(Xp,[["__scopeId","data-v-8ecbaa97"]]),Zp={class:"VPDocAsideCarbonAds"},e1=j({__name:"VPDocAsideCarbonAds",props:{carbonAds:null},setup(e){const t=()=>null;return(n,s)=>(p(),x("div",Zp,[I(m(t),{"carbon-ads":e.carbonAds},null,8,["carbon-ads"])]))}}),t1=e=>(tt("data-v-a69aa6fb"),e=e(),nt(),e),n1={class:"VPDocAside"},s1=t1(()=>y("div",{class:"spacer"},null,-1)),o1=j({__name:"VPDocAside",setup(e){const{theme:t}=fe();return(n,s)=>(p(),x("div",n1,[E(n.$slots,"aside-top",{},void 0,!0),E(n.$slots,"aside-outline-before",{},void 0,!0),I(Jp),E(n.$slots,"aside-outline-after",{},void 0,!0),s1,E(n.$slots,"aside-ads-before",{},void 0,!0),m(t).carbonAds?(p(),ee(e1,{key:0,"carbon-ads":m(t).carbonAds},null,8,["carbon-ads"])):q("",!0),E(n.$slots,"aside-ads-after",{},void 0,!0),E(n.$slots,"aside-bottom",{},void 0,!0)]))}});const i1=D(o1,[["__scopeId","data-v-a69aa6fb"]]);function r1(){const{theme:e,page:t}=fe();return G(()=>{const{text:n="Edit this page",pattern:s=""}=e.value.editLink||{},{relativePath:o}=t.value;return{url:s.replace(/:path/g,o),text:n}})}function l1(){const{page:e,theme:t,frontmatter:n}=fe();return G(()=>{const s=Wr(t.value.sidebar,e.value.relativePath),o=bu(s),i=o.findIndex(r=>Nt(e.value.relativePath,r.link));return{prev:n.value.prev?{...o[i-1],text:n.value.prev}:o[i-1],next:n.value.next?{...o[i+1],text:n.value.next}:o[i+1]}})}const c1={},a1={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},u1=y("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),f1=y("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),d1=[u1,f1];function h1(e,t){return p(),x("svg",a1,d1)}const p1=D(c1,[["render",h1]]),_1={class:"VPLastUpdated"},m1=["datetime"],v1=j({__name:"VPDocFooterLastUpdated",setup(e){const{theme:t,page:n}=fe(),s=G(()=>new Date(n.value.lastUpdated)),o=G(()=>s.value.toISOString()),i=oe("");return je(()=>{It(()=>{i.value=s.value.toLocaleString(window.navigator.language)})}),(r,l)=>(p(),x("p",_1,[Ae(ce(m(t).lastUpdatedText||"Last updated")+": ",1),y("time",{datetime:m(o)},ce(i.value),9,m1)]))}});const g1=D(v1,[["__scopeId","data-v-d1ad48b7"]]),y1={key:0,class:"VPDocFooter"},b1={key:0,class:"edit-info"},x1={key:0,class:"edit-link"},w1={key:1,class:"last-updated"},k1={key:1,class:"prev-next"},$1={class:"pager"},P1=["href"],C1=["innerHTML"],S1=["innerHTML"],T1=["href"],A1=["innerHTML"],L1=["innerHTML"],E1=j({__name:"VPDocFooter",setup(e){const{theme:t,page:n,frontmatter:s}=fe(),o=r1(),i=l1(),r=G(()=>t.value.editLink&&s.value.editLink!==!1),l=G(()=>n.value.lastUpdated&&s.value.lastUpdated!==!1),c=G(()=>r.value||l.value||i.value.prev||i.value.next);return(a,f)=>{var d,_;return m(c)?(p(),x("footer",y1,[m(r)||m(l)?(p(),x("div",b1,[m(r)?(p(),x("div",x1,[I(bt,{class:"edit-link-button",href:m(o).url,"no-icon":!0},{default:N(()=>[I(p1,{class:"edit-link-icon"}),Ae(" "+ce(m(o).text),1)]),_:1},8,["href"])])):q("",!0),m(l)?(p(),x("div",w1,[I(g1)])):q("",!0)])):q("",!0),m(i).prev||m(i).next?(p(),x("div",k1,[y("div",$1,[m(i).prev?(p(),x("a",{key:0,class:"pager-link prev",href:m(wn)(m(i).prev.link)},[y("span",{class:"desc",innerHTML:((d=m(t).docFooter)==null?void 0:d.prev)||"Previous page"},null,8,C1),y("span",{class:"title",innerHTML:m(i).prev.text},null,8,S1)],8,P1)):q("",!0)]),y("div",{class:ve(["pager",{"has-prev":m(i).prev}])},[m(i).next?(p(),x("a",{key:0,class:"pager-link next",href:m(wn)(m(i).next.link)},[y("span",{class:"desc",innerHTML:((_=m(t).docFooter)==null?void 0:_.next)||"Next page"},null,8,A1),y("span",{class:"title",innerHTML:m(i).next.text},null,8,L1)],8,T1)):q("",!0)],2)])):q("",!0)])):q("",!0)}}});const V1=D(E1,[["__scopeId","data-v-193f9e2f"]]),M1=e=>(tt("data-v-fca53d57"),e=e(),nt(),e),I1={class:"container"},N1={key:0,class:"aside"},O1=M1(()=>y("div",{class:"aside-curtain"},null,-1)),B1={class:"aside-container"},F1={class:"aside-content"},H1={class:"content"},R1={class:"content-container"},D1={class:"main"},j1=j({__name:"VPDoc",setup(e){const t=yt(),{hasSidebar:n,hasAside:s}=lt(),o=G(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,"")),i=oe();return zt("onContentUpdated",i),(r,l)=>{const c=gt("Content");return p(),x("div",{class:ve(["VPDoc",{"has-sidebar":m(n),"has-aside":m(s)}])},[y("div",I1,[m(s)?(p(),x("div",N1,[O1,y("div",B1,[y("div",F1,[I(i1,null,{"aside-top":N(()=>[E(r.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":N(()=>[E(r.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":N(()=>[E(r.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":N(()=>[E(r.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":N(()=>[E(r.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":N(()=>[E(r.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])])):q("",!0),y("div",H1,[y("div",R1,[E(r.$slots,"doc-before",{},void 0,!0),y("main",D1,[I(c,{class:ve(["vp-doc",m(o)]),onContentUpdated:i.value},null,8,["class","onContentUpdated"])]),E(r.$slots,"doc-footer-before",{},void 0,!0),I(V1),E(r.$slots,"doc-after",{},void 0,!0)])])])],2)}}});const z1=D(j1,[["__scopeId","data-v-fca53d57"]]),U1=j({__name:"VPContent",setup(e){const t=yt(),{frontmatter:n}=fe(),{hasSidebar:s}=lt(),o=Ge("NotFound");return(i,r)=>(p(),x("div",{class:ve(["VPContent",{"has-sidebar":m(s),"is-home":m(n).layout==="home"}]),id:"VPContent"},[m(t).component===m(o)?(p(),ee(m(o),{key:0})):m(n).layout==="page"?(p(),ee(Y0,{key:1})):m(n).layout==="home"?(p(),ee(Ip,{key:2},{"home-hero-before":N(()=>[E(i.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-image":N(()=>[E(i.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":N(()=>[E(i.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":N(()=>[E(i.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":N(()=>[E(i.$slots,"home-features-after",{},void 0,!0)]),_:3})):(p(),ee(z1,{key:3},{"doc-footer-before":N(()=>[E(i.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":N(()=>[E(i.$slots,"doc-before",{},void 0,!0)]),"doc-after":N(()=>[E(i.$slots,"doc-after",{},void 0,!0)]),"aside-top":N(()=>[E(i.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":N(()=>[E(i.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":N(()=>[E(i.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":N(()=>[E(i.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":N(()=>[E(i.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":N(()=>[E(i.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}});const q1=D(U1,[["__scopeId","data-v-defa13ac"]]),K1={class:"container"},W1=["innerHTML"],G1=["innerHTML"],Y1=j({__name:"VPFooter",setup(e){const{theme:t}=fe(),{hasSidebar:n}=lt();return(s,o)=>m(t).footer?(p(),x("footer",{key:0,class:ve(["VPFooter",{"has-sidebar":m(n)}])},[y("div",K1,[m(t).footer.message?(p(),x("p",{key:0,class:"message",innerHTML:m(t).footer.message},null,8,W1)):q("",!0),m(t).footer.copyright?(p(),x("p",{key:1,class:"copyright",innerHTML:m(t).footer.copyright},null,8,G1)):q("",!0)])],2)):q("",!0)}});const Q1=D(Y1,[["__scopeId","data-v-131f6713"]]),X1={key:0,class:"Layout"},J1=j({__name:"Layout",setup(e){const{isOpen:t,open:n,close:s}=lt(),o=yt();Ze(()=>o.path,s),xu(t,s),zt("close-sidebar",s),zt("is-sidebar-open",t);const{frontmatter:i}=fe(),r=ia(),l=G(()=>!!r["home-hero-image"]);return zt("hero-image-slot-exists",l),(c,a)=>{const f=gt("Content");return m(i).layout!==!1?(p(),x("div",X1,[E(c.$slots,"layout-top",{},void 0,!0),I($u),I(Su,{class:"backdrop",show:m(t),onClick:m(s)},null,8,["show","onClick"]),I(p0,null,{"nav-bar-title-before":N(()=>[E(c.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":N(()=>[E(c.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":N(()=>[E(c.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":N(()=>[E(c.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":N(()=>[E(c.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":N(()=>[E(c.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),I(T0,{open:m(t),onOpenMenu:m(n)},null,8,["open","onOpenMenu"]),I(q0,{open:m(t)},{"sidebar-nav-before":N(()=>[E(c.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":N(()=>[E(c.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),I(q1,null,{"home-hero-before":N(()=>[E(c.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-image":N(()=>[E(c.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":N(()=>[E(c.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":N(()=>[E(c.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":N(()=>[E(c.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":N(()=>[E(c.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":N(()=>[E(c.$slots,"doc-before",{},void 0,!0)]),"doc-after":N(()=>[E(c.$slots,"doc-after",{},void 0,!0)]),"aside-top":N(()=>[E(c.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":N(()=>[E(c.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":N(()=>[E(c.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":N(()=>[E(c.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":N(()=>[E(c.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":N(()=>[E(c.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),I(Q1),E(c.$slots,"layout-bottom",{},void 0,!0)])):(p(),ee(f,{key:1}))}}});const Z1=D(J1,[["__scopeId","data-v-609f66fb"]]),vs=e=>(tt("data-v-0a507fb2"),e=e(),nt(),e),e_={class:"NotFound"},t_=vs(()=>y("p",{class:"code"},"404",-1)),n_=vs(()=>y("h1",{class:"title"},"PAGE NOT FOUND",-1)),s_=vs(()=>y("div",{class:"divider"},null,-1)),o_=vs(()=>y("blockquote",{class:"quote"}," But if you don't change your direction, and if you keep looking, you may end up where you are heading. ",-1)),i_={class:"action"},r_=["href"],l_=j({__name:"NotFound",setup(e){const{site:t}=fe(),{localeLinks:n}=$n({removeCurrent:!1}),s=oe("/");return je(()=>{var i;const o=window.location.pathname.replace(t.value.base,"").replace(/(^.*?\/).*$/,"/$1");n.value.length&&(s.value=((i=n.value.find(({link:r})=>r.startsWith(o)))==null?void 0:i.link)||n.value[0].link)}),(o,i)=>(p(),x("div",e_,[t_,n_,s_,o_,y("div",i_,[y("a",{class:"link",href:m(Qt)(s.value),"aria-label":"go to home"}," Take me home ",8,r_)])]))}});const c_=D(l_,[["__scopeId","data-v-0a507fb2"]]);const Kt={Layout:Z1,NotFound:c_,enhanceApp:({app:e})=>{e.component("Badge",za)}};function a_(e,t){let n=[],s=!0;const o=i=>{if(s){s=!1;return}n.forEach(r=>document.head.removeChild(r)),n=[],i.forEach(r=>{const l=u_(r);document.head.appendChild(l),n.push(l)})};It(()=>{const i=e.data,r=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[];document.title=Hr(r,i),document.querySelector("meta[name=description]").setAttribute("content",l||r.description),o(Rr(r.head,d_(c)))})}function u_([e,t,n]){const s=document.createElement(e);for(const o in t)s.setAttribute(o,t[o]);return n&&(s.innerHTML=n),s}function f_(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function d_(e){return e.filter(t=>!f_(t))}const Es=new Set,sl=()=>document.createElement("link"),h_=e=>{const t=sl();t.rel="prefetch",t.href=e,document.head.appendChild(t)},p_=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let Bn;const __=Ce&&(Bn=sl())&&Bn.relList&&Bn.relList.supports&&Bn.relList.supports("prefetch")?h_:p_;function m_(){if(!Ce||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(r=>{if(r.isIntersecting){const l=r.target;n.unobserve(l);const{pathname:c}=l;if(!Es.has(c)){Es.add(c);const a=jr(c);__(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{target:r}=i,{hostname:l,pathname:c}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),a=c.match(/\.\w+$/);a&&a[0]!==".html"||r!=="_blank"&&l===location.hostname&&(c!==location.pathname?n.observe(i):Es.add(c))})})};je(s);const o=yt();Ze(()=>o.path,s),en(()=>{n&&n.disconnect()})}const v_=j({setup(e,{slots:t}){const n=oe(!1);return je(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function g_(){if(Ce){const e=new Map;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const o=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!o||!i)return;const r=/language-(shellscript|shell|bash|sh|zsh)/.test(o.className);let l="";i.querySelectorAll("span.line:not(.diff.remove)").forEach(c=>l+=(c.textContent||"")+` -`),l=l.slice(0,-1),r&&(l=l.replace(/^ *(\$|>) /gm,"").trim()),y_(l).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const c=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,c)})}})}}async function y_(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const s=document.getSelection(),o=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),o&&(s.removeAllRanges(),s.addRange(o)),n&&n.focus()}}function b_(){Ce&&window.addEventListener("click",e=>{var n,s;const t=e.target;if(t.matches(".vp-code-group input")){const o=(n=t.parentElement)==null?void 0:n.parentElement,i=Array.from((o==null?void 0:o.querySelectorAll("input"))||[]).indexOf(t),r=o==null?void 0:o.querySelector('div[class*="language-"].active'),l=(s=o==null?void 0:o.querySelectorAll('div[class*="language-"]'))==null?void 0:s[i];r&&l&&r!==l&&(r.classList.remove("active"),l.classList.add("active"))}})}const ol=Kt.NotFound||(()=>"404 Not Found"),x_=j({name:"VitePressApp",setup(){const{site:e}=ko();return je(()=>{It(()=>{document.documentElement.lang=e.value.lang,document.documentElement.dir=e.value.dir})}),m_(),g_(),b_(),Kt.setup&&Kt.setup(),()=>Yn(Kt.Layout)}});async function w_(){const e=$_(),t=k_();t.provide(zr,e);const n=Ja(e.route);return t.provide(Dr,n),t.provide("NotFound",ol),t.component("Content",su),t.component("ClientOnly",v_),Object.defineProperty(t.config.globalProperties,"$frontmatter",{get(){return n.frontmatter.value}}),Kt.enhanceApp&&await Kt.enhanceApp({app:t,router:e,siteData:ht}),{app:t,router:e,data:n}}function k_(){return Fa(x_)}function $_(){let e=Ce,t;return tu(n=>{let s=jr(n);return e&&(t=s),(e||t===s)&&(s=s.replace(/\.js$/,".lean.js")),Ce&&(e=!1),Nr(()=>import(s),[])},ol)}Ce&&w_().then(({app:e,router:t,data:n})=>{t.go().then(()=>{a_(t.route,n.site),e.mount("#app")})});export{D as _,Qc as a,y as b,x as c,w_ as createApp,Ae as d,p as o}; diff --git a/docs/document/assets/chunks/framework.75837252.js b/docs/document/assets/chunks/framework.75837252.js new file mode 100644 index 000000000..481c5403a --- /dev/null +++ b/docs/document/assets/chunks/framework.75837252.js @@ -0,0 +1,2 @@ +function Jn(e,t){const n=Object.create(null),s=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}function Xn(e){if(H(e)){const t={};for(let n=0;n{if(n){const s=n.split(Oi);s.length>1&&(t[s[0].trim()]=s[1].trim())}}),t}function Zn(e){let t="";if(se(e))t=e;else if(H(e))for(let n=0;nse(e)?e:e==null?"":H(e)||te(e)&&(e.toString===gr||!K(e.toString))?JSON.stringify(e,dr,2):String(e),dr=(e,t)=>t&&t.__v_isRef?dr(e,t.value):ut(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[s,r])=>(n[`${s} =>`]=r,n),{})}:hr(t)?{[`Set(${t.size})`]:[...t.values()]}:te(t)&&!H(t)&&!mr(t)?String(t):t,ee={},at=[],Re=()=>{},Mi=()=>!1,Li=/^on[^a-z]/,$t=e=>Li.test(e),Qn=e=>e.startsWith("onUpdate:"),ce=Object.assign,Gn=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Si=Object.prototype.hasOwnProperty,Y=(e,t)=>Si.call(e,t),H=Array.isArray,ut=e=>fn(e)==="[object Map]",hr=e=>fn(e)==="[object Set]",K=e=>typeof e=="function",se=e=>typeof e=="string",es=e=>typeof e=="symbol",te=e=>e!==null&&typeof e=="object",pr=e=>te(e)&&K(e.then)&&K(e.catch),gr=Object.prototype.toString,fn=e=>gr.call(e),Ni=e=>fn(e).slice(8,-1),mr=e=>fn(e)==="[object Object]",ts=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,vt=Jn(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),an=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Hi=/-(\w)/g,Le=an(e=>e.replace(Hi,(t,n)=>n?n.toUpperCase():"")),$i=/\B([A-Z])/g,ot=an(e=>e.replace($i,"-$1").toLowerCase()),un=an(e=>e.charAt(0).toUpperCase()+e.slice(1)),Xt=an(e=>e?`on${un(e)}`:""),Pt=(e,t)=>!Object.is(e,t),Zt=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Sn=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ui=e=>{const t=se(e)?Number(e):NaN;return isNaN(t)?e:t};let Cs;const Bi=()=>Cs||(Cs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});let _e;class ji{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=_e,!t&&_e&&(this.index=(_e.scopes||(_e.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=_e;try{return _e=this,t()}finally{_e=n}}}on(){_e=this}off(){_e=this.parent}stop(t){if(this._active){let n,s;for(n=0,s=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},_r=e=>(e.w&qe)>0,br=e=>(e.n&qe)>0,ki=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let s=0;s{(d==="length"||d>=c)&&l.push(a)})}else switch(n!==void 0&&l.push(o.get(n)),t){case"add":H(e)?ts(n)&&l.push(o.get("length")):(l.push(o.get(rt)),ut(e)&&l.push(o.get($n)));break;case"delete":H(e)||(l.push(o.get(rt)),ut(e)&&l.push(o.get($n)));break;case"set":ut(e)&&l.push(o.get(rt));break}if(l.length===1)l[0]&&Un(l[0]);else{const c=[];for(const a of l)a&&c.push(...a);Un(ns(c))}}function Un(e,t){const n=H(e)?e:[...e];for(const s of n)s.computed&&Es(s);for(const s of n)s.computed||Es(s)}function Es(e,t){(e!==Ae||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const qi=Jn("__proto__,__v_isRef,__isVue"),Cr=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(es)),Vi=rs(),zi=rs(!1,!0),Yi=rs(!0),Ts=Ji();function Ji(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const s=J(this);for(let i=0,o=this.length;i{e[t]=function(...n){yt();const s=J(this)[t].apply(this,n);return wt(),s}}),e}function Xi(e){const t=J(this);return pe(t,"has",e),t.hasOwnProperty(e)}function rs(e=!1,t=!1){return function(s,r,i){if(r==="__v_isReactive")return!e;if(r==="__v_isReadonly")return e;if(r==="__v_isShallow")return t;if(r==="__v_raw"&&i===(e?t?ho:Ar:t?vr:Tr).get(s))return s;const o=H(s);if(!e){if(o&&Y(Ts,r))return Reflect.get(Ts,r,i);if(r==="hasOwnProperty")return Xi}const l=Reflect.get(s,r,i);return(es(r)?Cr.has(r):qi(r))||(e||pe(s,"get",r),t)?l:ae(l)?o&&ts(r)?l:l.value:te(l)?e?Or(l):hn(l):l}}const Zi=xr(),Qi=xr(!0);function xr(e=!1){return function(n,s,r,i){let o=n[s];if(mt(o)&&ae(o)&&!ae(r))return!1;if(!e&&(!nn(r)&&!mt(r)&&(o=J(o),r=J(r)),!H(n)&&ae(o)&&!ae(r)))return o.value=r,!0;const l=H(n)&&ts(s)?Number(s)e,dn=e=>Reflect.getPrototypeOf(e);function jt(e,t,n=!1,s=!1){e=e.__v_raw;const r=J(e),i=J(t);n||(t!==i&&pe(r,"get",t),pe(r,"get",i));const{has:o}=dn(r),l=s?is:n?cs:Mt;if(o.call(r,t))return l(e.get(t));if(o.call(r,i))return l(e.get(i));e!==r&&e.get(t)}function Dt(e,t=!1){const n=this.__v_raw,s=J(n),r=J(e);return t||(e!==r&&pe(s,"has",e),pe(s,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function Kt(e,t=!1){return e=e.__v_raw,!t&&pe(J(e),"iterate",rt),Reflect.get(e,"size",e)}function vs(e){e=J(e);const t=J(this);return dn(t).has.call(t,e)||(t.add(e),He(t,"add",e,e)),this}function As(e,t){t=J(t);const n=J(this),{has:s,get:r}=dn(n);let i=s.call(n,e);i||(e=J(e),i=s.call(n,e));const o=r.call(n,e);return n.set(e,t),i?Pt(t,o)&&He(n,"set",e,t):He(n,"add",e,t),this}function Os(e){const t=J(this),{has:n,get:s}=dn(t);let r=n.call(t,e);r||(e=J(e),r=n.call(t,e)),s&&s.call(t,e);const i=t.delete(e);return r&&He(t,"delete",e,void 0),i}function Rs(){const e=J(this),t=e.size!==0,n=e.clear();return t&&He(e,"clear",void 0,void 0),n}function kt(e,t){return function(s,r){const i=this,o=i.__v_raw,l=J(o),c=t?is:e?cs:Mt;return!e&&pe(l,"iterate",rt),o.forEach((a,d)=>s.call(r,c(a),c(d),i))}}function Wt(e,t,n){return function(...s){const r=this.__v_raw,i=J(r),o=ut(i),l=e==="entries"||e===Symbol.iterator&&o,c=e==="keys"&&o,a=r[e](...s),d=n?is:t?cs:Mt;return!t&&pe(i,"iterate",c?$n:rt),{next(){const{value:p,done:g}=a.next();return g?{value:p,done:g}:{value:l?[d(p[0]),d(p[1])]:d(p),done:g}},[Symbol.iterator](){return this}}}}function Ue(e){return function(...t){return e==="delete"?!1:this}}function ro(){const e={get(i){return jt(this,i)},get size(){return Kt(this)},has:Dt,add:vs,set:As,delete:Os,clear:Rs,forEach:kt(!1,!1)},t={get(i){return jt(this,i,!1,!0)},get size(){return Kt(this)},has:Dt,add:vs,set:As,delete:Os,clear:Rs,forEach:kt(!1,!0)},n={get(i){return jt(this,i,!0)},get size(){return Kt(this,!0)},has(i){return Dt.call(this,i,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:kt(!0,!1)},s={get(i){return jt(this,i,!0,!0)},get size(){return Kt(this,!0)},has(i){return Dt.call(this,i,!0)},add:Ue("add"),set:Ue("set"),delete:Ue("delete"),clear:Ue("clear"),forEach:kt(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(i=>{e[i]=Wt(i,!1,!1),n[i]=Wt(i,!0,!1),t[i]=Wt(i,!1,!0),s[i]=Wt(i,!0,!0)}),[e,n,t,s]}const[io,oo,lo,co]=ro();function os(e,t){const n=t?e?co:lo:e?oo:io;return(s,r,i)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?s:Reflect.get(Y(n,r)&&r in s?n:s,r,i)}const fo={get:os(!1,!1)},ao={get:os(!1,!0)},uo={get:os(!0,!1)},Tr=new WeakMap,vr=new WeakMap,Ar=new WeakMap,ho=new WeakMap;function po(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function go(e){return e.__v_skip||!Object.isExtensible(e)?0:po(Ni(e))}function hn(e){return mt(e)?e:ls(e,!1,Er,fo,Tr)}function mo(e){return ls(e,!1,so,ao,vr)}function Or(e){return ls(e,!0,no,uo,Ar)}function ls(e,t,n,s,r){if(!te(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=r.get(e);if(i)return i;const o=go(e);if(o===0)return e;const l=new Proxy(e,o===2?s:n);return r.set(e,l),l}function dt(e){return mt(e)?dt(e.__v_raw):!!(e&&e.__v_isReactive)}function mt(e){return!!(e&&e.__v_isReadonly)}function nn(e){return!!(e&&e.__v_isShallow)}function Rr(e){return dt(e)||mt(e)}function J(e){const t=e&&e.__v_raw;return t?J(t):e}function At(e){return tn(e,"__v_skip",!0),e}const Mt=e=>te(e)?hn(e):e,cs=e=>te(e)?Or(e):e;function Fr(e){ke&&Ae&&(e=J(e),wr(e.dep||(e.dep=ns())))}function Ir(e,t){e=J(e);const n=e.dep;n&&Un(n)}function ae(e){return!!(e&&e.__v_isRef===!0)}function Pr(e){return Mr(e,!1)}function _o(e){return Mr(e,!0)}function Mr(e,t){return ae(e)?e:new bo(e,t)}class bo{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:J(t),this._value=n?t:Mt(t)}get value(){return Fr(this),this._value}set value(t){const n=this.__v_isShallow||nn(t)||mt(t);t=n?t:J(t),Pt(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:Mt(t),Ir(this))}}function yo(e){return ae(e)?e.value:e}const wo={get:(e,t,n)=>yo(Reflect.get(e,t,n)),set:(e,t,n,s)=>{const r=e[t];return ae(r)&&!ae(n)?(r.value=n,!0):Reflect.set(e,t,n,s)}};function Lr(e){return dt(e)?e:new Proxy(e,wo)}var Sr;class Co{constructor(t,n,s,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this[Sr]=!1,this._dirty=!0,this.effect=new ss(t,()=>{this._dirty||(this._dirty=!0,Ir(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=s}get value(){const t=J(this);return Fr(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}Sr="__v_isReadonly";function xo(e,t,n=!1){let s,r;const i=K(e);return i?(s=e,r=Re):(s=e.get,r=e.set),new Co(s,r,i||!r,n)}function We(e,t,n,s){let r;try{r=s?e(...s):e()}catch(i){pn(i,t,n)}return r}function xe(e,t,n,s){if(K(e)){const i=We(e,t,n,s);return i&&pr(i)&&i.catch(o=>{pn(o,t,n)}),i}const r=[];for(let i=0;i>>1;St(fe[s])Me&&fe.splice(t,1)}function Ao(e){H(e)?ht.push(...e):(!Ne||!Ne.includes(e,e.allowRecurse?Ge+1:Ge))&&ht.push(e),$r()}function Fs(e,t=Lt?Me+1:0){for(;tSt(n)-St(s)),Ge=0;Gee.id==null?1/0:e.id,Oo=(e,t)=>{const n=St(e)-St(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Ur(e){Bn=!1,Lt=!0,fe.sort(Oo);const t=Re;try{for(Me=0;Mese(v)?v.trim():v)),p&&(r=n.map(Sn))}let l,c=s[l=Xt(t)]||s[l=Xt(Le(t))];!c&&i&&(c=s[l=Xt(ot(t))]),c&&xe(c,e,6,r);const a=s[l+"Once"];if(a){if(!e.emitted)e.emitted={};else if(e.emitted[l])return;e.emitted[l]=!0,xe(a,e,6,r)}}function Br(e,t,n=!1){const s=t.emitsCache,r=s.get(e);if(r!==void 0)return r;const i=e.emits;let o={},l=!1;if(!K(e)){const c=a=>{const d=Br(a,t,!0);d&&(l=!0,ce(o,d))};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}return!i&&!l?(te(e)&&s.set(e,null),null):(H(i)?i.forEach(c=>o[c]=null):ce(o,i),te(e)&&s.set(e,o),o)}function gn(e,t){return!e||!$t(t)?!1:(t=t.slice(2).replace(/Once$/,""),Y(e,t[0].toLowerCase()+t.slice(1))||Y(e,ot(t))||Y(e,t))}let oe=null,mn=null;function rn(e){const t=oe;return oe=e,mn=e&&e.type.__scopeId||null,t}function Mc(e){mn=e}function Lc(){mn=null}function Fo(e,t=oe,n){if(!t||e._n)return e;const s=(...r)=>{s._d&&js(-1);const i=rn(t);let o;try{o=e(...r)}finally{rn(i),s._d&&js(1)}return o};return s._n=!0,s._c=!0,s._d=!0,s}function An(e){const{type:t,vnode:n,proxy:s,withProxy:r,props:i,propsOptions:[o],slots:l,attrs:c,emit:a,render:d,renderCache:p,data:g,setupState:v,ctx:S,inheritAttrs:R}=e;let V,m;const T=rn(e);try{if(n.shapeFlag&4){const N=r||s;V=ve(d.call(N,N,p,i,v,g,S)),m=c}else{const N=t;V=ve(N.length>1?N(i,{attrs:c,slots:l,emit:a}):N(i,null)),m=t.props?c:Io(c)}}catch(N){It.length=0,pn(N,e,1),V=le(be)}let O=V;if(m&&R!==!1){const N=Object.keys(m),{shapeFlag:j}=O;N.length&&j&7&&(o&&N.some(Qn)&&(m=Po(m,o)),O=Ve(O,m))}return n.dirs&&(O=Ve(O),O.dirs=O.dirs?O.dirs.concat(n.dirs):n.dirs),n.transition&&(O.transition=n.transition),V=O,rn(T),V}const Io=e=>{let t;for(const n in e)(n==="class"||n==="style"||$t(n))&&((t||(t={}))[n]=e[n]);return t},Po=(e,t)=>{const n={};for(const s in e)(!Qn(s)||!(s.slice(9)in t))&&(n[s]=e[s]);return n};function Mo(e,t,n){const{props:s,children:r,component:i}=e,{props:o,children:l,patchFlag:c}=t,a=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&c>=0){if(c&1024)return!0;if(c&16)return s?Is(s,o,a):!!o;if(c&8){const d=t.dynamicProps;for(let p=0;pe.__isSuspense;function jr(e,t){t&&t.pendingBranch?H(e)?t.effects.push(...e):t.effects.push(e):Ao(e)}function No(e,t){if(re){let n=re.provides;const s=re.parent&&re.parent.provides;s===n&&(n=re.provides=Object.create(s)),n[e]=t}}function pt(e,t,n=!1){const s=re||oe;if(s){const r=s.parent==null?s.vnode.appContext&&s.vnode.appContext.provides:s.parent.provides;if(r&&e in r)return r[e];if(arguments.length>1)return n&&K(t)?t.call(s.proxy):t}}function Ho(e,t){return _n(e,null,t)}function Sc(e,t){return _n(e,null,{flush:"post"})}const qt={};function Qt(e,t,n){return _n(e,t,n)}function _n(e,t,{immediate:n,deep:s,flush:r,onTrack:i,onTrigger:o}=ee){const l=Ki()===(re==null?void 0:re.scope)?re:null;let c,a=!1,d=!1;if(ae(e)?(c=()=>e.value,a=nn(e)):dt(e)?(c=()=>e,s=!0):H(e)?(d=!0,a=e.some(O=>dt(O)||nn(O)),c=()=>e.map(O=>{if(ae(O))return O.value;if(dt(O))return nt(O);if(K(O))return We(O,l,2)})):K(e)?t?c=()=>We(e,l,2):c=()=>{if(!(l&&l.isUnmounted))return p&&p(),xe(e,l,3,[g])}:c=Re,t&&s){const O=c;c=()=>nt(O())}let p,g=O=>{p=m.onStop=()=>{We(O,l,4)}},v;if(Ht)if(g=Re,t?n&&xe(t,l,3,[c(),d?[]:void 0,g]):c(),r==="sync"){const O=Il();v=O.__watcherHandles||(O.__watcherHandles=[])}else return Re;let S=d?new Array(e.length).fill(qt):qt;const R=()=>{if(m.active)if(t){const O=m.run();(s||a||(d?O.some((N,j)=>Pt(N,S[j])):Pt(O,S)))&&(p&&p(),xe(t,l,3,[O,S===qt?void 0:d&&S[0]===qt?[]:S,g]),S=O)}else m.run()};R.allowRecurse=!!t;let V;r==="sync"?V=R:r==="post"?V=()=>de(R,l&&l.suspense):(R.pre=!0,l&&(R.id=l.uid),V=()=>as(R));const m=new ss(c,V);t?n?R():S=m.run():r==="post"?de(m.run.bind(m),l&&l.suspense):m.run();const T=()=>{m.stop(),l&&l.scope&&Gn(l.scope.effects,m)};return v&&v.push(T),T}function $o(e,t,n){const s=this.proxy,r=se(e)?e.includes(".")?Dr(s,e):()=>s[e]:e.bind(s,s);let i;K(t)?i=t:(i=t.handler,n=t);const o=re;bt(this);const l=_n(r,i.bind(s),n);return o?bt(o):it(),l}function Dr(e,t){const n=t.split(".");return()=>{let s=e;for(let r=0;r{nt(n,t)});else if(mr(e))for(const n in e)nt(e[n],t);return e}function Uo(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return wn(()=>{e.isMounted=!0}),zr(()=>{e.isUnmounting=!0}),e}const ye=[Function,Array],Bo={name:"BaseTransition",props:{mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:ye,onEnter:ye,onAfterEnter:ye,onEnterCancelled:ye,onBeforeLeave:ye,onLeave:ye,onAfterLeave:ye,onLeaveCancelled:ye,onBeforeAppear:ye,onAppear:ye,onAfterAppear:ye,onAppearCancelled:ye},setup(e,{slots:t}){const n=ui(),s=Uo();let r;return()=>{const i=t.default&&Wr(t.default(),!0);if(!i||!i.length)return;let o=i[0];if(i.length>1){for(const R of i)if(R.type!==be){o=R;break}}const l=J(e),{mode:c}=l;if(s.isLeaving)return On(o);const a=Ps(o);if(!a)return On(o);const d=jn(a,l,s,n);Dn(a,d);const p=n.subTree,g=p&&Ps(p);let v=!1;const{getTransitionKey:S}=a.type;if(S){const R=S();r===void 0?r=R:R!==r&&(r=R,v=!0)}if(g&&g.type!==be&&(!et(a,g)||v)){const R=jn(g,l,s,n);if(Dn(g,R),c==="out-in")return s.isLeaving=!0,R.afterLeave=()=>{s.isLeaving=!1,n.update.active!==!1&&n.update()},On(o);c==="in-out"&&a.type!==be&&(R.delayLeave=(V,m,T)=>{const O=kr(s,g);O[String(g.key)]=g,V._leaveCb=()=>{m(),V._leaveCb=void 0,delete d.delayedLeave},d.delayedLeave=T})}return o}}},Kr=Bo;function kr(e,t){const{leavingVNodes:n}=e;let s=n.get(t.type);return s||(s=Object.create(null),n.set(t.type,s)),s}function jn(e,t,n,s){const{appear:r,mode:i,persisted:o=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:a,onEnterCancelled:d,onBeforeLeave:p,onLeave:g,onAfterLeave:v,onLeaveCancelled:S,onBeforeAppear:R,onAppear:V,onAfterAppear:m,onAppearCancelled:T}=t,O=String(e.key),N=kr(n,e),j=(x,U)=>{x&&xe(x,s,9,U)},z=(x,U)=>{const $=U[1];j(x,U),H(x)?x.every(k=>k.length<=1)&&$():x.length<=1&&$()},D={mode:i,persisted:o,beforeEnter(x){let U=l;if(!n.isMounted)if(r)U=R||l;else return;x._leaveCb&&x._leaveCb(!0);const $=N[O];$&&et(e,$)&&$.el._leaveCb&&$.el._leaveCb(),j(U,[x])},enter(x){let U=c,$=a,k=d;if(!n.isMounted)if(r)U=V||c,$=m||a,k=T||d;else return;let F=!1;const W=x._enterCb=P=>{F||(F=!0,P?j(k,[x]):j($,[x]),D.delayedLeave&&D.delayedLeave(),x._enterCb=void 0)};U?z(U,[x,W]):W()},leave(x,U){const $=String(e.key);if(x._enterCb&&x._enterCb(!0),n.isUnmounting)return U();j(p,[x]);let k=!1;const F=x._leaveCb=W=>{k||(k=!0,U(),W?j(S,[x]):j(v,[x]),x._leaveCb=void 0,N[$]===e&&delete N[$])};N[$]=e,g?z(g,[x,F]):F()},clone(x){return jn(x,t,n,s)}};return D}function On(e){if(bn(e))return e=Ve(e),e.children=null,e}function Ps(e){return bn(e)?e.children?e.children[0]:void 0:e}function Dn(e,t){e.shapeFlag&6&&e.component?Dn(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Wr(e,t=!1,n){let s=[],r=0;for(let i=0;i1)for(let i=0;i!!e.type.__asyncLoader,bn=e=>e.type.__isKeepAlive;function jo(e,t){Vr(e,"a",t)}function Do(e,t){Vr(e,"da",t)}function Vr(e,t,n=re){const s=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(yn(t,s,n),n){let r=n.parent;for(;r&&r.parent;)bn(r.parent.vnode)&&Ko(s,t,n,r),r=r.parent}}function Ko(e,t,n,s){const r=yn(t,e,s,!0);Cn(()=>{Gn(s[t],r)},n)}function yn(e,t,n=re,s=!1){if(n){const r=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{if(n.isUnmounted)return;yt(),bt(n);const l=xe(t,n,e,o);return it(),wt(),l});return s?r.unshift(i):r.push(i),i}}const $e=e=>(t,n=re)=>(!Ht||e==="sp")&&yn(e,(...s)=>t(...s),n),ko=$e("bm"),wn=$e("m"),Wo=$e("bu"),qo=$e("u"),zr=$e("bum"),Cn=$e("um"),Vo=$e("sp"),zo=$e("rtg"),Yo=$e("rtc");function Jo(e,t=re){yn("ec",e,t)}function Nc(e,t){const n=oe;if(n===null)return e;const s=En(n)||n.proxy,r=e.dirs||(e.dirs=[]);for(let i=0;it(o,l,void 0,i&&i[l]));else{const o=Object.keys(e);r=new Array(o.length);for(let l=0,c=o.length;lcn(t)?!(t.type===be||t.type===he&&!Xr(t.children)):!0)?e:null}function jc(e,t){const n={};for(const s in e)n[t&&/[A-Z]/.test(s)?`on:${s}`:Xt(s)]=e[s];return n}const Kn=e=>e?di(e)?En(e)||e.proxy:Kn(e.parent):null,Ot=ce(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Kn(e.parent),$root:e=>Kn(e.root),$emit:e=>e.emit,$options:e=>ds(e),$forceUpdate:e=>e.f||(e.f=()=>as(e.update)),$nextTick:e=>e.n||(e.n=Hr.bind(e.proxy)),$watch:e=>$o.bind(e)}),Rn=(e,t)=>e!==ee&&!e.__isScriptSetup&&Y(e,t),Xo={get({_:e},t){const{ctx:n,setupState:s,data:r,props:i,accessCache:o,type:l,appContext:c}=e;let a;if(t[0]!=="$"){const v=o[t];if(v!==void 0)switch(v){case 1:return s[t];case 2:return r[t];case 4:return n[t];case 3:return i[t]}else{if(Rn(s,t))return o[t]=1,s[t];if(r!==ee&&Y(r,t))return o[t]=2,r[t];if((a=e.propsOptions[0])&&Y(a,t))return o[t]=3,i[t];if(n!==ee&&Y(n,t))return o[t]=4,n[t];kn&&(o[t]=0)}}const d=Ot[t];let p,g;if(d)return t==="$attrs"&&pe(e,"get",t),d(e);if((p=l.__cssModules)&&(p=p[t]))return p;if(n!==ee&&Y(n,t))return o[t]=4,n[t];if(g=c.config.globalProperties,Y(g,t))return g[t]},set({_:e},t,n){const{data:s,setupState:r,ctx:i}=e;return Rn(r,t)?(r[t]=n,!0):s!==ee&&Y(s,t)?(s[t]=n,!0):Y(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:s,appContext:r,propsOptions:i}},o){let l;return!!n[o]||e!==ee&&Y(e,o)||Rn(t,o)||(l=i[0])&&Y(l,o)||Y(s,o)||Y(Ot,o)||Y(r.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Y(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};let kn=!0;function Zo(e){const t=ds(e),n=e.proxy,s=e.ctx;kn=!1,t.beforeCreate&&Ls(t.beforeCreate,e,"bc");const{data:r,computed:i,methods:o,watch:l,provide:c,inject:a,created:d,beforeMount:p,mounted:g,beforeUpdate:v,updated:S,activated:R,deactivated:V,beforeDestroy:m,beforeUnmount:T,destroyed:O,unmounted:N,render:j,renderTracked:z,renderTriggered:D,errorCaptured:x,serverPrefetch:U,expose:$,inheritAttrs:k,components:F,directives:W,filters:P}=t;if(a&&Qo(a,s,null,e.appContext.config.unwrapInjectedRef),o)for(const ne in o){const Q=o[ne];K(Q)&&(s[ne]=Q.bind(n))}if(r){const ne=r.call(n,n);te(ne)&&(e.data=hn(ne))}if(kn=!0,i)for(const ne in i){const Q=i[ne],ze=K(Q)?Q.bind(n,n):K(Q.get)?Q.get.bind(n,n):Re,Ut=!K(Q)&&K(Q.set)?Q.set.bind(n):Re,Ye=Te({get:ze,set:Ut});Object.defineProperty(s,ne,{enumerable:!0,configurable:!0,get:()=>Ye.value,set:Fe=>Ye.value=Fe})}if(l)for(const ne in l)Zr(l[ne],s,n,ne);if(c){const ne=K(c)?c.call(n):c;Reflect.ownKeys(ne).forEach(Q=>{No(Q,ne[Q])})}d&&Ls(d,e,"c");function X(ne,Q){H(Q)?Q.forEach(ze=>ne(ze.bind(n))):Q&&ne(Q.bind(n))}if(X(ko,p),X(wn,g),X(Wo,v),X(qo,S),X(jo,R),X(Do,V),X(Jo,x),X(Yo,z),X(zo,D),X(zr,T),X(Cn,N),X(Vo,U),H($))if($.length){const ne=e.exposed||(e.exposed={});$.forEach(Q=>{Object.defineProperty(ne,Q,{get:()=>n[Q],set:ze=>n[Q]=ze})})}else e.exposed||(e.exposed={});j&&e.render===Re&&(e.render=j),k!=null&&(e.inheritAttrs=k),F&&(e.components=F),W&&(e.directives=W)}function Qo(e,t,n=Re,s=!1){H(e)&&(e=Wn(e));for(const r in e){const i=e[r];let o;te(i)?"default"in i?o=pt(i.from||r,i.default,!0):o=pt(i.from||r):o=pt(i),ae(o)&&s?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:l=>o.value=l}):t[r]=o}}function Ls(e,t,n){xe(H(e)?e.map(s=>s.bind(t.proxy)):e.bind(t.proxy),t,n)}function Zr(e,t,n,s){const r=s.includes(".")?Dr(n,s):()=>n[s];if(se(e)){const i=t[e];K(i)&&Qt(r,i)}else if(K(e))Qt(r,e.bind(n));else if(te(e))if(H(e))e.forEach(i=>Zr(i,t,n,s));else{const i=K(e.handler)?e.handler.bind(n):t[e.handler];K(i)&&Qt(r,i,e)}}function ds(e){const t=e.type,{mixins:n,extends:s}=t,{mixins:r,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,l=i.get(t);let c;return l?c=l:!r.length&&!n&&!s?c=t:(c={},r.length&&r.forEach(a=>on(c,a,o,!0)),on(c,t,o)),te(t)&&i.set(t,c),c}function on(e,t,n,s=!1){const{mixins:r,extends:i}=t;i&&on(e,i,n,!0),r&&r.forEach(o=>on(e,o,n,!0));for(const o in t)if(!(s&&o==="expose")){const l=Go[o]||n&&n[o];e[o]=l?l(e[o],t[o]):t[o]}return e}const Go={data:Ss,props:Qe,emits:Qe,methods:Qe,computed:Qe,beforeCreate:ue,created:ue,beforeMount:ue,mounted:ue,beforeUpdate:ue,updated:ue,beforeDestroy:ue,beforeUnmount:ue,destroyed:ue,unmounted:ue,activated:ue,deactivated:ue,errorCaptured:ue,serverPrefetch:ue,components:Qe,directives:Qe,watch:tl,provide:Ss,inject:el};function Ss(e,t){return t?e?function(){return ce(K(e)?e.call(this,this):e,K(t)?t.call(this,this):t)}:t:e}function el(e,t){return Qe(Wn(e),Wn(t))}function Wn(e){if(H(e)){const t={};for(let n=0;n0)&&!(o&16)){if(o&8){const d=e.vnode.dynamicProps;for(let p=0;p{c=!0;const[g,v]=Gr(p,t,!0);ce(o,g),v&&l.push(...v)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!i&&!c)return te(e)&&s.set(e,at),at;if(H(i))for(let d=0;d-1,v[1]=R<0||S-1||Y(v,"default"))&&l.push(p)}}}const a=[o,l];return te(e)&&s.set(e,a),a}function Ns(e){return e[0]!=="$"}function Hs(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function $s(e,t){return Hs(e)===Hs(t)}function Us(e,t){return H(t)?t.findIndex(n=>$s(n,e)):K(t)&&$s(t,e)?0:-1}const ei=e=>e[0]==="_"||e==="$stable",hs=e=>H(e)?e.map(ve):[ve(e)],rl=(e,t,n)=>{if(t._n)return t;const s=Fo((...r)=>hs(t(...r)),n);return s._c=!1,s},ti=(e,t,n)=>{const s=e._ctx;for(const r in e){if(ei(r))continue;const i=e[r];if(K(i))t[r]=rl(r,i,s);else if(i!=null){const o=hs(i);t[r]=()=>o}}},ni=(e,t)=>{const n=hs(t);e.slots.default=()=>n},il=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=J(t),tn(t,"_",n)):ti(t,e.slots={})}else e.slots={},t&&ni(e,t);tn(e.slots,xn,1)},ol=(e,t,n)=>{const{vnode:s,slots:r}=e;let i=!0,o=ee;if(s.shapeFlag&32){const l=t._;l?n&&l===1?i=!1:(ce(r,t),!n&&l===1&&delete r._):(i=!t.$stable,ti(t,r)),o=t}else t&&(ni(e,t),o={default:1});if(i)for(const l in r)!ei(l)&&!(l in o)&&delete r[l]};function si(){return{app:null,config:{isNativeTag:Mi,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let ll=0;function cl(e,t){return function(s,r=null){K(s)||(s=Object.assign({},s)),r!=null&&!te(r)&&(r=null);const i=si(),o=new Set;let l=!1;const c=i.app={_uid:ll++,_component:s,_props:r,_container:null,_context:i,_instance:null,version:Pl,get config(){return i.config},set config(a){},use(a,...d){return o.has(a)||(a&&K(a.install)?(o.add(a),a.install(c,...d)):K(a)&&(o.add(a),a(c,...d))),c},mixin(a){return i.mixins.includes(a)||i.mixins.push(a),c},component(a,d){return d?(i.components[a]=d,c):i.components[a]},directive(a,d){return d?(i.directives[a]=d,c):i.directives[a]},mount(a,d,p){if(!l){const g=le(s,r);return g.appContext=i,d&&t?t(g,a):e(g,a,p),l=!0,c._container=a,a.__vue_app__=c,En(g.component)||g.component.proxy}},unmount(){l&&(e(null,c._container),delete c._container.__vue_app__)},provide(a,d){return i.provides[a]=d,c}};return c}}function ln(e,t,n,s,r=!1){if(H(e)){e.forEach((g,v)=>ln(g,t&&(H(t)?t[v]:t),n,s,r));return}if(gt(s)&&!r)return;const i=s.shapeFlag&4?En(s.component)||s.component.proxy:s.el,o=r?null:i,{i:l,r:c}=e,a=t&&t.r,d=l.refs===ee?l.refs={}:l.refs,p=l.setupState;if(a!=null&&a!==c&&(se(a)?(d[a]=null,Y(p,a)&&(p[a]=null)):ae(a)&&(a.value=null)),K(c))We(c,l,12,[o,d]);else{const g=se(c),v=ae(c);if(g||v){const S=()=>{if(e.f){const R=g?Y(p,c)?p[c]:d[c]:c.value;r?H(R)&&Gn(R,i):H(R)?R.includes(i)||R.push(i):g?(d[c]=[i],Y(p,c)&&(p[c]=d[c])):(c.value=[i],e.k&&(d[e.k]=c.value))}else g?(d[c]=o,Y(p,c)&&(p[c]=o)):v&&(c.value=o,e.k&&(d[e.k]=o))};o?(S.id=-1,de(S,n)):S()}}}let Be=!1;const Vt=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",zt=e=>e.nodeType===8;function fl(e){const{mt:t,p:n,o:{patchProp:s,createText:r,nextSibling:i,parentNode:o,remove:l,insert:c,createComment:a}}=e,d=(m,T)=>{if(!T.hasChildNodes()){n(null,m,T),sn(),T._vnode=m;return}Be=!1,p(T.firstChild,m,null,null,null),sn(),T._vnode=m,Be&&console.error("Hydration completed but contains mismatches.")},p=(m,T,O,N,j,z=!1)=>{const D=zt(m)&&m.data==="[",x=()=>R(m,T,O,N,j,D),{type:U,ref:$,shapeFlag:k,patchFlag:F}=T;let W=m.nodeType;T.el=m,F===-2&&(z=!1,T.dynamicChildren=null);let P=null;switch(U){case _t:W!==3?T.children===""?(c(T.el=r(""),o(m),m),P=m):P=x():(m.data!==T.children&&(Be=!0,m.data=T.children),P=i(m));break;case be:W!==8||D?P=x():P=i(m);break;case Ft:if(D&&(m=i(m),W=m.nodeType),W===1||W===3){P=m;const ge=!T.children.length;for(let X=0;X{z=z||!!T.dynamicChildren;const{type:D,props:x,patchFlag:U,shapeFlag:$,dirs:k}=T,F=D==="input"&&k||D==="option";if(F||U!==-1){if(k&&Pe(T,null,O,"created"),x)if(F||!z||U&48)for(const P in x)(F&&P.endsWith("value")||$t(P)&&!vt(P))&&s(m,P,null,x[P],!1,void 0,O);else x.onClick&&s(m,"onClick",null,x.onClick,!1,void 0,O);let W;if((W=x&&x.onVnodeBeforeMount)&&we(W,O,T),k&&Pe(T,null,O,"beforeMount"),((W=x&&x.onVnodeMounted)||k)&&jr(()=>{W&&we(W,O,T),k&&Pe(T,null,O,"mounted")},N),$&16&&!(x&&(x.innerHTML||x.textContent))){let P=v(m.firstChild,T,m,O,N,j,z);for(;P;){Be=!0;const ge=P;P=P.nextSibling,l(ge)}}else $&8&&m.textContent!==T.children&&(Be=!0,m.textContent=T.children)}return m.nextSibling},v=(m,T,O,N,j,z,D)=>{D=D||!!T.dynamicChildren;const x=T.children,U=x.length;for(let $=0;${const{slotScopeIds:D}=T;D&&(j=j?j.concat(D):D);const x=o(m),U=v(i(m),T,x,O,N,j,z);return U&&zt(U)&&U.data==="]"?i(T.anchor=U):(Be=!0,c(T.anchor=a("]"),x,U),U)},R=(m,T,O,N,j,z)=>{if(Be=!0,T.el=null,z){const U=V(m);for(;;){const $=i(m);if($&&$!==U)l($);else break}}const D=i(m),x=o(m);return l(m),n(null,T,x,D,O,N,Vt(x),j),D},V=m=>{let T=0;for(;m;)if(m=i(m),m&&zt(m)&&(m.data==="["&&T++,m.data==="]")){if(T===0)return i(m);T--}return m};return[d,p]}const de=jr;function al(e){return ul(e,fl)}function ul(e,t){const n=Bi();n.__VUE__=!0;const{insert:s,remove:r,patchProp:i,createElement:o,createText:l,createComment:c,setText:a,setElementText:d,parentNode:p,nextSibling:g,setScopeId:v=Re,insertStaticContent:S}=e,R=(f,u,h,b=null,_=null,C=null,A=!1,w=null,E=!!u.dynamicChildren)=>{if(f===u)return;f&&!et(f,u)&&(b=Bt(f),Fe(f,_,C,!0),f=null),u.patchFlag===-2&&(E=!1,u.dynamicChildren=null);const{type:y,ref:M,shapeFlag:I}=u;switch(y){case _t:V(f,u,h,b);break;case be:m(f,u,h,b);break;case Ft:f==null&&T(u,h,b,A);break;case he:F(f,u,h,b,_,C,A,w,E);break;default:I&1?j(f,u,h,b,_,C,A,w,E):I&6?W(f,u,h,b,_,C,A,w,E):(I&64||I&128)&&y.process(f,u,h,b,_,C,A,w,E,lt)}M!=null&&_&&ln(M,f&&f.ref,C,u||f,!u)},V=(f,u,h,b)=>{if(f==null)s(u.el=l(u.children),h,b);else{const _=u.el=f.el;u.children!==f.children&&a(_,u.children)}},m=(f,u,h,b)=>{f==null?s(u.el=c(u.children||""),h,b):u.el=f.el},T=(f,u,h,b)=>{[f.el,f.anchor]=S(f.children,u,h,b,f.el,f.anchor)},O=({el:f,anchor:u},h,b)=>{let _;for(;f&&f!==u;)_=g(f),s(f,h,b),f=_;s(u,h,b)},N=({el:f,anchor:u})=>{let h;for(;f&&f!==u;)h=g(f),r(f),f=h;r(u)},j=(f,u,h,b,_,C,A,w,E)=>{A=A||u.type==="svg",f==null?z(u,h,b,_,C,A,w,E):U(f,u,_,C,A,w,E)},z=(f,u,h,b,_,C,A,w)=>{let E,y;const{type:M,props:I,shapeFlag:L,transition:B,dirs:q}=f;if(E=f.el=o(f.type,C,I&&I.is,I),L&8?d(E,f.children):L&16&&x(f.children,E,null,b,_,C&&M!=="foreignObject",A,w),q&&Pe(f,null,b,"created"),D(E,f,f.scopeId,A,b),I){for(const Z in I)Z!=="value"&&!vt(Z)&&i(E,Z,null,I[Z],C,f.children,b,_,Se);"value"in I&&i(E,"value",null,I.value),(y=I.onVnodeBeforeMount)&&we(y,b,f)}q&&Pe(f,null,b,"beforeMount");const G=(!_||_&&!_.pendingBranch)&&B&&!B.persisted;G&&B.beforeEnter(E),s(E,u,h),((y=I&&I.onVnodeMounted)||G||q)&&de(()=>{y&&we(y,b,f),G&&B.enter(E),q&&Pe(f,null,b,"mounted")},_)},D=(f,u,h,b,_)=>{if(h&&v(f,h),b)for(let C=0;C{for(let y=E;y{const w=u.el=f.el;let{patchFlag:E,dynamicChildren:y,dirs:M}=u;E|=f.patchFlag&16;const I=f.props||ee,L=u.props||ee;let B;h&&Je(h,!1),(B=L.onVnodeBeforeUpdate)&&we(B,h,u,f),M&&Pe(u,f,h,"beforeUpdate"),h&&Je(h,!0);const q=_&&u.type!=="foreignObject";if(y?$(f.dynamicChildren,y,w,h,b,q,C):A||Q(f,u,w,null,h,b,q,C,!1),E>0){if(E&16)k(w,u,I,L,h,b,_);else if(E&2&&I.class!==L.class&&i(w,"class",null,L.class,_),E&4&&i(w,"style",I.style,L.style,_),E&8){const G=u.dynamicProps;for(let Z=0;Z{B&&we(B,h,u,f),M&&Pe(u,f,h,"updated")},b)},$=(f,u,h,b,_,C,A)=>{for(let w=0;w{if(h!==b){if(h!==ee)for(const w in h)!vt(w)&&!(w in b)&&i(f,w,h[w],null,A,u.children,_,C,Se);for(const w in b){if(vt(w))continue;const E=b[w],y=h[w];E!==y&&w!=="value"&&i(f,w,y,E,A,u.children,_,C,Se)}"value"in b&&i(f,"value",h.value,b.value)}},F=(f,u,h,b,_,C,A,w,E)=>{const y=u.el=f?f.el:l(""),M=u.anchor=f?f.anchor:l("");let{patchFlag:I,dynamicChildren:L,slotScopeIds:B}=u;B&&(w=w?w.concat(B):B),f==null?(s(y,h,b),s(M,h,b),x(u.children,h,M,_,C,A,w,E)):I>0&&I&64&&L&&f.dynamicChildren?($(f.dynamicChildren,L,h,_,C,A,w),(u.key!=null||_&&u===_.subTree)&&ps(f,u,!0)):Q(f,u,h,M,_,C,A,w,E)},W=(f,u,h,b,_,C,A,w,E)=>{u.slotScopeIds=w,f==null?u.shapeFlag&512?_.ctx.activate(u,h,b,A,E):P(u,h,b,_,C,A,E):ge(f,u,E)},P=(f,u,h,b,_,C,A)=>{const w=f.component=xl(f,b,_);if(bn(f)&&(w.ctx.renderer=lt),El(w),w.asyncDep){if(_&&_.registerDep(w,X),!f.el){const E=w.subTree=le(be);m(null,E,u,h)}return}X(w,f,u,h,_,C,A)},ge=(f,u,h)=>{const b=u.component=f.component;if(Mo(f,u,h))if(b.asyncDep&&!b.asyncResolved){ne(b,u,h);return}else b.next=u,vo(b.update),b.update();else u.el=f.el,b.vnode=u},X=(f,u,h,b,_,C,A)=>{const w=()=>{if(f.isMounted){let{next:M,bu:I,u:L,parent:B,vnode:q}=f,G=M,Z;Je(f,!1),M?(M.el=q.el,ne(f,M,A)):M=q,I&&Zt(I),(Z=M.props&&M.props.onVnodeBeforeUpdate)&&we(Z,B,M,q),Je(f,!0);const ie=An(f),Ee=f.subTree;f.subTree=ie,R(Ee,ie,p(Ee.el),Bt(Ee),f,_,C),M.el=ie.el,G===null&&Lo(f,ie.el),L&&de(L,_),(Z=M.props&&M.props.onVnodeUpdated)&&de(()=>we(Z,B,M,q),_)}else{let M;const{el:I,props:L}=u,{bm:B,m:q,parent:G}=f,Z=gt(u);if(Je(f,!1),B&&Zt(B),!Z&&(M=L&&L.onVnodeBeforeMount)&&we(M,G,u),Je(f,!0),I&&vn){const ie=()=>{f.subTree=An(f),vn(I,f.subTree,f,_,null)};Z?u.type.__asyncLoader().then(()=>!f.isUnmounted&&ie()):ie()}else{const ie=f.subTree=An(f);R(null,ie,h,b,f,_,C),u.el=ie.el}if(q&&de(q,_),!Z&&(M=L&&L.onVnodeMounted)){const ie=u;de(()=>we(M,G,ie),_)}(u.shapeFlag&256||G&>(G.vnode)&&G.vnode.shapeFlag&256)&&f.a&&de(f.a,_),f.isMounted=!0,u=h=b=null}},E=f.effect=new ss(w,()=>as(y),f.scope),y=f.update=()=>E.run();y.id=f.uid,Je(f,!0),y()},ne=(f,u,h)=>{u.component=f;const b=f.vnode.props;f.vnode=u,f.next=null,sl(f,u.props,b,h),ol(f,u.children,h),yt(),Fs(),wt()},Q=(f,u,h,b,_,C,A,w,E=!1)=>{const y=f&&f.children,M=f?f.shapeFlag:0,I=u.children,{patchFlag:L,shapeFlag:B}=u;if(L>0){if(L&128){Ut(y,I,h,b,_,C,A,w,E);return}else if(L&256){ze(y,I,h,b,_,C,A,w,E);return}}B&8?(M&16&&Se(y,_,C),I!==y&&d(h,I)):M&16?B&16?Ut(y,I,h,b,_,C,A,w,E):Se(y,_,C,!0):(M&8&&d(h,""),B&16&&x(I,h,b,_,C,A,w,E))},ze=(f,u,h,b,_,C,A,w,E)=>{f=f||at,u=u||at;const y=f.length,M=u.length,I=Math.min(y,M);let L;for(L=0;LM?Se(f,_,C,!0,!1,I):x(u,h,b,_,C,A,w,E,I)},Ut=(f,u,h,b,_,C,A,w,E)=>{let y=0;const M=u.length;let I=f.length-1,L=M-1;for(;y<=I&&y<=L;){const B=f[y],q=u[y]=E?Ke(u[y]):ve(u[y]);if(et(B,q))R(B,q,h,null,_,C,A,w,E);else break;y++}for(;y<=I&&y<=L;){const B=f[I],q=u[L]=E?Ke(u[L]):ve(u[L]);if(et(B,q))R(B,q,h,null,_,C,A,w,E);else break;I--,L--}if(y>I){if(y<=L){const B=L+1,q=BL)for(;y<=I;)Fe(f[y],_,C,!0),y++;else{const B=y,q=y,G=new Map;for(y=q;y<=L;y++){const me=u[y]=E?Ke(u[y]):ve(u[y]);me.key!=null&&G.set(me.key,y)}let Z,ie=0;const Ee=L-q+1;let ct=!1,bs=0;const Ct=new Array(Ee);for(y=0;y=Ee){Fe(me,_,C,!0);continue}let Ie;if(me.key!=null)Ie=G.get(me.key);else for(Z=q;Z<=L;Z++)if(Ct[Z-q]===0&&et(me,u[Z])){Ie=Z;break}Ie===void 0?Fe(me,_,C,!0):(Ct[Ie-q]=y+1,Ie>=bs?bs=Ie:ct=!0,R(me,u[Ie],h,null,_,C,A,w,E),ie++)}const ys=ct?dl(Ct):at;for(Z=ys.length-1,y=Ee-1;y>=0;y--){const me=q+y,Ie=u[me],ws=me+1{const{el:C,type:A,transition:w,children:E,shapeFlag:y}=f;if(y&6){Ye(f.component.subTree,u,h,b);return}if(y&128){f.suspense.move(u,h,b);return}if(y&64){A.move(f,u,h,lt);return}if(A===he){s(C,u,h);for(let I=0;Iw.enter(C),_);else{const{leave:I,delayLeave:L,afterLeave:B}=w,q=()=>s(C,u,h),G=()=>{I(C,()=>{q(),B&&B()})};L?L(C,q,G):G()}else s(C,u,h)},Fe=(f,u,h,b=!1,_=!1)=>{const{type:C,props:A,ref:w,children:E,dynamicChildren:y,shapeFlag:M,patchFlag:I,dirs:L}=f;if(w!=null&&ln(w,null,h,f,!0),M&256){u.ctx.deactivate(f);return}const B=M&1&&L,q=!gt(f);let G;if(q&&(G=A&&A.onVnodeBeforeUnmount)&&we(G,u,f),M&6)vi(f.component,h,b);else{if(M&128){f.suspense.unmount(h,b);return}B&&Pe(f,null,u,"beforeUnmount"),M&64?f.type.remove(f,u,h,_,lt,b):y&&(C!==he||I>0&&I&64)?Se(y,u,h,!1,!0):(C===he&&I&384||!_&&M&16)&&Se(E,u,h),b&&ms(f)}(q&&(G=A&&A.onVnodeUnmounted)||B)&&de(()=>{G&&we(G,u,f),B&&Pe(f,null,u,"unmounted")},h)},ms=f=>{const{type:u,el:h,anchor:b,transition:_}=f;if(u===he){Ti(h,b);return}if(u===Ft){N(f);return}const C=()=>{r(h),_&&!_.persisted&&_.afterLeave&&_.afterLeave()};if(f.shapeFlag&1&&_&&!_.persisted){const{leave:A,delayLeave:w}=_,E=()=>A(h,C);w?w(f.el,C,E):E()}else C()},Ti=(f,u)=>{let h;for(;f!==u;)h=g(f),r(f),f=h;r(u)},vi=(f,u,h)=>{const{bum:b,scope:_,update:C,subTree:A,um:w}=f;b&&Zt(b),_.stop(),C&&(C.active=!1,Fe(A,f,u,h)),w&&de(w,u),de(()=>{f.isUnmounted=!0},u),u&&u.pendingBranch&&!u.isUnmounted&&f.asyncDep&&!f.asyncResolved&&f.suspenseId===u.pendingId&&(u.deps--,u.deps===0&&u.resolve())},Se=(f,u,h,b=!1,_=!1,C=0)=>{for(let A=C;Af.shapeFlag&6?Bt(f.component.subTree):f.shapeFlag&128?f.suspense.next():g(f.anchor||f.el),_s=(f,u,h)=>{f==null?u._vnode&&Fe(u._vnode,null,null,!0):R(u._vnode||null,f,u,null,null,null,h),Fs(),sn(),u._vnode=f},lt={p:R,um:Fe,m:Ye,r:ms,mt:P,mc:x,pc:Q,pbc:$,n:Bt,o:e};let Tn,vn;return t&&([Tn,vn]=t(lt)),{render:_s,hydrate:Tn,createApp:cl(_s,Tn)}}function Je({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ps(e,t,n=!1){const s=e.children,r=t.children;if(H(s)&&H(r))for(let i=0;i>1,e[n[l]]0&&(t[s]=n[i-1]),n[i]=s)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}const hl=e=>e.__isTeleport,Rt=e=>e&&(e.disabled||e.disabled===""),Bs=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Vn=(e,t)=>{const n=e&&e.to;return se(n)?t?t(n):null:n},pl={__isTeleport:!0,process(e,t,n,s,r,i,o,l,c,a){const{mc:d,pc:p,pbc:g,o:{insert:v,querySelector:S,createText:R,createComment:V}}=a,m=Rt(t.props);let{shapeFlag:T,children:O,dynamicChildren:N}=t;if(e==null){const j=t.el=R(""),z=t.anchor=R("");v(j,n,s),v(z,n,s);const D=t.target=Vn(t.props,S),x=t.targetAnchor=R("");D&&(v(x,D),o=o||Bs(D));const U=($,k)=>{T&16&&d(O,$,k,r,i,o,l,c)};m?U(n,z):D&&U(D,x)}else{t.el=e.el;const j=t.anchor=e.anchor,z=t.target=e.target,D=t.targetAnchor=e.targetAnchor,x=Rt(e.props),U=x?n:z,$=x?j:D;if(o=o||Bs(z),N?(g(e.dynamicChildren,N,U,r,i,o,l),ps(e,t,!0)):c||p(e,t,U,$,r,i,o,l,!1),m)x||Yt(t,n,j,a,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const k=t.target=Vn(t.props,S);k&&Yt(t,k,null,a,0)}else x&&Yt(t,z,D,a,1)}ri(t)},remove(e,t,n,s,{um:r,o:{remove:i}},o){const{shapeFlag:l,children:c,anchor:a,targetAnchor:d,target:p,props:g}=e;if(p&&i(d),(o||!Rt(g))&&(i(a),l&16))for(let v=0;v0?Oe||at:null,ml(),Nt>0&&Oe&&Oe.push(e),e}function Kc(e,t,n,s,r,i){return oi(fi(e,t,n,s,r,i,!0))}function li(e,t,n,s,r){return oi(le(e,t,n,s,r,!0))}function cn(e){return e?e.__v_isVNode===!0:!1}function et(e,t){return e.type===t.type&&e.key===t.key}const xn="__vInternal",ci=({key:e})=>e??null,Gt=({ref:e,ref_key:t,ref_for:n})=>e!=null?se(e)||ae(e)||K(e)?{i:oe,r:e,k:t,f:!!n}:e:null;function fi(e,t=null,n=null,s=0,r=null,i=e===he?0:1,o=!1,l=!1){const c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ci(t),ref:t&&Gt(t),scopeId:mn,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:s,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:oe};return l?(gs(c,n),i&128&&e.normalize(c)):n&&(c.shapeFlag|=se(n)?8:16),Nt>0&&!o&&Oe&&(c.patchFlag>0||i&6)&&c.patchFlag!==32&&Oe.push(c),c}const le=_l;function _l(e,t=null,n=null,s=0,r=null,i=!1){if((!e||e===Yr)&&(e=be),cn(e)){const l=Ve(e,t,!0);return n&&gs(l,n),Nt>0&&!i&&Oe&&(l.shapeFlag&6?Oe[Oe.indexOf(e)]=l:Oe.push(l)),l.patchFlag|=-2,l}if(Ol(e)&&(e=e.__vccOpts),t){t=bl(t);let{class:l,style:c}=t;l&&!se(l)&&(t.class=Zn(l)),te(c)&&(Rr(c)&&!H(c)&&(c=ce({},c)),t.style=Xn(c))}const o=se(e)?1:So(e)?128:hl(e)?64:te(e)?4:K(e)?2:0;return fi(e,t,n,s,r,o,i,!0)}function bl(e){return e?Rr(e)||xn in e?ce({},e):e:null}function Ve(e,t,n=!1){const{props:s,ref:r,patchFlag:i,children:o}=e,l=t?yl(s||{},t):s;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&ci(l),ref:t&&t.ref?n&&r?H(r)?r.concat(Gt(t)):[r,Gt(t)]:Gt(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==he?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ve(e.ssContent),ssFallback:e.ssFallback&&Ve(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function ai(e=" ",t=0){return le(_t,null,e,t)}function kc(e,t){const n=le(Ft,null,e);return n.staticCount=t,n}function Wc(e="",t=!1){return t?(ii(),li(be,null,e)):le(be,null,e)}function ve(e){return e==null||typeof e=="boolean"?le(be):H(e)?le(he,null,e.slice()):typeof e=="object"?Ke(e):le(_t,null,String(e))}function Ke(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ve(e)}function gs(e,t){let n=0;const{shapeFlag:s}=e;if(t==null)t=null;else if(H(t))n=16;else if(typeof t=="object")if(s&65){const r=t.default;r&&(r._c&&(r._d=!1),gs(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(xn in t)?t._ctx=oe:r===3&&oe&&(oe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else K(t)?(t={default:t,_ctx:oe},n=32):(t=String(t),s&64?(n=16,t=[ai(t)]):n=8);e.children=t,e.shapeFlag|=n}function yl(...e){const t={};for(let n=0;nre||oe,bt=e=>{re=e,e.scope.on()},it=()=>{re&&re.scope.off(),re=null};function di(e){return e.vnode.shapeFlag&4}let Ht=!1;function El(e,t=!1){Ht=t;const{props:n,children:s}=e.vnode,r=di(e);nl(e,n,r,t),il(e,s);const i=r?Tl(e,t):void 0;return Ht=!1,i}function Tl(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=At(new Proxy(e.ctx,Xo));const{setup:s}=n;if(s){const r=e.setupContext=s.length>1?pi(e):null;bt(e),yt();const i=We(s,e,0,[e.props,r]);if(wt(),it(),pr(i)){if(i.then(it,it),t)return i.then(o=>{Ds(e,o,t)}).catch(o=>{pn(o,e,0)});e.asyncDep=i}else Ds(e,i,t)}else hi(e,t)}function Ds(e,t,n){K(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:te(t)&&(e.setupState=Lr(t)),hi(e,n)}let Ks;function hi(e,t,n){const s=e.type;if(!e.render){if(!t&&Ks&&!s.render){const r=s.template||ds(e).template;if(r){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:l,compilerOptions:c}=s,a=ce(ce({isCustomElement:i,delimiters:l},o),c);s.render=Ks(r,a)}}e.render=s.render||Re}bt(e),yt(),Zo(e),wt(),it()}function vl(e){return new Proxy(e.attrs,{get(t,n){return pe(e,"get","$attrs"),t[n]}})}function pi(e){const t=s=>{e.exposed=s||{}};let n;return{get attrs(){return n||(n=vl(e))},slots:e.slots,emit:e.emit,expose:t}}function En(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(Lr(At(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Ot)return Ot[n](e)},has(t,n){return n in t||n in Ot}}))}function Al(e,t=!0){return K(e)?e.displayName||e.name:e.name||t&&e.__name}function Ol(e){return K(e)&&"__vccOpts"in e}const Te=(e,t)=>xo(e,t,Ht);function qc(){return Rl().slots}function Rl(){const e=ui();return e.setupContext||(e.setupContext=pi(e))}function zn(e,t,n){const s=arguments.length;return s===2?te(t)&&!H(t)?cn(t)?le(e,null,[t]):le(e,t):le(e,null,t):(s>3?n=Array.prototype.slice.call(arguments,2):s===3&&cn(n)&&(n=[n]),le(e,t,n))}const Fl=Symbol(""),Il=()=>pt(Fl),Pl="3.2.47",Ml="http://www.w3.org/2000/svg",tt=typeof document<"u"?document:null,ks=tt&&tt.createElement("template"),Ll={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const r=t?tt.createElementNS(Ml,e):tt.createElement(e,n?{is:n}:void 0);return e==="select"&&s&&s.multiple!=null&&r.setAttribute("multiple",s.multiple),r},createText:e=>tt.createTextNode(e),createComment:e=>tt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>tt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,r,i){const o=n?n.previousSibling:t.lastChild;if(r&&(r===i||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===i||!(r=r.nextSibling)););else{ks.innerHTML=s?`${e}`:e;const l=ks.content;if(s){const c=l.firstChild;for(;c.firstChild;)l.appendChild(c.firstChild);l.removeChild(c)}t.insertBefore(l,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};function Sl(e,t,n){const s=e._vtc;s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}function Nl(e,t,n){const s=e.style,r=se(n);if(n&&!r){if(t&&!se(t))for(const i in t)n[i]==null&&Yn(s,i,"");for(const i in n)Yn(s,i,n[i])}else{const i=s.display;r?t!==n&&(s.cssText=n):t&&e.removeAttribute("style"),"_vod"in e&&(s.display=i)}}const Ws=/\s*!important$/;function Yn(e,t,n){if(H(n))n.forEach(s=>Yn(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Hl(e,t);Ws.test(n)?e.setProperty(ot(s),n.replace(Ws,""),"important"):e[s]=n}}const qs=["Webkit","Moz","ms"],Fn={};function Hl(e,t){const n=Fn[t];if(n)return n;let s=Le(t);if(s!=="filter"&&s in e)return Fn[t]=s;s=un(s);for(let r=0;rIn||(Kl.then(()=>In=0),In=Date.now());function Wl(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;xe(ql(s,n.value),t,5,[s])};return n.value=e,n.attached=kl(),n}function ql(e,t){if(H(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>r=>!r._stopped&&s&&s(r))}else return t}const Ys=/^on[a-z]/,Vl=(e,t,n,s,r=!1,i,o,l,c)=>{t==="class"?Sl(e,s,r):t==="style"?Nl(e,n,s):$t(t)?Qn(t)||jl(e,t,n,s,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):zl(e,t,s,r))?Ul(e,t,s,i,o,l,c):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),$l(e,t,s,r))};function zl(e,t,n,s){return s?!!(t==="innerHTML"||t==="textContent"||t in e&&Ys.test(t)&&K(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Ys.test(t)&&se(n)?!1:t in e}const je="transition",xt="animation",gi=(e,{slots:t})=>zn(Kr,Yl(e),t);gi.displayName="Transition";const mi={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};gi.props=ce({},Kr.props,mi);const Xe=(e,t=[])=>{H(e)?e.forEach(n=>n(...t)):e&&e(...t)},Js=e=>e?H(e)?e.some(t=>t.length>1):e.length>1:!1;function Yl(e){const t={};for(const F in e)F in mi||(t[F]=e[F]);if(e.css===!1)return t;const{name:n="v",type:s,duration:r,enterFromClass:i=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:c=i,appearActiveClass:a=o,appearToClass:d=l,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:g=`${n}-leave-active`,leaveToClass:v=`${n}-leave-to`}=e,S=Jl(r),R=S&&S[0],V=S&&S[1],{onBeforeEnter:m,onEnter:T,onEnterCancelled:O,onLeave:N,onLeaveCancelled:j,onBeforeAppear:z=m,onAppear:D=T,onAppearCancelled:x=O}=t,U=(F,W,P)=>{Ze(F,W?d:l),Ze(F,W?a:o),P&&P()},$=(F,W)=>{F._isLeaving=!1,Ze(F,p),Ze(F,v),Ze(F,g),W&&W()},k=F=>(W,P)=>{const ge=F?D:T,X=()=>U(W,F,P);Xe(ge,[W,X]),Xs(()=>{Ze(W,F?c:i),De(W,F?d:l),Js(ge)||Zs(W,s,R,X)})};return ce(t,{onBeforeEnter(F){Xe(m,[F]),De(F,i),De(F,o)},onBeforeAppear(F){Xe(z,[F]),De(F,c),De(F,a)},onEnter:k(!1),onAppear:k(!0),onLeave(F,W){F._isLeaving=!0;const P=()=>$(F,W);De(F,p),Ql(),De(F,g),Xs(()=>{F._isLeaving&&(Ze(F,p),De(F,v),Js(N)||Zs(F,s,V,P))}),Xe(N,[F,P])},onEnterCancelled(F){U(F,!1),Xe(O,[F])},onAppearCancelled(F){U(F,!0),Xe(x,[F])},onLeaveCancelled(F){$(F),Xe(j,[F])}})}function Jl(e){if(e==null)return null;if(te(e))return[Pn(e.enter),Pn(e.leave)];{const t=Pn(e);return[t,t]}}function Pn(e){return Ui(e)}function De(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e._vtc||(e._vtc=new Set)).add(t)}function Ze(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const{_vtc:n}=e;n&&(n.delete(t),n.size||(e._vtc=void 0))}function Xs(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Xl=0;function Zs(e,t,n,s){const r=e._endId=++Xl,i=()=>{r===e._endId&&s()};if(n)return setTimeout(i,n);const{type:o,timeout:l,propCount:c}=Zl(e,t);if(!o)return s();const a=o+"end";let d=0;const p=()=>{e.removeEventListener(a,g),i()},g=v=>{v.target===e&&++d>=c&&p()};setTimeout(()=>{d(n[S]||"").split(", "),r=s(`${je}Delay`),i=s(`${je}Duration`),o=Qs(r,i),l=s(`${xt}Delay`),c=s(`${xt}Duration`),a=Qs(l,c);let d=null,p=0,g=0;t===je?o>0&&(d=je,p=o,g=i.length):t===xt?a>0&&(d=xt,p=a,g=c.length):(p=Math.max(o,a),d=p>0?o>a?je:xt:null,g=d?d===je?i.length:c.length:0);const v=d===je&&/\b(transform|all)(,|$)/.test(s(`${je}Property`).toString());return{type:d,timeout:p,propCount:g,hasTransform:v}}function Qs(e,t){for(;e.lengthGs(n)+Gs(e[s])))}function Gs(e){return Number(e.slice(0,-1).replace(",","."))*1e3}function Ql(){return document.body.offsetHeight}const er=e=>{const t=e.props["onUpdate:modelValue"]||!1;return H(t)?n=>Zt(t,n):t};function Gl(e){e.target.composing=!0}function tr(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Vc={created(e,{modifiers:{lazy:t,trim:n,number:s}},r){e._assign=er(r);const i=s||r.props&&r.props.type==="number";ft(e,t?"change":"input",o=>{if(o.target.composing)return;let l=e.value;n&&(l=l.trim()),i&&(l=Sn(l)),e._assign(l)}),n&&ft(e,"change",()=>{e.value=e.value.trim()}),t||(ft(e,"compositionstart",Gl),ft(e,"compositionend",tr),ft(e,"change",tr))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:s,number:r}},i){if(e._assign=er(i),e.composing||document.activeElement===e&&e.type!=="range"&&(n||s&&e.value.trim()===t||(r||e.type==="number")&&Sn(e.value)===t))return;const o=t??"";e.value!==o&&(e.value=o)}},ec=["ctrl","shift","alt","meta"],tc={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>ec.some(n=>e[`${n}Key`]&&!t.includes(n))},zc=(e,t)=>(n,...s)=>{for(let r=0;rn=>{if(!("key"in n))return;const s=ot(n.key);if(t.some(r=>r===s||nc[r]===s))return e(n)},Jc={beforeMount(e,{value:t},{transition:n}){e._vod=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Et(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:s}){!t!=!n&&(s?t?(s.beforeEnter(e),Et(e,!0),s.enter(e)):s.leave(e,()=>{Et(e,!1)}):Et(e,t))},beforeUnmount(e,{value:t}){Et(e,t)}};function Et(e,t){e.style.display=t?e._vod:"none"}const sc=ce({patchProp:Vl},Ll);let Mn,nr=!1;function rc(){return Mn=nr?Mn:al(sc),nr=!0,Mn}const Xc=(...e)=>{const t=rc().createApp(...e),{mount:n}=t;return t.mount=s=>{const r=ic(s);if(r)return n(r,!0,r instanceof SVGElement)},t};function ic(e){return se(e)?document.querySelector(e):e}const Zc=(e,t)=>{const n=e.__vccOpts||e;for(const[s,r]of t)n[s]=r;return n},oc="modulepreload",lc=function(e){return"/document/"+e},sr={},Qc=function(t,n,s){if(!n||n.length===0)return t();const r=document.getElementsByTagName("link");return Promise.all(n.map(i=>{if(i=lc(i),i in sr)return;sr[i]=!0;const o=i.endsWith(".css"),l=o?'[rel="stylesheet"]':"";if(!!s)for(let d=r.length-1;d>=0;d--){const p=r[d];if(p.href===i&&(!o||p.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${l}`))return;const a=document.createElement("link");if(a.rel=o?"stylesheet":oc,o||(a.as="script",a.crossOrigin=""),a.href=i,document.head.appendChild(a),o)return new Promise((d,p)=>{a.addEventListener("load",d),a.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>t())},cc=window.__VP_SITE_DATA__,_i=/^[a-z]+:/i,Gc=/^pathname:\/\//,ef="vitepress-theme-appearance",bi=/#.*$/,fc=/(index)?\.(md|html)$/,Ce=typeof document<"u",yi={relativePath:"",title:"404",description:"Not Found",headers:[],frontmatter:{sidebar:!1,layout:"page"},lastUpdated:0,isNotFound:!0};function ac(e,t,n=!1){if(t===void 0)return!1;if(e=rr(`/${e}`),n)return new RegExp(t).test(e);if(rr(t)!==e)return!1;const s=t.match(bi);return s?(Ce?location.hash:"")===s[0]:!0}function rr(e){return decodeURI(e).replace(bi,"").replace(fc,"")}function uc(e){return _i.test(e)}function dc(e,t){var s,r,i,o,l,c,a;const n=Object.keys(e.locales).find(d=>d!=="root"&&!uc(d)&&ac(t,`/${d}/`,!0))||"root";return Object.assign({},e,{localeIndex:n,lang:((s=e.locales[n])==null?void 0:s.lang)??e.lang,dir:((r=e.locales[n])==null?void 0:r.dir)??e.dir,title:((i=e.locales[n])==null?void 0:i.title)??e.title,titleTemplate:((o=e.locales[n])==null?void 0:o.titleTemplate)??e.titleTemplate,description:((l=e.locales[n])==null?void 0:l.description)??e.description,head:Ci(e.head,((c=e.locales[n])==null?void 0:c.head)??[]),themeConfig:{...e.themeConfig,...(a=e.locales[n])==null?void 0:a.themeConfig}})}function wi(e,t){const n=t.title||e.title,s=t.titleTemplate??e.titleTemplate;if(typeof s=="string"&&s.includes(":title"))return s.replace(/:title/g,n);const r=hc(e.title,s);return`${n}${r}`}function hc(e,t){return t===!1?"":t===!0||t===void 0?` | ${e}`:e===t?"":` | ${t}`}function pc(e,t){const[n,s]=t;if(n!=="meta")return!1;const r=Object.entries(s)[0];return r==null?!1:e.some(([i,o])=>i===n&&o[r[0]]===r[1])}function Ci(e,t){return[...e.filter(n=>!pc(t,n)),...t]}const gc=/[\u0000-\u001F"#$&*+,:;<=>?[\]^`{|}\u007F]/g,mc=/^[a-z]:/i;function ir(e){const t=mc.exec(e),n=t?t[0]:"";return n+e.slice(n.length).replace(gc,"_").replace(/(^|\/)_+(?=[^/]*$)/,"$1")}const _c=Symbol(),st=_o(cc);function tf(e){const t=Te(()=>dc(st.value,e.data.relativePath));return{site:t,theme:Te(()=>t.value.themeConfig),page:Te(()=>e.data),frontmatter:Te(()=>e.data.frontmatter),params:Te(()=>e.data.params),lang:Te(()=>t.value.lang),dir:Te(()=>t.value.dir),localeIndex:Te(()=>t.value.localeIndex||"root"),title:Te(()=>wi(t.value,e.data)),description:Te(()=>e.data.description||t.value.description),isDark:Pr(!1)}}function nf(){const e=pt(_c);if(!e)throw new Error("vitepress data not properly injected in app");return e}function bc(e,t){return`${e}${t}`.replace(/\/+/g,"/")}function or(e){return _i.test(e)||e.startsWith(".")?e:bc(st.value.base,e)}function yc(e){let t=e.replace(/\.html$/,"");if(t=decodeURIComponent(t),t=t.replace(/\/$/,"/index"),Ce){const n="/document/";t=ir(t.slice(n.length).replace(/\//g,"_")||"index")+".md";let s=__VP_HASH_MAP__[t.toLowerCase()];s||(t=t.endsWith("_index.md")?t.slice(0,-9)+".md":t.slice(0,-3)+"_index.md",s=__VP_HASH_MAP__[t.toLowerCase()]),t=`${n}assets/${t}.${s}.js`}else t=`./${ir(t.slice(1).replace(/\//g,"_"))}.md.js`;return t}let en=[];function sf(e){en.push(e),Cn(()=>{en=en.filter(t=>t!==e)})}const wc=Symbol(),lr="http://a.com",Cc=()=>({path:"/",component:null,data:yi});function rf(e,t){const n=hn(Cc()),s={route:n,go:r};async function r(l=Ce?location.href:"/"){var a,d;await((a=s.onBeforeRouteChange)==null?void 0:a.call(s,l));const c=new URL(l,lr);st.value.cleanUrls||!c.pathname.endsWith("/")&&!c.pathname.endsWith(".html")&&(c.pathname+=".html",l=c.pathname+c.search+c.hash),Ce&&l!==location.href&&(history.replaceState({scrollPosition:window.scrollY},document.title),history.pushState(null,"",l)),await o(l),await((d=s.onAfterRouteChanged)==null?void 0:d.call(s,l))}let i=null;async function o(l,c=0,a=!1){const d=new URL(l,lr),p=i=d.pathname;try{let g=await e(p);if(i===p){i=null;const{default:v,__pageData:S}=g;if(!v)throw new Error(`Invalid route component: ${v}`);n.path=Ce?p:or(p),n.component=At(v),n.data=At(S),Ce&&Hr(()=>{let R=st.value.base+S.relativePath.replace(/(?:(^|\/)index)?\.md$/,"$1");if(!st.value.cleanUrls&&!R.endsWith("/")&&(R+=".html"),R!==d.pathname&&(d.pathname=R,l=R+d.search+d.hash,history.replaceState(null,"",l)),d.hash&&!c){let V=null;try{V=document.querySelector(decodeURIComponent(d.hash))}catch(m){console.warn(m)}if(V){cr(V,d.hash);return}}window.scrollTo(0,c)})}}catch(g){if(!/fetch/.test(g.message)&&!/^\/404(\.html|\/)?$/.test(l)&&console.error(g),!a)try{const v=await fetch(st.value.base+"hashmap.json");window.__VP_HASH_MAP__=await v.json(),await o(l,c,!0);return}catch{}i===p&&(i=null,n.path=Ce?p:or(p),n.component=t?At(t):null,n.data=yi)}}return Ce&&(window.addEventListener("click",l=>{if(l.target.closest("button"))return;const a=l.target.closest("a");if(a&&!a.closest(".vp-raw")&&(a instanceof SVGElement||!a.download)){const{target:d}=a,{href:p,origin:g,pathname:v,hash:S,search:R}=new URL(a.href instanceof SVGAnimatedString?a.href.animVal:a.href,a.baseURI),V=window.location,m=v.match(/\.\w+$/);!l.ctrlKey&&!l.shiftKey&&!l.altKey&&!l.metaKey&&d!=="_blank"&&g===V.origin&&!(m&&m[0]!==".html")&&(l.preventDefault(),v===V.pathname&&R===V.search?S&&S!==V.hash&&(history.pushState(null,"",S),window.dispatchEvent(new Event("hashchange")),cr(a,S,a.classList.contains("header-anchor"))):r(p))}},{capture:!0}),window.addEventListener("popstate",l=>{o(location.href,l.state&&l.state.scrollPosition||0)}),window.addEventListener("hashchange",l=>{l.preventDefault()})),s}function xc(){const e=pt(wc);if(!e)throw new Error("useRouter() is called without provider.");return e}function xi(){return xc().route}function cr(e,t,n=!1){let s=null;try{s=e.classList.contains("header-anchor")?e:document.querySelector(decodeURIComponent(t))}catch(r){console.warn(r)}if(s){const r=st.value.scrollOffset;let i=0;if(typeof r=="number")i=r;else if(typeof r=="string")i=fr(r);else if(Array.isArray(r))for(const c of r){const a=fr(c);if(a){i=a;break}}const o=parseInt(window.getComputedStyle(s).paddingTop,10),l=window.scrollY+s.getBoundingClientRect().top-i+o;!n||Math.abs(l-window.scrollY)>window.innerHeight?window.scrollTo(0,l):window.scrollTo({left:0,top:l,behavior:"smooth"})}}function fr(e){const t=document.querySelector(e);if(!t)return 0;const n=t.getBoundingClientRect().bottom;return n<0?0:n+24}const ar=()=>en.forEach(e=>e()),of=qr({name:"VitePressContent",props:{as:{type:[Object,String],default:"div"}},setup(e){const t=xi();return()=>zn(e.as,{style:{position:"relative"}},[t.component?zn(t.component,{onVnodeMounted:ar,onVnodeUpdated:ar}):"404 Page Not Found"])}});function lf(e,t){let n=[],s=!0;const r=i=>{if(s){s=!1;return}n.forEach(o=>document.head.removeChild(o)),n=[],i.forEach(o=>{const l=Ec(o);document.head.appendChild(l),n.push(l)})};Ho(()=>{const i=e.data,o=t.value,l=i&&i.description,c=i&&i.frontmatter.head||[];document.title=wi(o,i),document.querySelector("meta[name=description]").setAttribute("content",l||o.description),r(Ci(o.head,vc(c)))})}function Ec([e,t,n]){const s=document.createElement(e);for(const r in t)s.setAttribute(r,t[r]);return n&&(s.innerHTML=n),s}function Tc(e){return e[0]==="meta"&&e[1]&&e[1].name==="description"}function vc(e){return e.filter(t=>!Tc(t))}const Ln=new Set,Ei=()=>document.createElement("link"),Ac=e=>{const t=Ei();t.rel="prefetch",t.href=e,document.head.appendChild(t)},Oc=e=>{const t=new XMLHttpRequest;t.open("GET",e,t.withCredentials=!0),t.send()};let Jt;const Rc=Ce&&(Jt=Ei())&&Jt.relList&&Jt.relList.supports&&Jt.relList.supports("prefetch")?Ac:Oc;function cf(){if(!Ce||!window.IntersectionObserver)return;let e;if((e=navigator.connection)&&(e.saveData||/2g/.test(e.effectiveType)))return;const t=window.requestIdleCallback||setTimeout;let n=null;const s=()=>{n&&n.disconnect(),n=new IntersectionObserver(i=>{i.forEach(o=>{if(o.isIntersecting){const l=o.target;n.unobserve(l);const{pathname:c}=l;if(!Ln.has(c)){Ln.add(c);const a=yc(c);Rc(a)}}})}),t(()=>{document.querySelectorAll("#app a").forEach(i=>{const{target:o}=i,{hostname:l,pathname:c}=new URL(i.href instanceof SVGAnimatedString?i.href.animVal:i.href,i.baseURI),a=c.match(/\.\w+$/);a&&a[0]!==".html"||o!=="_blank"&&l===location.hostname&&(c!==location.pathname?n.observe(i):Ln.add(c))})})};wn(s);const r=xi();Qt(()=>r.path,s),Cn(()=>{n&&n.disconnect()})}const ff=qr({setup(e,{slots:t}){const n=Pr(!1);return wn(()=>{n.value=!0}),()=>n.value&&t.default?t.default():null}});function af(){if(Ce){const e=new Map;window.addEventListener("click",t=>{var s;const n=t.target;if(n.matches('div[class*="language-"] > button.copy')){const r=n.parentElement,i=(s=n.nextElementSibling)==null?void 0:s.nextElementSibling;if(!r||!i)return;const o=/language-(shellscript|shell|bash|sh|zsh)/.test(r.className);let l="";i.querySelectorAll("span.line:not(.diff.remove)").forEach(c=>l+=(c.textContent||"")+` +`),l=l.slice(0,-1),o&&(l=l.replace(/^ *(\$|>) /gm,"").trim()),Fc(l).then(()=>{n.classList.add("copied"),clearTimeout(e.get(n));const c=setTimeout(()=>{n.classList.remove("copied"),n.blur(),e.delete(n)},2e3);e.set(n,c)})}})}}async function Fc(e){try{return navigator.clipboard.writeText(e)}catch{const t=document.createElement("textarea"),n=document.activeElement;t.value=e,t.setAttribute("readonly",""),t.style.contain="strict",t.style.position="absolute",t.style.left="-9999px",t.style.fontSize="12pt";const s=document.getSelection(),r=s?s.rangeCount>0&&s.getRangeAt(0):null;document.body.appendChild(t),t.select(),t.selectionStart=0,t.selectionEnd=e.length,document.execCommand("copy"),document.body.removeChild(t),r&&(s.removeAllRanges(),s.addRange(r)),n&&n.focus()}}function uf(){Ce&&window.addEventListener("click",e=>{var n,s;const t=e.target;if(t.matches(".vp-code-group input")){const r=(n=t.parentElement)==null?void 0:n.parentElement,i=Array.from((r==null?void 0:r.querySelectorAll("input"))||[]).indexOf(t),o=r==null?void 0:r.querySelector('div[class*="language-"].active'),l=(s=r==null?void 0:r.querySelectorAll('div[class*="language-"]:not(.language-id)'))==null?void 0:s[i];o&&l&&o!==l&&(o.classList.remove("active"),l.classList.add("active"))}})}export{_o as $,Wc as A,yl as B,le as C,Hc as D,Qc as E,he as F,Nc as G,Jc as H,zc as I,Vc as J,Uc as K,Dc as L,$c as M,_i as N,Ce as O,Gc as P,Or as Q,Mc as R,Lc as S,gi as T,kc as U,ef as V,pt as W,No as X,qo as Y,sf as Z,Zc as _,ai as a,Xn as a0,Yc as a1,jc as a2,Sc as a3,qc as a4,lf as a5,cf as a6,af as a7,uf as a8,zn as a9,wc as aa,tf as ab,_c as ac,of as ad,ff as ae,st as af,Xc as ag,rf as ah,yc as ai,yo as b,Kc as c,qr as d,Te as e,Pr as f,ui as g,wn as h,Hr as i,Ki as j,Pc as k,Ho as l,uc as m,Zn as n,ii as o,or as p,ac as q,Bc as r,xi as s,Ic as t,nf as u,Cn as v,Qt as w,fi as x,li as y,Fo as z}; diff --git a/docs/document/assets/chunks/theme.76ae0cc6.js b/docs/document/assets/chunks/theme.76ae0cc6.js new file mode 100644 index 000000000..9793a88aa --- /dev/null +++ b/docs/document/assets/chunks/theme.76ae0cc6.js @@ -0,0 +1,7 @@ +import{d as $,o as l,c as r,r as h,n as A,a as D,t as L,_ as g,u as lt,b as c,e as V,f as S,g as Vt,h as X,i as ct,j as St,k as Lt,w as ee,l as ae,m as Mt,P as It,p as ye,q as te,s as ce,v as Ie,x as u,F as T,y as w,z as v,T as Ce,A as k,B as de,C as p,D as K,E as Ct,G as Ue,H as Tt,I as rt,J as Nt,K as z,L as At,M as J,N as ut,O as Bt,Q as Ot,R,S as U,U as Et,V as We,W as Te,X as _e,Y as Ht,Z as ie,$ as Ne,a0 as zt,a1 as Dt,a2 as Ft,a3 as jt,a4 as Gt}from"./framework.75837252.js";const qt=$({__name:"VPBadge",props:{text:null,type:null},setup(e){return(t,n)=>(l(),r("span",{class:A(["VPBadge",e.type??"tip"])},[h(t.$slots,"default",{},()=>[D(L(e.text),1)],!0)],2))}});const Rt=g(qt,[["__scopeId","data-v-e233384c"]]),M=lt;var Ke;const dt=typeof window<"u",Ut=e=>typeof e=="string",Wt=()=>{};dt&&((Ke=window==null?void 0:window.navigator)!=null&&Ke.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function _t(e){return typeof e=="function"?e():c(e)}function Kt(e){return e}function ht(e){return St()?(Lt(e),!0):!1}function Qt(e){return typeof e=="function"?V(e):S(e)}function Yt(e,t=!0){Vt()?X(e):t?e():ct(e)}function Xt(e){var t;const n=_t(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ae=dt?window:void 0;function Jt(...e){let t,n,s,o;if(Ut(e[0])||Array.isArray(e[0])?([n,s,o]=e,t=Ae):[t,n,s,o]=e,!t)return Wt;Array.isArray(n)||(n=[n]),Array.isArray(s)||(s=[s]);const a=[],i=()=>{a.forEach(y=>y()),a.length=0},_=(y,b,P,m)=>(y.addEventListener(b,P,m),()=>y.removeEventListener(b,P,m)),d=ee(()=>[Xt(t),_t(o)],([y,b])=>{i(),y&&a.push(...n.flatMap(P=>s.map(m=>_(y,P,m,b))))},{immediate:!0,flush:"post"}),f=()=>{d(),i()};return ht(f),f}function Zt(e,t=!1){const n=S(),s=()=>n.value=!!e();return s(),Yt(s,t),n}function Ve(e,t={}){const{window:n=Ae}=t,s=Zt(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let o;const a=S(!1),i=()=>{o&&("removeEventListener"in o?o.removeEventListener("change",_):o.removeListener(_))},_=()=>{s.value&&(i(),o=n.matchMedia(Qt(e).value),a.value=o.matches,"addEventListener"in o?o.addEventListener("change",_):o.addListener(_))};return ae(_),ht(()=>i()),a}const Qe=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Ye="__vueuse_ssr_handlers__";Qe[Ye]=Qe[Ye]||{};var Xe;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(Xe||(Xe={}));var en=Object.defineProperty,Je=Object.getOwnPropertySymbols,tn=Object.prototype.hasOwnProperty,nn=Object.prototype.propertyIsEnumerable,Ze=(e,t,n)=>t in e?en(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sn=(e,t)=>{for(var n in t||(t={}))tn.call(t,n)&&Ze(e,n,t[n]);if(Je)for(var n of Je(t))nn.call(t,n)&&Ze(e,n,t[n]);return e};const on={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};sn({linear:Kt},on);function an({window:e=Ae}={}){if(!e)return{x:S(0),y:S(0)};const t=S(e.scrollX),n=S(e.scrollY);return Jt(e,"scroll",()=>{t.value=e.scrollX,n.value=e.scrollY},{capture:!1,passive:!0}),{x:t,y:n}}function ln(e,t){let n,s=!1;return()=>{n&&clearTimeout(n),s?n=setTimeout(e,t):(e(),s=!0,setTimeout(()=>{s=!1},t))}}function Se(e){return/^\//.test(e)?e:`/${e}`}function le(e){if(Mt(e))return e.replace(It,"");const{site:t}=M(),{pathname:n,search:s,hash:o}=new URL(e,"http://example.com"),a=n.endsWith("/")||n.endsWith(".html")?e:e.replace(/(?:(^\.+)\/)?.*$/,`$1${n.replace(/(\.md)?$/,t.value.cleanUrls?"":".html")}${s}${o}`);return ye(a)}function vt(e,t){if(Array.isArray(e))return e;if(e==null)return[];t=Se(t);const n=Object.keys(e).sort((s,o)=>o.split("/").length-s.split("/").length).find(s=>t.startsWith(Se(s)));return n?e[n]:[]}function cn(e){const t=[];let n=0;for(const s in e){const o=e[s];if(o.items){n=t.push(o);continue}t[n]||t.push({items:[]}),t[n].items.push(o)}return t}function rn(e){const t=[];function n(s){for(const o of s)o.text&&o.link&&t.push({text:o.text,link:o.link}),o.items&&n(o.items)}return n(e),t}function Le(e,t){return Array.isArray(t)?t.some(n=>Le(e,n)):te(e,t.link)?!0:t.items?Le(e,t.items):!1}function W(){const e=ce(),{theme:t,frontmatter:n}=M(),s=Ve("(min-width: 960px)"),o=S(!1),a=V(()=>{const x=t.value.sidebar,N=e.data.relativePath;return x?vt(x,N):[]}),i=V(()=>n.value.sidebar!==!1&&a.value.length>0&&n.value.layout!=="home"),_=V(()=>d?n.value.aside==null?t.value.aside==="left":n.value.aside==="left":!1),d=V(()=>n.value.layout==="home"?!1:n.value.aside!=null?!!n.value.aside:t.value.aside!==!1),f=V(()=>i.value&&s.value),y=V(()=>i.value?cn(a.value):[]);function b(){o.value=!0}function P(){o.value=!1}function m(){o.value?P():b()}return{isOpen:o,sidebar:a,sidebarGroups:y,hasSidebar:i,hasAside:d,leftAside:_,isSidebarEnabled:f,open:b,close:P,toggle:m}}function un(e,t){let n;ae(()=>{n=e.value?document.activeElement:void 0}),X(()=>{window.addEventListener("keyup",s)}),Ie(()=>{window.removeEventListener("keyup",s)});function s(o){o.key==="Escape"&&e.value&&(t(),n==null||n.focus())}}function dn(e){const{page:t}=M(),n=S(!1),s=V(()=>e.value.collapsed!=null),o=V(()=>!!e.value.link),a=V(()=>te(t.value.relativePath,e.value.link)),i=V(()=>a.value?!0:e.value.items?Le(t.value.relativePath,e.value.items):!1),_=V(()=>!!(e.value.items&&e.value.items.length));ae(()=>{n.value=!!(s.value&&e.value.collapsed)}),ae(()=>{(a.value||i.value)&&(n.value=!1)});function d(){s.value&&(n.value=!n.value)}return{collapsed:n,collapsible:s,isLink:o,isActiveLink:a,hasActiveLink:i,hasChildren:_,toggle:d}}const _n=$({__name:"VPSkipLink",setup(e){const t=ce(),n=S();ee(()=>t.path,()=>n.value.focus());function s({target:o}){const a=document.querySelector(decodeURIComponent(o.hash));if(a){const i=()=>{a.removeAttribute("tabindex"),a.removeEventListener("blur",i)};a.setAttribute("tabindex","-1"),a.addEventListener("blur",i),a.focus(),window.scrollTo(0,0)}}return(o,a)=>(l(),r(T,null,[u("span",{ref_key:"backToTop",ref:n,tabindex:"-1"},null,512),u("a",{href:"#VPContent",class:"VPSkipLink visually-hidden",onClick:s}," Skip to content ")],64))}});const hn=g(_n,[["__scopeId","data-v-994b33bc"]]),vn={key:0,class:"VPBackdrop"},fn=$({__name:"VPBackdrop",props:{show:{type:Boolean}},setup(e){return(t,n)=>(l(),w(Ce,{name:"fade"},{default:v(()=>[e.show?(l(),r("div",vn)):k("",!0)]),_:1}))}});const pn=g(fn,[["__scopeId","data-v-b2600058"]]);function mn(){const e=S(!1);function t(){e.value=!0,window.addEventListener("resize",o)}function n(){e.value=!1,window.removeEventListener("resize",o)}function s(){e.value?n():t()}function o(){window.outerWidth>=768&&n()}const a=ce();return ee(()=>a.path,n),{isScreenOpen:e,openScreen:t,closeScreen:n,toggleScreen:s}}function re({removeCurrent:e=!0,correspondingLink:t=!1}={}){const{site:n,localeIndex:s,page:o,theme:a}=M(),i=V(()=>{var d,f;return{label:(d=n.value.locales[s.value])==null?void 0:d.label,link:((f=n.value.locales[s.value])==null?void 0:f.link)||(s.value==="root"?"/":`/${s.value}/`)}});return{localeLinks:V(()=>Object.entries(n.value.locales).flatMap(([d,f])=>e&&i.value.label===f.label?[]:{text:f.label,link:gn(f.link||(d==="root"?"/":`/${d}/`),a.value.i18nRouting!==!1&&t,o.value.relativePath.slice(i.value.link.length-1),!n.value.cleanUrls)})),currentLang:i}}function gn(e,t,n,s){return t?e.replace(/\/$/,"")+Se(n.replace(/(^|\/)?index.md$/,"$1").replace(/\.md$/,s?".html":"")):e}const yn=["src","alt"],bn={inheritAttrs:!1},kn=$({...bn,__name:"VPImage",props:{image:null,alt:null},setup(e){return(t,n)=>{const s=K("VPImage",!0);return e.image?(l(),r(T,{key:0},[typeof e.image=="string"||"src"in e.image?(l(),r("img",de({key:0,class:"VPImage"},typeof e.image=="string"?t.$attrs:{...e.image,...t.$attrs},{src:c(ye)(typeof e.image=="string"?e.image:e.image.src),alt:e.alt??(typeof e.image=="string"?"":e.image.alt||"")}),null,16,yn)):(l(),r(T,{key:1},[p(s,de({class:"dark",image:e.image.dark,alt:e.image.alt},t.$attrs),null,16,["image","alt"]),p(s,de({class:"light",image:e.image.light,alt:e.image.alt},t.$attrs),null,16,["image","alt"])],64))],64)):k("",!0)}}});const Be=g(kn,[["__scopeId","data-v-74766fef"]]),$n=["href"],Pn=$({__name:"VPNavBarTitle",setup(e){const{site:t,theme:n}=M(),{hasSidebar:s}=W(),{currentLang:o}=re();return(a,i)=>(l(),r("div",{class:A(["VPNavBarTitle",{"has-sidebar":c(s)}])},[u("a",{class:"title",href:c(le)(c(o).link)},[h(a.$slots,"nav-bar-title-before",{},void 0,!0),c(n).logo?(l(),w(Be,{key:0,class:"logo",image:c(n).logo},null,8,["image"])):k("",!0),c(n).siteTitle?(l(),r(T,{key:1},[D(L(c(n).siteTitle),1)],64)):c(n).siteTitle===void 0?(l(),r(T,{key:2},[D(L(c(t).title),1)],64)):k("",!0),h(a.$slots,"nav-bar-title-after",{},void 0,!0)],8,$n)],2))}});const xn=g(Pn,[["__scopeId","data-v-bd15f18e"]]),wn="/document/assets/flex-logo.2489261b.svg";function Pe(e,t){return typeof e>"u"?t:e}function et(e){const t=Array(e);for(let n=0;n=this.minlength&&(_||!i[y])){let P=ue(d,o,f),m="";switch(this.tokenize){case"full":if(3x;N--)if(N-x>=this.minlength){const B=ue(d,o,f,b,x);m=y.substring(x,N),this.push_index(i,m,B,e,n)}break}case"reverse":if(2=this.minlength){const N=ue(d,o,f,b,x);this.push_index(i,m,N,e,n)}m=""}case"forward":if(1=this.minlength&&this.push_index(i,m,P,e,n);break}default:if(this.boost&&(P=Math.min(0|P/this.boost(t,y,f),d-1)),this.push_index(i,y,P,e,n),_&&1=this.minlength&&!x[y]){x[y]=1;const I=ue(N+(o/2>N?0:1),o,f,E-1,C-1),O=this.bidirectional&&y>B;this.push_index(a,O?B:y,I,e,n,O?y:B)}}}}}this.fastupdate||(this.register[e]=1)}}return this};function ue(e,t,n,s,o){return n&&1=this.minlength&&!b[m]){if(!this.optimize&&!a&&!this.map[m])return i;P[N++]=m,b[m]=1}e=P,s=e.length}if(!s)return i;t||(t=100);let d,f=this.depth&&1=n)))));m++);if(f)return o?st(_,n,0):void(e[e.length]=_)}return!t&&_};function st(e,t,n){return e=e.length===1?e[0]:Sn(e),n||e.length>t?e.slice(n,n+t):e}function ot(e,t,n,s){if(n){const o=s&&t>n;e=e[o?t:n],e=e&&e[o?n:t]}else e=e[t];return e}F.prototype.contain=function(e){return!!this.register[e]},F.prototype.update=function(e,t){return this.remove(e).add(e,t)},F.prototype.remove=function(e,t){const n=this.register[e];if(n){if(this.fastupdate)for(let s,o=0;o{if(a.value){for(var C=b.value.search(a.value,{enrich:!0}),I=[],O=0;O!C||!C.length?[]:C.reduce((O,H)=>(O[I(H)]||(O[I(H)]=[]),O[I(H)].push(H),O),{}),B=()=>{setTimeout(()=>{_.value&&_.value.focus()},100),E(),o.value=!0};X(async()=>{var H,G;const C=await Ct(()=>import("./virtual_search-data.5a1b4eb0.js"),[]);d.value=C.default.INDEX_DATA,f.value=C.default.PREVIEW_LOOKUP,y.value=C.default.Options,i.value=window.location.origin+ye(n.value==="root"?"/":n.value),P.value=((H=y.value)==null?void 0:H.buttonLabel)||P.value,m.value=((G=y.value)==null?void 0:G.placeholder)||m.value;var I=new F(y.value);I.import("reg",d.value.reg),I.import("cfg",d.value.cfg),I.import("map",d.value.map),I.import("ctx",d.value.ctx),b.value=I,s.value.innerHTML=/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?"⌘":"Ctrl";const O=q=>{q.key==="k"&&(q.ctrlKey||q.metaKey)&&(q.preventDefault(),B())};window.addEventListener("keydown",O)});function E(){o.value=!1,a.value=""}return(C,I)=>{const O=K("ClientOnly");return l(),r("div",Wn,[p(O,null,{default:v(()=>[(l(),w(At,{to:"body"},[Ue(u("div",{class:"modal-back",onClick:I[2]||(I[2]=H=>o.value=!1)},[u("div",{class:"modal",onClick:I[1]||(I[1]=rt(()=>{},["stop"]))},[u("form",Kn,[Qn,Ue(u("input",{class:"DocSearch-Input","aria-autocomplete":"both","aria-labelledby":"docsearch-label",id:"docsearch-input",autocomplete:"off",autocorrect:"off",autocapitalize:"off",enterkeyhint:"search",spellcheck:"false",autofocus:"true","onUpdate:modelValue":I[0]||(I[0]=H=>a.value=H),placeholder:m.value,maxlength:"64",type:"search",ref_key:"input",ref:_},null,8,Yn),[[Nt,a.value]])]),u("div",Xn,[(l(!0),r(T,null,z(N(c(x),H=>H.link.split("/").slice(0,-1).join("-")),(H,G)=>(l(),r("div",{key:G},[u("span",Jn,L(G?G.toString()[0].toUpperCase()+G.toString().slice(1):"Home"),1),(l(!0),r(T,null,z(H,q=>(l(),r("a",{href:i.value+q.link,key:q.id,onClick:E},[u("div",es,[u("span",ts,L(q.link.includes("#")?"#":"▤"),1),u("div",ns,[u("h3",null,L(q.title),1),u("p",null,[u("div",{innerHTML:q.preview},null,8,ss)])]),os])],8,Zn))),128))]))),128))]),as])],512),[[Tt,o.value]])]))]),_:1}),u("div",{id:"docsearch",onClick:I[3]||(I[3]=H=>B())},[u("button",is,[u("span",ls,[cs,u("span",rs,L(P.value),1)]),u("span",us,[u("span",{class:"DocSearch-Button-Key",ref_key:"metaKey",ref:s},"Meta",512),ds])])])])}}});const hs={},vs={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",height:"24px",viewBox:"0 0 24 24",width:"24px"},fs=u("path",{d:"M0 0h24v24H0V0z",fill:"none"},null,-1),ps=u("path",{d:"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z"},null,-1),ms=[fs,ps];function gs(e,t){return l(),r("svg",vs,ms)}const ys=g(hs,[["render",gs]]),bs=$({__name:"VPLink",props:{tag:null,href:null,noIcon:{type:Boolean},target:null,rel:null},setup(e){const t=e,n=V(()=>t.tag??t.href?"a":"span"),s=V(()=>t.href&&ut.test(t.href));return(o,a)=>(l(),w(J(c(n)),{class:A(["VPLink",{link:e.href}]),href:e.href?c(le)(e.href):void 0,target:e.target||(c(s)?"_blank":void 0),rel:e.rel||(c(s)?"noreferrer":void 0)},{default:v(()=>[h(o.$slots,"default",{},void 0,!0),c(s)&&!e.noIcon?(l(),w(ys,{key:0,class:"icon"})):k("",!0)]),_:3},8,["class","href","target","rel"]))}});const Q=g(bs,[["__scopeId","data-v-87683ad2"]]),ks=$({__name:"VPNavBarMenuLink",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(l(),w(Q,{class:A({VPNavBarMenuLink:!0,active:c(te)(c(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel,tabindex:"0"},{default:v(()=>[D(L(e.item.text),1)]),_:1},8,["class","href","target","rel"]))}});const $s=g(ks,[["__scopeId","data-v-6dd6d312"]]),Oe=S();let ft=!1,we=0;function Ps(e){const t=S(!1);if(Bt){!ft&&xs(),we++;const n=ee(Oe,s=>{var o,a,i;s===e.el.value||(o=e.el.value)!=null&&o.contains(s)?(t.value=!0,(a=e.onFocus)==null||a.call(e)):(t.value=!1,(i=e.onBlur)==null||i.call(e))});Ie(()=>{n(),we--,we||ws()})}return Ot(t)}function xs(){document.addEventListener("focusin",pt),ft=!0,Oe.value=document.activeElement}function ws(){document.removeEventListener("focusin",pt)}function pt(){Oe.value=document.activeElement}const Vs={},Ss={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ls=u("path",{d:"M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"},null,-1),Ms=[Ls];function Is(e,t){return l(),r("svg",Ss,Ms)}const mt=g(Vs,[["render",Is]]),Cs={},Ts={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Ns=u("circle",{cx:"12",cy:"12",r:"2"},null,-1),As=u("circle",{cx:"19",cy:"12",r:"2"},null,-1),Bs=u("circle",{cx:"5",cy:"12",r:"2"},null,-1),Os=[Ns,As,Bs];function Es(e,t){return l(),r("svg",Ts,Os)}const Hs=g(Cs,[["render",Es]]),zs={class:"VPMenuLink"},Ds=$({__name:"VPMenuLink",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(l(),r("div",zs,[p(Q,{class:A({active:c(te)(c(t).relativePath,e.item.activeMatch||e.item.link,!!e.item.activeMatch)}),href:e.item.link,target:e.item.target,rel:e.item.rel},{default:v(()=>[D(L(e.item.text),1)]),_:1},8,["class","href","target","rel"])]))}});const be=g(Ds,[["__scopeId","data-v-b9520bf2"]]),Fs={class:"VPMenuGroup"},js={key:0,class:"title"},Gs=$({__name:"VPMenuGroup",props:{text:null,items:null},setup(e){return(t,n)=>(l(),r("div",Fs,[e.text?(l(),r("p",js,L(e.text),1)):k("",!0),(l(!0),r(T,null,z(e.items,s=>(l(),r(T,null,["link"in s?(l(),w(be,{key:0,item:s},null,8,["item"])):k("",!0)],64))),256))]))}});const qs=g(Gs,[["__scopeId","data-v-2bec9359"]]),Rs={class:"VPMenu"},Us={key:0,class:"items"},Ws=$({__name:"VPMenu",props:{items:null},setup(e){return(t,n)=>(l(),r("div",Rs,[e.items?(l(),r("div",Us,[(l(!0),r(T,null,z(e.items,s=>(l(),r(T,{key:s.text},["link"in s?(l(),w(be,{key:0,item:s},null,8,["item"])):(l(),w(qs,{key:1,text:s.text,items:s.items},null,8,["text","items"]))],64))),128))])):k("",!0),h(t.$slots,"default",{},void 0,!0)]))}});const Ks=g(Ws,[["__scopeId","data-v-7bffa9cd"]]),Qs=["aria-expanded","aria-label"],Ys={key:0,class:"text"},Xs={class:"menu"},Js=$({__name:"VPFlyout",props:{icon:null,button:null,label:null,items:null},setup(e){const t=S(!1),n=S();Ps({el:n,onBlur:s});function s(){t.value=!1}return(o,a)=>(l(),r("div",{class:"VPFlyout",ref_key:"el",ref:n,onMouseenter:a[1]||(a[1]=i=>t.value=!0),onMouseleave:a[2]||(a[2]=i=>t.value=!1)},[u("button",{type:"button",class:"button","aria-haspopup":"true","aria-expanded":t.value,"aria-label":e.label,onClick:a[0]||(a[0]=i=>t.value=!t.value)},[e.button||e.icon?(l(),r("span",Ys,[e.icon?(l(),w(J(e.icon),{key:0,class:"option-icon"})):k("",!0),D(" "+L(e.button)+" ",1),p(mt,{class:"text-icon"})])):(l(),w(Hs,{key:1,class:"icon"}))],8,Qs),u("div",Xs,[p(Ks,{items:e.items},{default:v(()=>[h(o.$slots,"default",{},void 0,!0)]),_:3},8,["items"])])],544))}});const Ee=g(Js,[["__scopeId","data-v-64c29883"]]),Zs=$({__name:"VPNavBarMenuGroup",props:{item:null},setup(e){const{page:t}=M();return(n,s)=>(l(),w(Ee,{class:A({VPNavBarMenuGroup:!0,active:c(te)(c(t).relativePath,e.item.activeMatch,!!e.item.activeMatch)}),button:e.item.text,items:e.item.items},null,8,["class","button","items"]))}}),eo=e=>(R("data-v-c6c3e6d4"),e=e(),U(),e),to={key:0,"aria-labelledby":"main-nav-aria-label",class:"VPNavBarMenu"},no=eo(()=>u("span",{id:"main-nav-aria-label",class:"visually-hidden"},"Main Navigation",-1)),so=$({__name:"VPNavBarMenu",setup(e){const{theme:t}=M();return(n,s)=>c(t).nav?(l(),r("nav",to,[no,(l(!0),r(T,null,z(c(t).nav,o=>(l(),r(T,{key:o.text},["link"in o?(l(),w($s,{key:0,item:o},null,8,["item"])):(l(),w(Zs,{key:1,item:o},null,8,["item"]))],64))),128))])):k("",!0)}});const oo=g(so,[["__scopeId","data-v-c6c3e6d4"]]),ao={},io={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},lo=u("path",{d:"M0 0h24v24H0z",fill:"none"},null,-1),co=u("path",{d:" M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z ",class:"css-c4d79v"},null,-1),ro=[lo,co];function uo(e,t){return l(),r("svg",io,ro)}const gt=g(ao,[["render",uo]]),_o={class:"items"},ho={class:"title"},vo=$({__name:"VPNavBarTranslations",setup(e){const{theme:t}=M(),{localeLinks:n,currentLang:s}=re({correspondingLink:!0});return(o,a)=>c(n).length&&c(s).label?(l(),w(Ee,{key:0,class:"VPNavBarTranslations",icon:gt,label:c(t).langMenuLabel||"Change language"},{default:v(()=>[u("div",_o,[u("p",ho,L(c(s).label),1),(l(!0),r(T,null,z(c(n),i=>(l(),w(be,{key:i.link,item:i},null,8,["item"]))),128))])]),_:1},8,["label"])):k("",!0)}});const fo=g(vo,[["__scopeId","data-v-3bf1c934"]]);const po={},mo={class:"VPSwitch",type:"button",role:"switch"},go={class:"check"},yo={key:0,class:"icon"};function bo(e,t){return l(),r("button",mo,[u("span",go,[e.$slots.default?(l(),r("span",yo,[h(e.$slots,"default",{},void 0,!0)])):k("",!0)])])}const ko=g(po,[["render",bo],["__scopeId","data-v-0a2eba70"]]),$o={},Po={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},xo=Et('',9),wo=[xo];function Vo(e,t){return l(),r("svg",Po,wo)}const So=g($o,[["render",Vo]]),Lo={},Mo={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},Io=u("path",{d:"M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"},null,-1),Co=[Io];function To(e,t){return l(),r("svg",Mo,Co)}const No=g(Lo,[["render",To]]),Ao={title:"toggle dark mode"},Bo=$({__name:"VPSwitchAppearance",setup(e){const{site:t,isDark:n}=M(),s=S(!1),o=typeof localStorage<"u"?a():()=>{};X(()=>{s.value=document.documentElement.classList.contains("dark")});function a(){const i=window.matchMedia("(prefers-color-scheme: dark)"),_=document.documentElement.classList;let d=localStorage.getItem(We),f=t.value.appearance==="dark"&&d==null||(d==="auto"||d==null?i.matches:d==="dark");i.onchange=P=>{d==="auto"&&b(f=P.matches)};function y(){b(f=!f),d=f?i.matches?"auto":"dark":i.matches?"light":"auto",localStorage.setItem(We,d)}function b(P){const m=document.createElement("style");m.type="text/css",m.appendChild(document.createTextNode(`:not(.VPSwitchAppearance):not(.VPSwitchAppearance *) { + -webkit-transition: none !important; + -moz-transition: none !important; + -o-transition: none !important; + -ms-transition: none !important; + transition: none !important; +}`)),document.head.appendChild(m),s.value=P,_[P?"add":"remove"]("dark"),window.getComputedStyle(m).opacity,document.head.removeChild(m)}return y}return ee(s,i=>{n.value=i}),(i,_)=>(l(),r("label",Ao,[p(ko,{class:"VPSwitchAppearance","aria-checked":s.value,onClick:c(o)},{default:v(()=>[p(So,{class:"sun"}),p(No,{class:"moon"})]),_:1},8,["aria-checked","onClick"])]))}});const He=g(Bo,[["__scopeId","data-v-f37e294f"]]),Oo={key:0,class:"VPNavBarAppearance"},Eo=$({__name:"VPNavBarAppearance",setup(e){const{site:t}=M();return(n,s)=>c(t).appearance?(l(),r("div",Oo,[p(He)])):k("",!0)}});const Ho=g(Eo,[["__scopeId","data-v-88042fc7"]]),zo={discord:'Discord',facebook:'Facebook',github:'GitHub',instagram:'Instagram',linkedin:'LinkedIn',mastodon:'Mastodon',slack:'Slack',twitter:'Twitter',youtube:'YouTube'},Do=["href","aria-label","innerHTML"],Fo=$({__name:"VPSocialLink",props:{icon:null,link:null},setup(e){const t=e,n=V(()=>typeof t.icon=="object"?t.icon.svg:zo[t.icon]);return(s,o)=>(l(),r("a",{class:"VPSocialLink",href:e.link,"aria-label":typeof e.icon=="string"?e.icon:"",target:"_blank",rel:"noopener",innerHTML:c(n)},null,8,Do))}});const jo=g(Fo,[["__scopeId","data-v-ca994af5"]]),Go={class:"VPSocialLinks"},qo=$({__name:"VPSocialLinks",props:{links:null},setup(e){return(t,n)=>(l(),r("div",Go,[(l(!0),r(T,null,z(e.links,({link:s,icon:o})=>(l(),w(jo,{key:s,icon:o,link:s},null,8,["icon","link"]))),128))]))}});const ze=g(qo,[["__scopeId","data-v-de2bf516"]]),Ro=$({__name:"VPNavBarSocialLinks",setup(e){const{theme:t}=M();return(n,s)=>c(t).socialLinks?(l(),w(ze,{key:0,class:"VPNavBarSocialLinks",links:c(t).socialLinks},null,8,["links"])):k("",!0)}});const Uo=g(Ro,[["__scopeId","data-v-08b35e6f"]]),Wo={key:0,class:"group translations"},Ko={class:"trans-title"},Qo={key:1,class:"group"},Yo={class:"item appearance"},Xo={class:"label"},Jo={class:"appearance-action"},Zo={key:2,class:"group"},ea={class:"item social-links"},ta=$({__name:"VPNavBarExtra",setup(e){const{site:t,theme:n}=M(),{localeLinks:s,currentLang:o}=re({correspondingLink:!0}),a=V(()=>s.value.length&&o.value.label||t.value.appearance||n.value.socialLinks);return(i,_)=>c(a)?(l(),w(Ee,{key:0,class:"VPNavBarExtra",label:"extra navigation"},{default:v(()=>[c(s).length&&c(o).label?(l(),r("div",Wo,[u("p",Ko,L(c(o).label),1),(l(!0),r(T,null,z(c(s),d=>(l(),w(be,{key:d.link,item:d},null,8,["item"]))),128))])):k("",!0),c(t).appearance?(l(),r("div",Qo,[u("div",Yo,[u("p",Xo,L(c(n).darkModeSwitchLabel||"Appearance"),1),u("div",Jo,[p(He)])])])):k("",!0),c(n).socialLinks?(l(),r("div",Zo,[u("div",ea,[p(ze,{class:"social-links-list",links:c(n).socialLinks},null,8,["links"])])])):k("",!0)]),_:1})):k("",!0)}});const na=g(ta,[["__scopeId","data-v-47bb42ad"]]),sa=e=>(R("data-v-670493dd"),e=e(),U(),e),oa=["aria-expanded"],aa=sa(()=>u("span",{class:"container"},[u("span",{class:"top"}),u("span",{class:"middle"}),u("span",{class:"bottom"})],-1)),ia=[aa],la=$({__name:"VPNavBarHamburger",props:{active:{type:Boolean}},emits:["click"],setup(e){return(t,n)=>(l(),r("button",{type:"button",class:A(["VPNavBarHamburger",{active:e.active}]),"aria-label":"mobile navigation","aria-expanded":e.active,"aria-controls":"VPNavScreen",onClick:n[0]||(n[0]=s=>t.$emit("click"))},ia,10,oa))}});const ca=g(la,[["__scopeId","data-v-670493dd"]]),ra=e=>(R("data-v-ddff7d0b"),e=e(),U(),e),ua={class:"container"},da={class:"title"},_a={class:"content"},ha=ra(()=>u("div",{class:"curtain"},null,-1)),va={class:"content-body"},fa=$({__name:"VPNavBar",props:{isScreenOpen:{type:Boolean}},emits:["toggle-screen"],setup(e){const{y:t}=an(),{hasSidebar:n}=W(),s=V(()=>({"has-sidebar":n.value,fill:t.value>0}));return(o,a)=>(l(),r("div",{class:A(["VPNavBar",c(s)])},[u("div",ua,[u("div",da,[p(xn,null,{"nav-bar-title-before":v(()=>[h(o.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[h(o.$slots,"nav-bar-title-after",{},void 0,!0)]),_:3})]),u("div",_a,[ha,u("div",va,[h(o.$slots,"nav-bar-content-before",{},void 0,!0),p(_s,{class:"search"}),p(oo,{class:"menu"}),p(fo,{class:"translations"}),p(Ho,{class:"appearance"}),p(Uo,{class:"social-links"}),p(na,{class:"extra"}),h(o.$slots,"nav-bar-content-after",{},void 0,!0),p(ca,{class:"hamburger",active:e.isScreenOpen,onClick:a[0]||(a[0]=i=>o.$emit("toggle-screen"))},null,8,["active"])])])])],2))}});const pa=g(fa,[["__scopeId","data-v-ddff7d0b"]]);function ma(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t1),Z=[],me=!1,Fe=-1,se=void 0,Y=void 0,oe=void 0,yt=function(t){return Z.some(function(n){return!!(n.options.allowTouchMove&&n.options.allowTouchMove(t))})},ge=function(t){var n=t||window.event;return yt(n.target)||n.touches.length>1?!0:(n.preventDefault&&n.preventDefault(),!1)},ga=function(t){if(oe===void 0){var n=!!t&&t.reserveScrollBarGap===!0,s=window.innerWidth-document.documentElement.clientWidth;if(n&&s>0){var o=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10);oe=document.body.style.paddingRight,document.body.style.paddingRight=o+s+"px"}}se===void 0&&(se=document.body.style.overflow,document.body.style.overflow="hidden")},ya=function(){oe!==void 0&&(document.body.style.paddingRight=oe,oe=void 0),se!==void 0&&(document.body.style.overflow=se,se=void 0)},ba=function(){return window.requestAnimationFrame(function(){if(Y===void 0){Y={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left};var t=window,n=t.scrollY,s=t.scrollX,o=t.innerHeight;document.body.style.position="fixed",document.body.style.top=-n,document.body.style.left=-s,setTimeout(function(){return window.requestAnimationFrame(function(){var a=o-window.innerHeight;a&&n>=o&&(document.body.style.top=-(n+a))})},300)}})},ka=function(){if(Y!==void 0){var t=-parseInt(document.body.style.top,10),n=-parseInt(document.body.style.left,10);document.body.style.position=Y.position,document.body.style.top=Y.top,document.body.style.left=Y.left,window.scrollTo(n,t),Y=void 0}},$a=function(t){return t?t.scrollHeight-t.scrollTop<=t.clientHeight:!1},Pa=function(t,n){var s=t.targetTouches[0].clientY-Fe;return yt(t.target)?!1:n&&n.scrollTop===0&&s>0||$a(n)&&s<0?ge(t):(t.stopPropagation(),!0)},bt=function(t,n){if(!t){console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");return}if(!Z.some(function(o){return o.targetElement===t})){var s={targetElement:t,options:n||{}};Z=[].concat(ma(Z),[s]),pe?ba():ga(n),pe&&(t.ontouchstart=function(o){o.targetTouches.length===1&&(Fe=o.targetTouches[0].clientY)},t.ontouchmove=function(o){o.targetTouches.length===1&&Pa(o,t)},me||(document.addEventListener("touchmove",ge,De?{passive:!1}:void 0),me=!0))}},kt=function(){pe&&(Z.forEach(function(t){t.targetElement.ontouchstart=null,t.targetElement.ontouchmove=null}),me&&(document.removeEventListener("touchmove",ge,De?{passive:!1}:void 0),me=!1),Fe=-1),pe?ka():ya(),Z=[]};const xa=$({__name:"VPNavScreenMenuLink",props:{text:null,link:null},setup(e){const t=Te("close-screen");return(n,s)=>(l(),w(Q,{class:"VPNavScreenMenuLink",href:e.link,onClick:c(t)},{default:v(()=>[D(L(e.text),1)]),_:1},8,["href","onClick"]))}});const wa=g(xa,[["__scopeId","data-v-0162d08e"]]),Va={},Sa={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},La=u("path",{d:"M18.9,10.9h-6v-6c0-0.6-0.4-1-1-1s-1,0.4-1,1v6h-6c-0.6,0-1,0.4-1,1s0.4,1,1,1h6v6c0,0.6,0.4,1,1,1s1-0.4,1-1v-6h6c0.6,0,1-0.4,1-1S19.5,10.9,18.9,10.9z"},null,-1),Ma=[La];function Ia(e,t){return l(),r("svg",Sa,Ma)}const Ca=g(Va,[["render",Ia]]),Ta=$({__name:"VPNavScreenMenuGroupLink",props:{text:null,link:null},setup(e){const t=Te("close-screen");return(n,s)=>(l(),w(Q,{class:"VPNavScreenMenuGroupLink",href:e.link,onClick:c(t)},{default:v(()=>[D(L(e.text),1)]),_:1},8,["href","onClick"]))}});const $t=g(Ta,[["__scopeId","data-v-7fd086c3"]]),Na={class:"VPNavScreenMenuGroupSection"},Aa={key:0,class:"title"},Ba=$({__name:"VPNavScreenMenuGroupSection",props:{text:null,items:null},setup(e){return(t,n)=>(l(),r("div",Na,[e.text?(l(),r("p",Aa,L(e.text),1)):k("",!0),(l(!0),r(T,null,z(e.items,s=>(l(),w($t,{key:s.text,text:s.text,link:s.link},null,8,["text","link"]))),128))]))}});const Oa=g(Ba,[["__scopeId","data-v-eb049aaa"]]),Ea=["aria-controls","aria-expanded"],Ha={class:"button-text"},za=["id"],Da={key:1,class:"group"},Fa=$({__name:"VPNavScreenMenuGroup",props:{text:null,items:null},setup(e){const t=e,n=S(!1),s=V(()=>`NavScreenGroup-${t.text.replace(" ","-").toLowerCase()}`);function o(){n.value=!n.value}return(a,i)=>(l(),r("div",{class:A(["VPNavScreenMenuGroup",{open:n.value}])},[u("button",{class:"button","aria-controls":c(s),"aria-expanded":n.value,onClick:o},[u("span",Ha,L(e.text),1),p(Ca,{class:"button-icon"})],8,Ea),u("div",{id:c(s),class:"items"},[(l(!0),r(T,null,z(e.items,_=>(l(),r(T,{key:_.text},["link"in _?(l(),r("div",{key:_.text,class:"item"},[p($t,{text:_.text,link:_.link},null,8,["text","link"])])):(l(),r("div",Da,[p(Oa,{text:_.text,items:_.items},null,8,["text","items"])]))],64))),128))],8,za)],2))}});const ja=g(Fa,[["__scopeId","data-v-48a8b068"]]),Ga={key:0,class:"VPNavScreenMenu"},qa=$({__name:"VPNavScreenMenu",setup(e){const{theme:t}=M();return(n,s)=>c(t).nav?(l(),r("nav",Ga,[(l(!0),r(T,null,z(c(t).nav,o=>(l(),r(T,{key:o.text},["link"in o?(l(),w(wa,{key:0,text:o.text,link:o.link},null,8,["text","link"])):(l(),w(ja,{key:1,text:o.text||"",items:o.items},null,8,["text","items"]))],64))),128))])):k("",!0)}}),Ra={key:0,class:"VPNavScreenAppearance"},Ua={class:"text"},Wa=$({__name:"VPNavScreenAppearance",setup(e){const{site:t,theme:n}=M();return(s,o)=>c(t).appearance?(l(),r("div",Ra,[u("p",Ua,L(c(n).darkModeSwitchLabel||"Appearance"),1),p(He)])):k("",!0)}});const Ka=g(Wa,[["__scopeId","data-v-8d2d8cf1"]]),Qa={class:"list"},Ya=$({__name:"VPNavScreenTranslations",setup(e){const{localeLinks:t,currentLang:n}=re({correspondingLink:!0}),s=S(!1);function o(){s.value=!s.value}return(a,i)=>c(t).length&&c(n).label?(l(),r("div",{key:0,class:A(["VPNavScreenTranslations",{open:s.value}])},[u("button",{class:"title",onClick:o},[p(gt,{class:"icon lang"}),D(" "+L(c(n).label)+" ",1),p(mt,{class:"icon chevron"})]),u("ul",Qa,[(l(!0),r(T,null,z(c(t),_=>(l(),r("li",{key:_.link,class:"item"},[p(Q,{class:"link",href:_.link},{default:v(()=>[D(L(_.text),1)]),_:2},1032,["href"])]))),128))])],2)):k("",!0)}});const Xa=g(Ya,[["__scopeId","data-v-b72581fd"]]),Ja=$({__name:"VPNavScreenSocialLinks",setup(e){const{theme:t}=M();return(n,s)=>c(t).socialLinks?(l(),w(ze,{key:0,class:"VPNavScreenSocialLinks",links:c(t).socialLinks},null,8,["links"])):k("",!0)}}),Za={class:"container"},ei=$({__name:"VPNavScreen",props:{open:{type:Boolean}},setup(e){const t=S(null);function n(){bt(t.value,{reserveScrollBarGap:!0})}function s(){kt()}return(o,a)=>(l(),w(Ce,{name:"fade",onEnter:n,onAfterLeave:s},{default:v(()=>[e.open?(l(),r("div",{key:0,class:"VPNavScreen",ref_key:"screen",ref:t},[u("div",Za,[h(o.$slots,"nav-screen-content-before",{},void 0,!0),p(qa,{class:"menu"}),p(Xa,{class:"translations"}),p(Ka,{class:"appearance"}),p(Ja,{class:"social-links"}),h(o.$slots,"nav-screen-content-after",{},void 0,!0)])],512)):k("",!0)]),_:3}))}});const ti=g(ei,[["__scopeId","data-v-ea8d6f65"]]),ni={class:"VPNav"},si=$({__name:"VPNav",setup(e){const{isScreenOpen:t,closeScreen:n,toggleScreen:s}=mn();return _e("close-screen",n),(o,a)=>(l(),r("header",ni,[p(pa,{"is-screen-open":c(t),onToggleScreen:c(s)},{"nav-bar-title-before":v(()=>[h(o.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[h(o.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[h(o.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[h(o.$slots,"nav-bar-content-after",{},void 0,!0)]),_:3},8,["is-screen-open","onToggleScreen"]),p(ti,{open:c(t)},{"nav-screen-content-before":v(()=>[h(o.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[h(o.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3},8,["open"])]))}});const oi=g(si,[["__scopeId","data-v-b1949460"]]),ai={},ii={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},li=u("path",{d:"M17,11H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,11,17,11z"},null,-1),ci=u("path",{d:"M21,7H3C2.4,7,2,6.6,2,6s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,7,21,7z"},null,-1),ri=u("path",{d:"M21,15H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h18c0.6,0,1,0.4,1,1S21.6,15,21,15z"},null,-1),ui=u("path",{d:"M17,19H3c-0.6,0-1-0.4-1-1s0.4-1,1-1h14c0.6,0,1,0.4,1,1S17.6,19,17,19z"},null,-1),di=[li,ci,ri,ui];function _i(e,t){return l(),r("svg",ii,di)}const hi=g(ai,[["render",_i]]);function vi(){const{hasSidebar:e}=W(),t=Ve("(min-width: 960px)"),n=Ve("(min-width: 1280px)");return{isAsideEnabled:V(()=>!n.value&&!t.value?!1:e.value?n.value:t.value)}}const fi=71;function je(e){return typeof e.outline=="object"&&!Array.isArray(e.outline)&&e.outline.label||e.outlineTitle||"On this page"}function Ge(e){const t=[...document.querySelectorAll(".VPDoc h2,h3,h4,h5,h6")].filter(n=>n.id&&n.hasChildNodes()).map(n=>{const s=Number(n.tagName[1]);return{title:pi(n),link:"#"+n.id,level:s}});return mi(t,e)}function pi(e){let t="";for(const n of e.childNodes)if(n.nodeType===1){if(n.classList.contains("VPBadge")||n.classList.contains("header-anchor"))continue;t+=n.textContent}else n.nodeType===3&&(t+=n.textContent);return t.trim()}function mi(e,t){if(t===!1)return[];const n=(typeof t=="object"&&!Array.isArray(t)?t.level:t)||2,[s,o]=typeof n=="number"?[n,n]:n==="deep"?[2,6]:n;e=e.filter(i=>i.level>=s&&i.level<=o);const a=[];e:for(let i=0;i=0;d--){const f=e[d];if(f.level<_.level){(f.children||(f.children=[])).push(_);continue e}}a.push(_)}}return a}function gi(e,t){const{isAsideEnabled:n}=vi(),s=ln(a,100);let o=null;X(()=>{requestAnimationFrame(a),window.addEventListener("scroll",s)}),Ht(()=>{i(location.hash)}),Ie(()=>{window.removeEventListener("scroll",s)});function a(){if(!n.value)return;const _=[].slice.call(e.value.querySelectorAll(".outline-link")),d=[].slice.call(document.querySelectorAll(".content .header-anchor")).filter(m=>_.some(x=>x.hash===m.hash&&m.offsetParent!==null)),f=window.scrollY,y=window.innerHeight,b=document.body.offsetHeight,P=Math.abs(f+y-b)<1;if(d.length&&P){i(d[d.length-1].hash);return}for(let m=0;m{const o=K("VPDocOutlineItem",!0);return l(),r("ul",{class:A(e.root?"root":"nested")},[(l(!0),r(T,null,z(e.headers,({children:a,link:i,title:_})=>(l(),r("li",null,[u("a",{class:"outline-link",href:i,onClick:t},L(_),9,bi),a!=null&&a.length?(l(),w(o,{key:0,headers:a},null,8,["headers"])):k("",!0)]))),256))],2)}}});const qe=g(ki,[["__scopeId","data-v-2889e185"]]),$i={},Pi={xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",viewBox:"0 0 24 24"},xi=u("path",{d:"M9,19c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l5.3-5.3L8.3,6.7c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l6,6c0.4,0.4,0.4,1,0,1.4l-6,6C9.5,18.9,9.3,19,9,19z"},null,-1),wi=[xi];function Vi(e,t){return l(),r("svg",Pi,wi)}const Re=g($i,[["render",Vi]]),Si=$({__name:"VPLocalNavOutlineDropdown",setup(e){const{frontmatter:t,theme:n}=M(),s=S(!1),o=S(0),a=S();ie(()=>{s.value=!1});function i(){s.value=!s.value,o.value=window.innerHeight+Math.min(window.scrollY-64,0)}function _(y){y.target.classList.contains("outline-link")&&(a.value&&(a.value.style.transition="none"),ct(()=>{s.value=!1}))}function d(){s.value=!1,window.scrollTo({top:0,left:0,behavior:"smooth"})}const f=Ne([]);return ie(()=>{f.value=Ge(t.value.outline??n.value.outline)}),(y,b)=>(l(),r("div",{class:"VPLocalNavOutlineDropdown",style:zt({"--vp-vh":o.value+"px"})},[c(f).length>0?(l(),r("button",{key:0,onClick:i,class:A({open:s.value})},[D(L(c(je)(c(n)))+" ",1),p(Re,{class:"icon"})],2)):(l(),r("button",{key:1,onClick:d},L(c(n).returnToTopLabel||"Return to top"),1)),p(Ce,{name:"flyout"},{default:v(()=>[s.value?(l(),r("div",{key:0,ref_key:"items",ref:a,class:"items",onClick:_},[u("a",{class:"top-link",href:"#",onClick:d},L(c(n).returnToTopLabel||"Return to top"),1),p(qe,{headers:c(f)},null,8,["headers"])],512)):k("",!0)]),_:1})],4))}});const Li=g(Si,[["__scopeId","data-v-07aca99e"]]),Mi={key:0,class:"VPLocalNav"},Ii=["aria-expanded"],Ci={class:"menu-text"},Ti=$({__name:"VPLocalNav",props:{open:{type:Boolean}},emits:["open-menu"],setup(e){const{theme:t}=M(),{hasSidebar:n}=W();return(s,o)=>c(n)?(l(),r("div",Mi,[u("button",{class:"menu","aria-expanded":e.open,"aria-controls":"VPSidebarNav",onClick:o[0]||(o[0]=a=>s.$emit("open-menu"))},[p(hi,{class:"menu-icon"}),u("span",Ci,L(c(t).sidebarMenuLabel||"Menu"),1)],8,Ii),p(Li)])):k("",!0)}});const Ni=g(Ti,[["__scopeId","data-v-018d8a44"]]),Ai=e=>(R("data-v-77d7a963"),e=e(),U(),e),Bi=["role","tabindex"],Oi=Ai(()=>u("div",{class:"indicator"},null,-1)),Ei=["onKeydown"],Hi={key:1,class:"items"},zi=$({__name:"VPSidebarItem",props:{item:null,depth:null},setup(e){const t=e,{collapsed:n,collapsible:s,isLink:o,isActiveLink:a,hasActiveLink:i,hasChildren:_,toggle:d}=dn(V(()=>t.item)),f=V(()=>_.value?"section":"div"),y=V(()=>o.value?"a":"div"),b=V(()=>_.value?t.depth+2===7?"p":`h${t.depth+2}`:"p"),P=V(()=>o.value?void 0:"button"),m=V(()=>[[`level-${t.depth}`],{collapsible:s.value},{collapsed:n.value},{"is-link":o.value},{"is-active":a.value},{"has-active":i.value}]);function x(B){"key"in B&&B.key!=="Enter"||!t.item.link&&d()}function N(){t.item.link&&d()}return(B,E)=>{const C=K("VPSidebarItem",!0);return l(),w(J(c(f)),{class:A(["VPSidebarItem",c(m)])},{default:v(()=>[e.item.text?(l(),r("div",de({key:0,class:"item",role:c(P)},Ft(e.item.items?{click:x,keydown:x}:{},!0),{tabindex:e.item.items&&0}),[Oi,e.item.link?(l(),w(Q,{key:0,tag:c(y),class:"link",href:e.item.link},{default:v(()=>[(l(),w(J(c(b)),{class:"text",innerHTML:e.item.text},null,8,["innerHTML"]))]),_:1},8,["tag","href"])):(l(),w(J(c(b)),{key:1,class:"text",innerHTML:e.item.text},null,8,["innerHTML"])),e.item.collapsed!=null?(l(),r("div",{key:2,class:"caret",role:"button","aria-label":"toggle section",onClick:N,onKeydown:Dt(N,["enter"]),tabindex:"0"},[p(Re,{class:"caret-icon"})],40,Ei)):k("",!0)],16,Bi)):k("",!0),e.item.items&&e.item.items.length?(l(),r("div",Hi,[e.depth<5?(l(!0),r(T,{key:0},z(e.item.items,I=>(l(),w(C,{key:I.text,item:I,depth:e.depth+1},null,8,["item","depth"]))),128)):k("",!0)])):k("",!0)]),_:1},8,["class"])}}});const Di=g(zi,[["__scopeId","data-v-77d7a963"]]),Pt=e=>(R("data-v-0bf46da5"),e=e(),U(),e),Fi=Pt(()=>u("div",{class:"curtain"},null,-1)),ji={class:"nav",id:"VPSidebarNav","aria-labelledby":"sidebar-aria-label",tabindex:"-1"},Gi=Pt(()=>u("span",{class:"visually-hidden",id:"sidebar-aria-label"}," Sidebar Navigation ",-1)),qi=$({__name:"VPSidebar",props:{open:{type:Boolean}},setup(e){const t=e,{sidebarGroups:n,hasSidebar:s}=W();let o=S(null);function a(){bt(o.value,{reserveScrollBarGap:!0})}function i(){kt()}return jt(async()=>{var _;t.open?(a(),(_=o.value)==null||_.focus()):i()}),(_,d)=>c(s)?(l(),r("aside",{key:0,class:A(["VPSidebar",{open:e.open}]),ref_key:"navEl",ref:o,onClick:d[0]||(d[0]=rt(()=>{},["stop"]))},[Fi,u("nav",ji,[Gi,h(_.$slots,"sidebar-nav-before",{},void 0,!0),(l(!0),r(T,null,z(c(n),f=>(l(),r("div",{key:f.text,class:"group"},[p(Di,{item:f,depth:0},null,8,["item"])]))),128)),h(_.$slots,"sidebar-nav-after",{},void 0,!0)])],2)):k("",!0)}});const Ri=g(qi,[["__scopeId","data-v-0bf46da5"]]),Ui={},Wi={class:"VPPage"};function Ki(e,t){const n=K("Content");return l(),r("div",Wi,[h(e.$slots,"page-top"),p(n),h(e.$slots,"page-bottom")])}const Qi=g(Ui,[["render",Ki]]),Yi=$({__name:"VPButton",props:{tag:null,size:null,theme:null,text:null,href:null},setup(e){const t=e,n=V(()=>[t.size??"medium",t.theme??"brand"]),s=V(()=>t.href&&ut.test(t.href)),o=V(()=>t.tag?t.tag:t.href?"a":"button");return(a,i)=>(l(),w(J(c(o)),{class:A(["VPButton",c(n)]),href:e.href?c(le)(e.href):void 0,target:c(s)?"_blank":void 0,rel:c(s)?"noreferrer":void 0},{default:v(()=>[D(L(e.text),1)]),_:1},8,["class","href","target","rel"]))}});const Xi=g(Yi,[["__scopeId","data-v-a4b757f0"]]),Ji=e=>(R("data-v-3b95c4f3"),e=e(),U(),e),Zi={class:"container"},el={class:"main"},tl={key:0,class:"name"},nl={class:"clip"},sl={key:1,class:"text"},ol={key:2,class:"tagline"},al={key:0,class:"actions"},il={key:0,class:"image"},ll={class:"image-container"},cl=Ji(()=>u("div",{class:"image-bg"},null,-1)),rl=$({__name:"VPHero",props:{name:null,text:null,tagline:null,image:null,actions:null},setup(e){const t=Te("hero-image-slot-exists");return(n,s)=>(l(),r("div",{class:A(["VPHero",{"has-image":e.image||c(t)}])},[u("div",Zi,[u("div",el,[h(n.$slots,"home-hero-info",{},()=>[e.name?(l(),r("h1",tl,[u("span",nl,L(e.name),1)])):k("",!0),e.text?(l(),r("p",sl,L(e.text),1)):k("",!0),e.tagline?(l(),r("p",ol,L(e.tagline),1)):k("",!0)],!0),e.actions?(l(),r("div",al,[(l(!0),r(T,null,z(e.actions,o=>(l(),r("div",{key:o.link,class:"action"},[p(Xi,{tag:"a",size:"medium",theme:o.theme,text:o.text,href:o.link},null,8,["theme","text","href"])]))),128))])):k("",!0)]),e.image||c(t)?(l(),r("div",il,[u("div",ll,[cl,h(n.$slots,"home-hero-image",{},()=>[e.image?(l(),w(Be,{key:0,class:"image-src",image:e.image},null,8,["image"])):k("",!0)],!0)])])):k("",!0)])],2))}});const ul=g(rl,[["__scopeId","data-v-3b95c4f3"]]),dl=$({__name:"VPHomeHero",setup(e){const{frontmatter:t}=M();return(n,s)=>c(t).hero?(l(),w(ul,{key:0,class:"VPHomeHero",name:c(t).hero.name,text:c(t).hero.text,tagline:c(t).hero.tagline,image:c(t).hero.image,actions:c(t).hero.actions},{"home-hero-info":v(()=>[h(n.$slots,"home-hero-info")]),"home-hero-image":v(()=>[h(n.$slots,"home-hero-image")]),_:3},8,["name","text","tagline","image","actions"])):k("",!0)}}),_l={},hl={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},vl=u("path",{d:"M19.9,12.4c0.1-0.2,0.1-0.5,0-0.8c-0.1-0.1-0.1-0.2-0.2-0.3l-7-7c-0.4-0.4-1-0.4-1.4,0s-0.4,1,0,1.4l5.3,5.3H5c-0.6,0-1,0.4-1,1s0.4,1,1,1h11.6l-5.3,5.3c-0.4,0.4-0.4,1,0,1.4c0.2,0.2,0.5,0.3,0.7,0.3s0.5-0.1,0.7-0.3l7-7C19.8,12.6,19.9,12.5,19.9,12.4z"},null,-1),fl=[vl];function pl(e,t){return l(),r("svg",hl,fl)}const ml=g(_l,[["render",pl]]),gl={class:"box"},yl=["innerHTML"],bl=["innerHTML"],kl=["innerHTML"],$l={key:3,class:"link-text"},Pl={class:"link-text-value"},xl=$({__name:"VPFeature",props:{icon:null,title:null,details:null,link:null,linkText:null},setup(e){return(t,n)=>(l(),w(Q,{class:"VPFeature",href:e.link,"no-icon":!0},{default:v(()=>[u("article",gl,[typeof e.icon=="object"?(l(),w(Be,{key:0,image:e.icon,alt:e.icon.alt,height:e.icon.height,width:e.icon.width},null,8,["image","alt","height","width"])):e.icon?(l(),r("div",{key:1,class:"icon",innerHTML:e.icon},null,8,yl)):k("",!0),u("h2",{class:"title",innerHTML:e.title},null,8,bl),e.details?(l(),r("p",{key:2,class:"details",innerHTML:e.details},null,8,kl)):k("",!0),e.linkText?(l(),r("div",$l,[u("p",Pl,[D(L(e.linkText)+" ",1),p(ml,{class:"link-text-icon"})])])):k("",!0)])]),_:1},8,["href"]))}});const wl=g(xl,[["__scopeId","data-v-fdb307a3"]]),Vl={key:0,class:"VPFeatures"},Sl={class:"container"},Ll={class:"items"},Ml=$({__name:"VPFeatures",props:{features:null},setup(e){const t=e,n=V(()=>{const s=t.features.length;if(s){if(s===2)return"grid-2";if(s===3)return"grid-3";if(s%3===0)return"grid-6";if(s%2===0)return"grid-4"}else return});return(s,o)=>e.features?(l(),r("div",Vl,[u("div",Sl,[u("div",Ll,[(l(!0),r(T,null,z(e.features,a=>(l(),r("div",{key:a.title,class:A(["item",[c(n)]])},[p(wl,{icon:a.icon,title:a.title,details:a.details,link:a.link,"link-text":a.linkText},null,8,["icon","title","details","link","link-text"])],2))),128))])])])):k("",!0)}});const Il=g(Ml,[["__scopeId","data-v-5e2470ab"]]),Cl=$({__name:"VPHomeFeatures",setup(e){const{frontmatter:t}=M();return(n,s)=>c(t).features?(l(),w(Il,{key:0,class:"VPHomeFeatures",features:c(t).features},null,8,["features"])):k("",!0)}}),Tl={class:"VPHome"},Nl=$({__name:"VPHome",setup(e){return(t,n)=>{const s=K("Content");return l(),r("div",Tl,[h(t.$slots,"home-hero-before",{},void 0,!0),p(dl,null,{"home-hero-info":v(()=>[h(t.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[h(t.$slots,"home-hero-image",{},void 0,!0)]),_:3}),h(t.$slots,"home-hero-after",{},void 0,!0),h(t.$slots,"home-features-before",{},void 0,!0),p(Cl),h(t.$slots,"home-features-after",{},void 0,!0),p(s)])}}});const Al=g(Nl,[["__scopeId","data-v-8ebac4ee"]]),Bl=e=>(R("data-v-c3ff47cc"),e=e(),U(),e),Ol={class:"content"},El={class:"outline-title"},Hl={"aria-labelledby":"doc-outline-aria-label"},zl=Bl(()=>u("span",{class:"visually-hidden",id:"doc-outline-aria-label"}," Table of Contents for current page ",-1)),Dl=$({__name:"VPDocAsideOutline",setup(e){const{frontmatter:t,theme:n}=M(),s=Ne([]);ie(()=>{s.value=Ge(t.value.outline??n.value.outline)});const o=S(),a=S();return gi(o,a),(i,_)=>(l(),r("div",{class:A(["VPDocAsideOutline",{"has-outline":c(s).length>0}]),ref_key:"container",ref:o},[u("div",Ol,[u("div",{class:"outline-marker",ref_key:"marker",ref:a},null,512),u("div",El,L(c(je)(c(n))),1),u("nav",Hl,[zl,p(qe,{headers:c(s),root:!0},null,8,["headers"])])])],2))}});const Fl=g(Dl,[["__scopeId","data-v-c3ff47cc"]]),jl={class:"VPDocAsideCarbonAds"},Gl=$({__name:"VPDocAsideCarbonAds",props:{carbonAds:null},setup(e){const t=()=>null;return(n,s)=>(l(),r("div",jl,[p(c(t),{"carbon-ads":e.carbonAds},null,8,["carbon-ads"])]))}}),ql=e=>(R("data-v-79cae1a0"),e=e(),U(),e),Rl={class:"VPDocAside"},Ul=ql(()=>u("div",{class:"spacer"},null,-1)),Wl=$({__name:"VPDocAside",setup(e){const{theme:t}=M();return(n,s)=>(l(),r("div",Rl,[h(n.$slots,"aside-top",{},void 0,!0),h(n.$slots,"aside-outline-before",{},void 0,!0),p(Fl),h(n.$slots,"aside-outline-after",{},void 0,!0),Ul,h(n.$slots,"aside-ads-before",{},void 0,!0),c(t).carbonAds?(l(),w(Gl,{key:0,"carbon-ads":c(t).carbonAds},null,8,["carbon-ads"])):k("",!0),h(n.$slots,"aside-ads-after",{},void 0,!0),h(n.$slots,"aside-bottom",{},void 0,!0)]))}});const Kl=g(Wl,[["__scopeId","data-v-79cae1a0"]]);function Ql(){const{theme:e,page:t}=M();return V(()=>{const{text:n="Edit this page",pattern:s=""}=e.value.editLink||{},{relativePath:o}=t.value;let a;return typeof s=="function"?a=s({relativePath:o}):a=s.replace(/:path/g,o),{url:a,text:n}})}function Yl(){const{page:e,theme:t,frontmatter:n}=M();return V(()=>{var i,_,d,f;const s=vt(t.value.sidebar,e.value.relativePath),o=rn(s),a=o.findIndex(y=>te(e.value.relativePath,y.link));return{prev:n.value.prev===!1?void 0:{text:(typeof n.value.prev=="string"?n.value.prev:typeof n.value.prev=="object"?n.value.prev.text:void 0)??((i=o[a-1])==null?void 0:i.text),link:(typeof n.value.prev=="object"?n.value.prev.link:void 0)??((_=o[a-1])==null?void 0:_.link)},next:n.value.next===!1?void 0:{text:(typeof n.value.next=="string"?n.value.next:typeof n.value.next=="object"?n.value.next.text:void 0)??((d=o[a+1])==null?void 0:d.text),link:(typeof n.value.next=="object"?n.value.next.link:void 0)??((f=o[a+1])==null?void 0:f.link)}}})}const Xl={},Jl={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},Zl=u("path",{d:"M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"},null,-1),ec=u("path",{d:"M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"},null,-1),tc=[Zl,ec];function nc(e,t){return l(),r("svg",Jl,tc)}const sc=g(Xl,[["render",nc]]),oc={class:"VPLastUpdated"},ac=["datetime"],ic=$({__name:"VPDocFooterLastUpdated",setup(e){const{theme:t,page:n,lang:s}=M(),o=V(()=>new Date(n.value.lastUpdated)),a=V(()=>o.value.toISOString()),i=S("");return X(()=>{ae(()=>{i.value=o.value.toLocaleString(s.value)})}),(_,d)=>(l(),r("p",oc,[D(L(c(t).lastUpdatedText||"Last updated")+": ",1),u("time",{datetime:c(a)},L(i.value),9,ac)]))}});const lc=g(ic,[["__scopeId","data-v-f00606ba"]]),cc={key:0,class:"VPDocFooter"},rc={key:0,class:"edit-info"},uc={key:0,class:"edit-link"},dc={key:1,class:"last-updated"},_c={key:1,class:"prev-next"},hc={class:"pager"},vc=["href"],fc=["innerHTML"],pc=["innerHTML"],mc=["href"],gc=["innerHTML"],yc=["innerHTML"],bc=$({__name:"VPDocFooter",setup(e){const{theme:t,page:n,frontmatter:s}=M(),o=Ql(),a=Yl(),i=V(()=>t.value.editLink&&s.value.editLink!==!1),_=V(()=>n.value.lastUpdated&&s.value.lastUpdated!==!1),d=V(()=>i.value||_.value||a.value.prev||a.value.next);return(f,y)=>{var b,P,m,x,N,B,E;return c(d)?(l(),r("footer",cc,[h(f.$slots,"doc-footer-before",{},void 0,!0),c(i)||c(_)?(l(),r("div",rc,[c(i)?(l(),r("div",uc,[p(Q,{class:"edit-link-button",href:c(o).url,"no-icon":!0},{default:v(()=>[p(sc,{class:"edit-link-icon","aria-label":"edit icon"}),D(" "+L(c(o).text),1)]),_:1},8,["href"])])):k("",!0),c(_)?(l(),r("div",dc,[p(lc)])):k("",!0)])):k("",!0),(b=c(a).prev)!=null&&b.link||(P=c(a).next)!=null&&P.link?(l(),r("div",_c,[u("div",hc,[(m=c(a).prev)!=null&&m.link?(l(),r("a",{key:0,class:"pager-link prev",href:c(le)(c(a).prev.link)},[u("span",{class:"desc",innerHTML:((x=c(t).docFooter)==null?void 0:x.prev)||"Previous page"},null,8,fc),u("span",{class:"title",innerHTML:c(a).prev.text},null,8,pc)],8,vc)):k("",!0)]),u("div",{class:A(["pager",{"has-prev":(N=c(a).prev)==null?void 0:N.link}])},[(B=c(a).next)!=null&&B.link?(l(),r("a",{key:0,class:"pager-link next",href:c(le)(c(a).next.link)},[u("span",{class:"desc",innerHTML:((E=c(t).docFooter)==null?void 0:E.next)||"Next page"},null,8,gc),u("span",{class:"title",innerHTML:c(a).next.text},null,8,yc)],8,mc)):k("",!0)],2)])):k("",!0)])):k("",!0)}}});const kc=g(bc,[["__scopeId","data-v-31cb5067"]]),$c={key:0,class:"VPDocOutlineDropdown"},Pc={key:0,class:"items"},xc=$({__name:"VPDocOutlineDropdown",setup(e){const{frontmatter:t,theme:n}=M(),s=S(!1);ie(()=>{s.value=!1});const o=Ne([]);return ie(()=>{o.value=Ge(t.value.outline??n.value.outline)}),(a,i)=>c(o).length>0?(l(),r("div",$c,[u("button",{onClick:i[0]||(i[0]=_=>s.value=!s.value),class:A({open:s.value})},[D(L(c(je)(c(n)))+" ",1),p(Re,{class:"icon"})],2),s.value?(l(),r("div",Pc,[p(qe,{headers:c(o)},null,8,["headers"])])):k("",!0)])):k("",!0)}});const wc=g(xc,[["__scopeId","data-v-f751778e"]]),Vc=e=>(R("data-v-5aafa2ac"),e=e(),U(),e),Sc={class:"container"},Lc=Vc(()=>u("div",{class:"aside-curtain"},null,-1)),Mc={class:"aside-container"},Ic={class:"aside-content"},Cc={class:"content"},Tc={class:"content-container"},Nc={class:"main"},Ac=$({__name:"VPDoc",setup(e){const t=ce(),{hasSidebar:n,hasAside:s,leftAside:o}=W(),a=V(()=>t.path.replace(/[./]+/g,"_").replace(/_html$/,""));return(i,_)=>{const d=K("Content");return l(),r("div",{class:A(["VPDoc",{"has-sidebar":c(n),"has-aside":c(s)}])},[h(i.$slots,"doc-top",{},void 0,!0),u("div",Sc,[c(s)?(l(),r("div",{key:0,class:A(["aside",{"left-aside":c(o)}])},[Lc,u("div",Mc,[u("div",Ic,[p(Kl,null,{"aside-top":v(()=>[h(i.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[h(i.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[h(i.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[h(i.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[h(i.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[h(i.$slots,"aside-ads-after",{},void 0,!0)]),_:3})])])],2)):k("",!0),u("div",Cc,[u("div",Tc,[h(i.$slots,"doc-before",{},void 0,!0),p(wc),u("main",Nc,[p(d,{class:A(["vp-doc",c(a)])},null,8,["class"])]),p(kc,null,{"doc-footer-before":v(()=>[h(i.$slots,"doc-footer-before",{},void 0,!0)]),_:3}),h(i.$slots,"doc-after",{},void 0,!0)])])]),h(i.$slots,"doc-bottom",{},void 0,!0)],2)}}});const Bc=g(Ac,[["__scopeId","data-v-5aafa2ac"]]),ke=e=>(R("data-v-42c0c3ae"),e=e(),U(),e),Oc={class:"NotFound"},Ec=ke(()=>u("p",{class:"code"},"404",-1)),Hc=ke(()=>u("h1",{class:"title"},"PAGE NOT FOUND",-1)),zc=ke(()=>u("div",{class:"divider"},null,-1)),Dc=ke(()=>u("blockquote",{class:"quote"}," But if you don't change your direction, and if you keep looking, you may end up where you are heading. ",-1)),Fc={class:"action"},jc=["href"],Gc=$({__name:"NotFound",setup(e){const{site:t}=M(),{localeLinks:n}=re({removeCurrent:!1}),s=S("/");return X(()=>{var a;const o=window.location.pathname.replace(t.value.base,"").replace(/(^.*?\/).*$/,"/$1");n.value.length&&(s.value=((a=n.value.find(({link:i})=>i.startsWith(o)))==null?void 0:a.link)||n.value[0].link)}),(o,a)=>(l(),r("div",Oc,[Ec,Hc,zc,Dc,u("div",Fc,[u("a",{class:"link",href:c(ye)(s.value),"aria-label":"go to home"}," Take me home ",8,jc)])]))}});const qc=g(Gc,[["__scopeId","data-v-42c0c3ae"]]),Rc=$({__name:"VPContent",setup(e){const{page:t,frontmatter:n}=M(),{hasSidebar:s}=W();return(o,a)=>(l(),r("div",{class:A(["VPContent",{"has-sidebar":c(s),"is-home":c(n).layout==="home"}]),id:"VPContent"},[c(t).isNotFound?h(o.$slots,"not-found",{key:0},()=>[p(qc)],!0):c(n).layout==="page"?(l(),w(Qi,{key:1},{"page-top":v(()=>[h(o.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[h(o.$slots,"page-bottom",{},void 0,!0)]),_:3})):c(n).layout==="home"?(l(),w(Al,{key:2},{"home-hero-before":v(()=>[h(o.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[h(o.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[h(o.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[h(o.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[h(o.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[h(o.$slots,"home-features-after",{},void 0,!0)]),_:3})):(l(),w(Bc,{key:3},{"doc-top":v(()=>[h(o.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[h(o.$slots,"doc-bottom",{},void 0,!0)]),"doc-footer-before":v(()=>[h(o.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[h(o.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[h(o.$slots,"doc-after",{},void 0,!0)]),"aside-top":v(()=>[h(o.$slots,"aside-top",{},void 0,!0)]),"aside-outline-before":v(()=>[h(o.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[h(o.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[h(o.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[h(o.$slots,"aside-ads-after",{},void 0,!0)]),"aside-bottom":v(()=>[h(o.$slots,"aside-bottom",{},void 0,!0)]),_:3}))],2))}});const Uc=g(Rc,[["__scopeId","data-v-7f38fbbe"]]),Wc={class:"container"},Kc=["innerHTML"],Qc=["innerHTML"],Yc=$({__name:"VPFooter",setup(e){const{theme:t}=M(),{hasSidebar:n}=W();return(s,o)=>c(t).footer?(l(),r("footer",{key:0,class:A(["VPFooter",{"has-sidebar":c(n)}])},[u("div",Wc,[c(t).footer.message?(l(),r("p",{key:0,class:"message",innerHTML:c(t).footer.message},null,8,Kc)):k("",!0),c(t).footer.copyright?(l(),r("p",{key:1,class:"copyright",innerHTML:c(t).footer.copyright},null,8,Qc)):k("",!0)])],2)):k("",!0)}});const Xc=g(Yc,[["__scopeId","data-v-2425ede7"]]),Jc={key:0,class:"Layout"},Zc=$({__name:"Layout",setup(e){const{isOpen:t,open:n,close:s}=W(),o=ce();ee(()=>o.path,s),un(t,s),_e("close-sidebar",s),_e("is-sidebar-open",t);const{frontmatter:a}=M(),i=Gt(),_=V(()=>!!i["home-hero-image"]);return _e("hero-image-slot-exists",_),(d,f)=>{const y=K("Content");return c(a).layout!==!1?(l(),r("div",Jc,[h(d.$slots,"layout-top",{},void 0,!0),p(hn),p(pn,{class:"backdrop",show:c(t),onClick:c(s)},null,8,["show","onClick"]),p(oi,null,{"nav-bar-title-before":v(()=>[h(d.$slots,"nav-bar-title-before",{},void 0,!0)]),"nav-bar-title-after":v(()=>[h(d.$slots,"nav-bar-title-after",{},void 0,!0)]),"nav-bar-content-before":v(()=>[h(d.$slots,"nav-bar-content-before",{},void 0,!0)]),"nav-bar-content-after":v(()=>[h(d.$slots,"nav-bar-content-after",{},void 0,!0)]),"nav-screen-content-before":v(()=>[h(d.$slots,"nav-screen-content-before",{},void 0,!0)]),"nav-screen-content-after":v(()=>[h(d.$slots,"nav-screen-content-after",{},void 0,!0)]),_:3}),p(Ni,{open:c(t),onOpenMenu:c(n)},null,8,["open","onOpenMenu"]),p(Ri,{open:c(t)},{"sidebar-nav-before":v(()=>[h(d.$slots,"sidebar-nav-before",{},void 0,!0)]),"sidebar-nav-after":v(()=>[h(d.$slots,"sidebar-nav-after",{},void 0,!0)]),_:3},8,["open"]),p(Uc,null,{"page-top":v(()=>[h(d.$slots,"page-top",{},void 0,!0)]),"page-bottom":v(()=>[h(d.$slots,"page-bottom",{},void 0,!0)]),"not-found":v(()=>[h(d.$slots,"not-found",{},void 0,!0)]),"home-hero-before":v(()=>[h(d.$slots,"home-hero-before",{},void 0,!0)]),"home-hero-info":v(()=>[h(d.$slots,"home-hero-info",{},void 0,!0)]),"home-hero-image":v(()=>[h(d.$slots,"home-hero-image",{},void 0,!0)]),"home-hero-after":v(()=>[h(d.$slots,"home-hero-after",{},void 0,!0)]),"home-features-before":v(()=>[h(d.$slots,"home-features-before",{},void 0,!0)]),"home-features-after":v(()=>[h(d.$slots,"home-features-after",{},void 0,!0)]),"doc-footer-before":v(()=>[h(d.$slots,"doc-footer-before",{},void 0,!0)]),"doc-before":v(()=>[h(d.$slots,"doc-before",{},void 0,!0)]),"doc-after":v(()=>[h(d.$slots,"doc-after",{},void 0,!0)]),"doc-top":v(()=>[h(d.$slots,"doc-top",{},void 0,!0)]),"doc-bottom":v(()=>[h(d.$slots,"doc-bottom",{},void 0,!0)]),"aside-top":v(()=>[h(d.$slots,"aside-top",{},void 0,!0)]),"aside-bottom":v(()=>[h(d.$slots,"aside-bottom",{},void 0,!0)]),"aside-outline-before":v(()=>[h(d.$slots,"aside-outline-before",{},void 0,!0)]),"aside-outline-after":v(()=>[h(d.$slots,"aside-outline-after",{},void 0,!0)]),"aside-ads-before":v(()=>[h(d.$slots,"aside-ads-before",{},void 0,!0)]),"aside-ads-after":v(()=>[h(d.$slots,"aside-ads-after",{},void 0,!0)]),_:3}),p(Xc),h(d.$slots,"layout-bottom",{},void 0,!0)])):(l(),w(y,{key:1}))}}});const er=g(Zc,[["__scopeId","data-v-bd8710d4"]]);const nr={Layout:er,enhanceApp:({app:e})=>{e.component("Badge",Rt)}};export{nr as t}; diff --git a/docs/document/assets/en_advanced_built-in.md.c2fe6960.js b/docs/document/assets/en_advanced_built-in.md.654dca4f.js similarity index 81% rename from docs/document/assets/en_advanced_built-in.md.c2fe6960.js rename to docs/document/assets/en_advanced_built-in.md.654dca4f.js index 87bfc1a8e..a4bf6cbaf 100644 --- a/docs/document/assets/en_advanced_built-in.md.c2fe6960.js +++ b/docs/document/assets/en_advanced_built-in.md.654dca4f.js @@ -1,24 +1,24 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.parse('{"title":"高级属性","description":"","frontmatter":{},"headers":[{"level":2,"title":"option","slug":"option","link":"#option","children":[]},{"level":2,"title":"whitelist","slug":"whitelist","link":"#whitelist","children":[]},{"level":2,"title":"template","slug":"template","link":"#template","children":[]},{"level":2,"title":"events","slug":"events","link":"#events","children":[]},{"level":2,"title":"storage","slug":"storage","link":"#storage","children":[]},{"level":2,"title":"icons","slug":"icons","link":"#icons","children":[]},{"level":2,"title":"i18n","slug":"i18n","link":"#i18n","children":[]},{"level":2,"title":"notice","slug":"notice","link":"#notice","children":[]},{"level":2,"title":"layers","slug":"layers","link":"#layers","children":[]},{"level":2,"title":"controls","slug":"controls","link":"#controls","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"subtitle","slug":"subtitle","link":"#subtitle","children":[]},{"level":2,"title":"loading","slug":"loading","link":"#loading","children":[]},{"level":2,"title":"hotkey","slug":"hotkey","link":"#hotkey","children":[]},{"level":2,"title":"mask","slug":"mask","link":"#mask","children":[]},{"level":2,"title":"setting","slug":"setting","link":"#setting","children":[]},{"level":2,"title":"plugins","slug":"plugins","link":"#plugins","children":[]}],"relativePath":"en/advanced/built-in.md","lastUpdated":1673692792000}'),o={name:"en/advanced/built-in.md"},e=s('

高级属性

这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用

option

播放器的选项

',4),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
+import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const X=JSON.parse('{"title":"高级属性","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/built-in.md","lastUpdated":1673692792000}'),o={name:"en/advanced/built-in.md"},e=s('

高级属性 ​

这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用

option ​

播放器的选项

',4),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 console.info(art.option);
-

提示

假如直接修改这个 option 对象,播放器不会马上做出响应

whitelist

管理移动设备的白名单功能,只有一个属性 state 返回是否启用播放器功能

`,4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
+

提示

假如直接修改这个 option 对象,播放器不会马上做出响应

whitelist ​

管理移动设备的白名单功能,只有一个属性 state 返回是否启用播放器功能

`,4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     whitelist: [(ua) => /iPhone/gi.test(ua)],
 });
 
 console.info(art.whitelist.state);
-

提示

在上面这个例子中,当使用 iPhone 访问播放器时,art.whitelist.state 会返回 false,即使用原生的播放器,而不是 Artplayer 播放器

template

管理播放器所有的 DOM 元素

`,4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
+

提示

在上面这个例子中,当使用 iPhone 访问播放器时,art.whitelist.state 会返回 false,即使用原生的播放器,而不是 Artplayer 播放器

template ​

管理播放器所有的 DOM 元素

`,4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 console.info(art.template);
 console.info(art.template.$video);
-

提示

为了方便区别 DOM 元素和普通对象,播放器里的所有 DOM 元素都是以 $ 开头命名的

这是所有 DOM 元素的定义:artplayer/types/template.d.ts

events

管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener, 当使用以下方法来处理事件,播放器销毁时也会自动销毁该事件

  • proxy 方法用于代理 DOM 事件
  • hover 方法用于代理自定义的 hover 事件
  • loadImg 方法用于监听图片的 load 加载事件
`,5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var container = document.querySelector('.artplayer-app');
+

提示

为了方便区别 DOM 元素和普通对象,播放器里的所有 DOM 元素都是以 $ 开头命名的

这是所有 DOM 元素的定义:artplayer/types/template.d.ts

events ​

管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener, 当使用以下方法来处理事件,播放器销毁时也会自动销毁该事件

  • proxy 方法用于代理 DOM 事件
  • hover 方法用于代理自定义的 hover 事件
  • loadImg 方法用于监听图片的 load 加载事件
`,5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var container = document.querySelector('.artplayer-app');
 
 var art = new Artplayer({
     container: container,
@@ -38,7 +38,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 art.events.loadImg('/assets/sample/poster.jpg').then(img => {
     console.info('loadImg', img);
 });
-

提示

假如你需要一些 DOM 事件只存在于播放器的生命周期上时,强烈建议使用这些函数,以避免造成内存泄漏

storage

管理播放器的本地存储

  • name 属性用于设置缓存的 key
  • set 方法用于设置缓存
  • get 方法用于获取缓存
  • del 方法用于删除缓存
  • clear 方法用于清空缓存
`,5),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer({
+

提示

假如你需要一些 DOM 事件只存在于播放器的生命周期上时,强烈建议使用这些函数,以避免造成内存泄漏

storage ​

管理播放器的本地存储

  • name 属性用于设置缓存的 key
  • set 方法用于设置缓存
  • get 方法用于获取缓存
  • del 方法用于删除缓存
  • clear 方法用于清空缓存
`,5),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -48,20 +48,20 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 console.info(test);
 art.storage.del('test');
 art.storage.clear();
-

提示

默认所有播放器实例都是共享同一个 localStorage 的,而且默认的 key 是 artplayer_settings

如果你想不同的播放器使用不同的 localStorage,你可以修改 art.storage.name 即可

`,2),b=n("div",{className:"run-code"},"▶ Run Code",-1),u=s(`
js
var art = new Artplayer({
+

提示

默认所有播放器实例都是共享同一个 localStorage 的,而且默认的 key 是 artplayer_settings

如果你想不同的播放器使用不同的 localStorage,你可以修改 art.storage.name 即可

`,2),b=n("div",{className:"run-code"},"▶ Run Code",-1),u=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 art.storage.name = 'your-storage-key';
 art.storage.set('test', { foo: 'bar' });
-

icons

管理播放器所有的 svg 图标

`,3),m=n("div",{className:"run-code"},"▶ Run Code",-1),_=s(`
js
var art = new Artplayer({
+

icons ​

管理播放器所有的 svg 图标

`,3),m=n("div",{className:"run-code"},"▶ Run Code",-1),_=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 console.info(art.icons.loading);
-

这是所有图标的定义:

artplayer/types/icons.d.ts

i18n

管理播放器的 i18n

  • get 方法用于获取 i18n 的值
  • update 方法用于更新 i18n 对象
`,5),h=n("div",{className:"run-code"},"▶ Run Code",-1),g=s(`
js
var art = new Artplayer({
+

这是所有图标的定义:

artplayer/types/icons.d.ts

i18n ​

管理播放器的 i18n

  • get 方法用于获取 i18n 的值
  • update 方法用于更新 i18n 对象
`,5),h=n("div",{className:"run-code"},"▶ Run Code",-1),v=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -73,7 +73,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
         Play: 'Your Play'
     }
 });
-

WARNING

使用 art.i18n.update 只能更新实例化之后的 i18n,假如想在实例化之前更新 i18n,请使用基础选项的 i18n 来更新

notice

管理播放器的提示语,只有一个 show 属性用于显示提示语

`,4),v=n("div",{className:"run-code"},"▶ Run Code",-1),E=s(`
js
var art = new Artplayer({
+

WARNING

使用 art.i18n.update 只能更新实例化之后的 i18n,假如想在实例化之前更新 i18n,请使用基础选项的 i18n 来更新

notice ​

管理播放器的提示语,只有一个 show 属性用于显示提示语

`,4),g=n("div",{className:"run-code"},"▶ Run Code",-1),E=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -81,7 +81,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 art.on('ready', () => {
     art.notice.show = 'Video Ready To Play';
 })
-

WARNING

如果想马上隐藏 notice 的显示:art.notice.show = '';

layers

管理播放器的层

  • add 方法用于动态添加层
  • show 属性用于设置是否显示全部层
  • toggle 属性用于切换是否显示全部层
`,5),T=n("div",{className:"run-code"},"▶ Run Code",-1),k=s(`
js
var art = new Artplayer({
+

WARNING

如果想马上隐藏 notice 的显示:art.notice.show = '';

layers ​

管理播放器的层

  • add 方法用于动态添加层
  • show 属性用于设置是否显示全部层
  • toggle 属性用于切换是否显示全部层
`,5),T=n("div",{className:"run-code"},"▶ Run Code",-1),k=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -95,7 +95,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.layers.show = false;
 	}, 1000);
 });
-

组件配置 请参考以下地址:

/start/component.html

controls

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
`,5),w=n("div",{className:"run-code"},"▶ Run Code",-1),f=s(`
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

controls ​

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
`,5),w=n("div",{className:"run-code"},"▶ Run Code",-1),f=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -110,7 +110,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.controls.show = false;
 	}, 1000);
 });
-

组件配置 请参考以下地址:

/start/component.html

contextmenu

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
`,5),S=n("div",{className:"run-code"},"▶ Run Code",-1),x=s(`
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

contextmenu ​

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
`,5),P=n("div",{className:"run-code"},"▶ Run Code",-1),S=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -125,7 +125,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.contextmenu.show = false;
 	}, 1000);
 });
-

组件配置 请参考以下地址:

/start/component.html

subtitle

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
`,5),P=n("div",{className:"run-code"},"▶ Run Code",-1),I=s(`
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

subtitle ​

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
`,5),I=n("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -136,7 +136,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
         color: 'red',
     });
 });
-

loading

管理播放器的加载层

  • show 属性用于设置是否显示加载层
  • toggle 属性用于切换是否显示加载层
`,4),N=n("div",{className:"run-code"},"▶ Run Code",-1),R=s(`
js
var art = new Artplayer({
+

loading ​

管理播放器的加载层

  • show 属性用于设置是否显示加载层
  • toggle 属性用于切换是否显示加载层
`,4),R=n("div",{className:"run-code"},"▶ Run Code",-1),V=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -147,7 +147,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.loading.show = false;
 	}, 1000);
 });
-

hotkey

管理播放器的快捷键功能

  • add 方法用于添加快捷键
  • remove 方法用于删除快捷键
`,4),V=n("div",{className:"run-code"},"▶ Run Code",-1),j=s(`
js
var art = new Artplayer({
+

hotkey ​

管理播放器的快捷键功能

  • add 方法用于添加快捷键
  • remove 方法用于删除快捷键
`,4),j=n("div",{className:"run-code"},"▶ Run Code",-1),q=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -162,7 +162,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.hotkey.remove(32, hotkeyEvent);
 	}, 5000);
 });
-

提示

只在播放器获得焦点后(如点击了播放器后),这些快捷键才会生效

mask

管理播放器的遮罩层

  • show 属性用于设置是否显示遮罩层
  • toggle 属性用于切换是否显示遮罩层
`,5),O=n("div",{className:"run-code"},"▶ Run Code",-1),M=s(`
js
var art = new Artplayer({
+

提示

只在播放器获得焦点后(如点击了播放器后),这些快捷键才会生效

mask ​

管理播放器的遮罩层

  • show 属性用于设置是否显示遮罩层
  • toggle 属性用于切换是否显示遮罩层
`,5),x=n("div",{className:"run-code"},"▶ Run Code",-1),O=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -173,7 +173,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.mask.show = true;
 	}, 1000);
 });
-

setting

管理播放器的设置面板

  • add 方法用于动态添加设置项
  • show 属性用于设置是否显示全部设置项
  • toggle 属性用于切换是否显示全部设置项
  • update 方法动态更新设置项
`,4),$=n("div",{className:"run-code"},"▶ Run Code",-1),z=s(`
js
var art = new Artplayer({
+

setting ​

管理播放器的设置面板

  • add 方法用于动态添加设置项
  • show 属性用于设置是否显示全部设置项
  • toggle 属性用于切换是否显示全部设置项
  • update 方法动态更新设置项
`,4),M=n("div",{className:"run-code"},"▶ Run Code",-1),$=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -189,7 +189,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 		art.setting.show = false;
 	}, 1000);
 });
-

设置面板 请参考以下地址

/start/setting.html

plugins

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

`,4),B=n("div",{className:"run-code"},"▶ Run Code",-1),G=s(`
js
var art = new Artplayer({
+

设置面板 请参考以下地址

/start/setting.html

plugins ​

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

`,4),z=n("div",{className:"run-code"},"▶ Run Code",-1),B=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -208,4 +208,4 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.p
 art.on('ready', () => {
     art.plugins.add(myPlugin);
 });
-
`,1),L=[e,c,r,t,D,F,y,i,A,C,d,b,u,m,_,h,g,v,E,T,k,w,f,S,x,P,I,N,R,V,j,O,M,$,z,B,G];function W(q,J,U,Y,H,K){return p(),l("div",null,L)}const Z=a(o,[["render",W]]);export{X as __pageData,Z as default}; +
`,1),G=[e,c,r,t,D,F,y,i,A,C,d,b,u,m,_,h,v,g,E,T,k,w,f,P,S,I,N,R,V,j,q,x,O,M,$,z,B];function L(U,W,J,Y,H,K){return p(),l("div",null,G)}const Z=a(o,[["render",L]]);export{X as __pageData,Z as default}; diff --git a/docs/document/assets/en_advanced_built-in.md.654dca4f.lean.js b/docs/document/assets/en_advanced_built-in.md.654dca4f.lean.js new file mode 100644 index 000000000..4959785f7 --- /dev/null +++ b/docs/document/assets/en_advanced_built-in.md.654dca4f.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const X=JSON.parse('{"title":"高级属性","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/built-in.md","lastUpdated":1673692792000}'),o={name:"en/advanced/built-in.md"},e=s("",4),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",5),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s("",2),b=n("div",{className:"run-code"},"▶ Run Code",-1),u=s("",3),m=n("div",{className:"run-code"},"▶ Run Code",-1),_=s("",5),h=n("div",{className:"run-code"},"▶ Run Code",-1),v=s("",4),g=n("div",{className:"run-code"},"▶ Run Code",-1),E=s("",5),T=n("div",{className:"run-code"},"▶ Run Code",-1),k=s("",5),w=n("div",{className:"run-code"},"▶ Run Code",-1),f=s("",5),P=n("div",{className:"run-code"},"▶ Run Code",-1),S=s("",5),I=n("div",{className:"run-code"},"▶ Run Code",-1),N=s("",4),R=n("div",{className:"run-code"},"▶ Run Code",-1),V=s("",4),j=n("div",{className:"run-code"},"▶ Run Code",-1),q=s("",5),x=n("div",{className:"run-code"},"▶ Run Code",-1),O=s("",4),M=n("div",{className:"run-code"},"▶ Run Code",-1),$=s("",4),z=n("div",{className:"run-code"},"▶ Run Code",-1),B=s("",1),G=[e,c,r,t,D,F,y,i,A,C,d,b,u,m,_,h,v,g,E,T,k,w,f,P,S,I,N,R,V,j,q,x,O,M,$,z,B];function L(U,W,J,Y,H,K){return p(),l("div",null,G)}const Z=a(o,[["render",L]]);export{X as __pageData,Z as default}; diff --git a/docs/document/assets/en_advanced_built-in.md.c2fe6960.lean.js b/docs/document/assets/en_advanced_built-in.md.c2fe6960.lean.js deleted file mode 100644 index f51bab129..000000000 --- a/docs/document/assets/en_advanced_built-in.md.c2fe6960.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const X=JSON.parse('{"title":"高级属性","description":"","frontmatter":{},"headers":[{"level":2,"title":"option","slug":"option","link":"#option","children":[]},{"level":2,"title":"whitelist","slug":"whitelist","link":"#whitelist","children":[]},{"level":2,"title":"template","slug":"template","link":"#template","children":[]},{"level":2,"title":"events","slug":"events","link":"#events","children":[]},{"level":2,"title":"storage","slug":"storage","link":"#storage","children":[]},{"level":2,"title":"icons","slug":"icons","link":"#icons","children":[]},{"level":2,"title":"i18n","slug":"i18n","link":"#i18n","children":[]},{"level":2,"title":"notice","slug":"notice","link":"#notice","children":[]},{"level":2,"title":"layers","slug":"layers","link":"#layers","children":[]},{"level":2,"title":"controls","slug":"controls","link":"#controls","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"subtitle","slug":"subtitle","link":"#subtitle","children":[]},{"level":2,"title":"loading","slug":"loading","link":"#loading","children":[]},{"level":2,"title":"hotkey","slug":"hotkey","link":"#hotkey","children":[]},{"level":2,"title":"mask","slug":"mask","link":"#mask","children":[]},{"level":2,"title":"setting","slug":"setting","link":"#setting","children":[]},{"level":2,"title":"plugins","slug":"plugins","link":"#plugins","children":[]}],"relativePath":"en/advanced/built-in.md","lastUpdated":1673692792000}'),o={name:"en/advanced/built-in.md"},e=s("",4),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",5),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s("",2),b=n("div",{className:"run-code"},"▶ Run Code",-1),u=s("",3),m=n("div",{className:"run-code"},"▶ Run Code",-1),_=s("",5),h=n("div",{className:"run-code"},"▶ Run Code",-1),g=s("",4),v=n("div",{className:"run-code"},"▶ Run Code",-1),E=s("",5),T=n("div",{className:"run-code"},"▶ Run Code",-1),k=s("",5),w=n("div",{className:"run-code"},"▶ Run Code",-1),f=s("",5),S=n("div",{className:"run-code"},"▶ Run Code",-1),x=s("",5),P=n("div",{className:"run-code"},"▶ Run Code",-1),I=s("",4),N=n("div",{className:"run-code"},"▶ Run Code",-1),R=s("",4),V=n("div",{className:"run-code"},"▶ Run Code",-1),j=s("",5),O=n("div",{className:"run-code"},"▶ Run Code",-1),M=s("",4),$=n("div",{className:"run-code"},"▶ Run Code",-1),z=s("",4),B=n("div",{className:"run-code"},"▶ Run Code",-1),G=s("",1),L=[e,c,r,t,D,F,y,i,A,C,d,b,u,m,_,h,g,v,E,T,k,w,f,S,x,P,I,N,R,V,j,O,M,$,z,B,G];function W(q,J,U,Y,H,K){return p(),l("div",null,L)}const Z=a(o,[["render",W]]);export{X as __pageData,Z as default}; diff --git a/docs/document/assets/en_advanced_class.md.5834ab32.js b/docs/document/assets/en_advanced_class.md.5834ab32.js deleted file mode 100644 index 422f7849a..000000000 --- a/docs/document/assets/en_advanced_class.md.5834ab32.js +++ /dev/null @@ -1,20 +0,0 @@ -import{_ as s,c as n,o as l,a as e,b as a}from"./app.77a2ba76.js";const U=JSON.parse('{"title":"静态属性","description":"","frontmatter":{},"headers":[{"level":2,"title":"instances","slug":"instances","link":"#instances","children":[]},{"level":2,"title":"version","slug":"version","link":"#version","children":[]},{"level":2,"title":"env","slug":"env","link":"#env","children":[]},{"level":2,"title":"build","slug":"build","link":"#build","children":[]},{"level":2,"title":"config","slug":"config","link":"#config","children":[]},{"level":2,"title":"utils","slug":"utils","link":"#utils","children":[]},{"level":2,"title":"scheme","slug":"scheme","link":"#scheme","children":[]},{"level":2,"title":"Emitter","slug":"emitter","link":"#emitter","children":[]},{"level":2,"title":"validator","slug":"validator","link":"#validator","children":[]},{"level":2,"title":"kindOf","slug":"kindof","link":"#kindof","children":[]},{"level":2,"title":"html","slug":"html","link":"#html","children":[]},{"level":2,"title":"option","slug":"option","link":"#option","children":[]},{"level":2,"title":"DEBUG","slug":"debug","link":"#debug","children":[]},{"level":2,"title":"CONTEXTMENU","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"NOTICE_TIME","slug":"notice-time","link":"#notice-time","children":[]},{"level":2,"title":"SETTING_WIDTH","slug":"setting-width","link":"#setting-width","children":[]},{"level":2,"title":"SETTING_ITEM_WIDTH","slug":"setting-item-width","link":"#setting-item-width","children":[]},{"level":2,"title":"SETTING_ITEM_HEIGHT","slug":"setting-item-height","link":"#setting-item-height","children":[]},{"level":2,"title":"INDICATOR_SIZE","slug":"indicator-size","link":"#indicator-size","children":[]},{"level":2,"title":"INDICATOR_SIZE_ICON","slug":"indicator-size-icon","link":"#indicator-size-icon","children":[]},{"level":2,"title":"INDICATOR_SIZE_MOBILE","slug":"indicator-size-mobile","link":"#indicator-size-mobile","children":[]},{"level":2,"title":"INDICATOR_SIZE_MOBILE_ICON","slug":"indicator-size-mobile-icon","link":"#indicator-size-mobile-icon","children":[]},{"level":2,"title":"VOLUME_PANEL_WIDTH","slug":"volume-panel-width","link":"#volume-panel-width","children":[]},{"level":2,"title":"VOLUME_HANDLE_WIDTH","slug":"volume-handle-width","link":"#volume-handle-width","children":[]},{"level":2,"title":"RESIZE_TIME","slug":"resize-time","link":"#resize-time","children":[]},{"level":2,"title":"SCROLL_TIME","slug":"scroll-time","link":"#scroll-time","children":[]},{"level":2,"title":"SCROLL_GAP","slug":"scroll-gap","link":"#scroll-gap","children":[]},{"level":2,"title":"AUTO_PLAYBACK_MAX","slug":"auto-playback-max","link":"#auto-playback-max","children":[]},{"level":2,"title":"AUTO_PLAYBACK_MIN","slug":"auto-playback-min","link":"#auto-playback-min","children":[]},{"level":2,"title":"AUTO_PLAYBACK_TIMEOUT","slug":"auto-playback-timeout","link":"#auto-playback-timeout","children":[]},{"level":2,"title":"RECONNECT_TIME_MAX","slug":"reconnect-time-max","link":"#reconnect-time-max","children":[]},{"level":2,"title":"RECONNECT_SLEEP_TIME","slug":"reconnect-sleep-time","link":"#reconnect-sleep-time","children":[]},{"level":2,"title":"CONTROL_HIDE_TIME","slug":"control-hide-time","link":"#control-hide-time","children":[]},{"level":2,"title":"DB_CLICE_TIME","slug":"db-clice-time","link":"#db-clice-time","children":[]},{"level":2,"title":"MOBILE_AUTO_PLAYBACKRATE","slug":"mobile-auto-playbackrate","link":"#mobile-auto-playbackrate","children":[]},{"level":2,"title":"MOBILE_AUTO_PLAYBACKRATE_TIME","slug":"mobile-auto-playbackrate-time","link":"#mobile-auto-playbackrate-time","children":[]},{"level":2,"title":"MOBILE_AUTO_ORIENTATION_TIME","slug":"mobile-auto-orientation-time","link":"#mobile-auto-orientation-time","children":[]},{"level":2,"title":"INFO_LOOP_TIME","slug":"info-loop-time","link":"#info-loop-time","children":[]},{"level":2,"title":"FAST_FORWARD_VALUE","slug":"fast-forward-value","link":"#fast-forward-value","children":[]},{"level":2,"title":"FAST_FORWARD_TIME","slug":"fast-forward-time","link":"#fast-forward-time","children":[]},{"level":2,"title":"TOUCH_MOVE_RATIO","slug":"touch-move-ratio","link":"#touch-move-ratio","children":[]},{"level":2,"title":"VOLUME_STEP","slug":"volume-step","link":"#volume-step","children":[]},{"level":2,"title":"SEEK_STEP","slug":"seek-step","link":"#seek-step","children":[]},{"level":2,"title":"PROGRESS_HEIGHT","slug":"progress-height","link":"#progress-height","children":[]},{"level":2,"title":"PLAYBACK_RATE","slug":"playback-rate","link":"#playback-rate","children":[]},{"level":2,"title":"ASPECT_RATIO","slug":"aspect-ratio","link":"#aspect-ratio","children":[]},{"level":2,"title":"FLIP","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"FULLSCREEN_WEB_IN_BODY","slug":"fullscreen-web-in-body","link":"#fullscreen-web-in-body","children":[]}],"relativePath":"en/advanced/class.md","lastUpdated":1674271984000}'),i={name:"en/advanced/class.md"},o=e('

静态属性

这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用

提示

有些属性是全大写的,说明这些属性是不稳定的,可能会在将来被更改

instances

返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性

',5),t=a("div",{className:"run-code"},"▶ Run Code",-1),r=e(`
js
console.info([...Artplayer.instances]);
-
-var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-});
-
-console.info([...Artplayer.instances]);
-

version

返回播放器的版本信息

`,3),c=a("div",{className:"run-code"},"▶ Run Code",-1),d=e(`
js
console.info(Artplayer.version);
-

env

返回播放器的环境变量

`,3),p=a("div",{className:"run-code"},"▶ Run Code",-1),h=e(`
js
console.info(Artplayer.env);
-

build

返回播放器的打包时间

`,3),_=a("div",{className:"run-code"},"▶ Run Code",-1),u=e(`
js
console.info(Artplayer.build);
-

config

返回视频的默认配置

`,3),A=a("div",{className:"run-code"},"▶ Run Code",-1),m=e(`
js
console.info(Artplayer.config);
-

utils

返回播放器的工具函数集合

`,3),b=a("div",{className:"run-code"},"▶ Run Code",-1),C=e(`
js
console.info(Artplayer.utils);
-

全部工具函数请参考以下地址:

artplayer/types/utils.d.ts

scheme

返回播放器选项的校验方案

`,4),D=a("div",{className:"run-code"},"▶ Run Code",-1),y=e(`
js
console.info(Artplayer.scheme);
-

Emitter

返回事件分发器的构造函数

`,3),T=a("div",{className:"run-code"},"▶ Run Code",-1),v=e(`
js
console.info(Artplayer.Emitter);
-

validator

返回选项的校验函数

`,3),F=a("div",{className:"run-code"},"▶ Run Code",-1),E=e(`
js
console.info(Artplayer.validator);
-

kindOf

返回类型检测的函数工具

`,3),g=a("div",{className:"run-code"},"▶ Run Code",-1),I=e(`
js
console.info(Artplayer.kindOf);
-

html

返回播放器所需的 html 字符串

`,3),f=a("div",{className:"run-code"},"▶ Run Code",-1),k=e(`
js
console.info(Artplayer.html);
-

option

返回播放器的默认选项

`,3),O=a("div",{className:"run-code"},"▶ Run Code",-1),S=e(`
js
console.info(Artplayer.option);
-

DEBUG

CONTEXTMENU

NOTICE_TIME

SETTING_WIDTH

SETTING_ITEM_WIDTH

SETTING_ITEM_HEIGHT

INDICATOR_SIZE

INDICATOR_SIZE_ICON

INDICATOR_SIZE_MOBILE

INDICATOR_SIZE_MOBILE_ICON

VOLUME_PANEL_WIDTH

VOLUME_HANDLE_WIDTH

RESIZE_TIME

SCROLL_TIME

SCROLL_GAP

AUTO_PLAYBACK_MAX

AUTO_PLAYBACK_MIN

AUTO_PLAYBACK_TIMEOUT

RECONNECT_TIME_MAX

RECONNECT_SLEEP_TIME

CONTROL_HIDE_TIME

DB_CLICE_TIME

MOBILE_AUTO_PLAYBACKRATE

MOBILE_AUTO_PLAYBACKRATE_TIME

MOBILE_AUTO_ORIENTATION_TIME

INFO_LOOP_TIME

FAST_FORWARD_VALUE

FAST_FORWARD_TIME

TOUCH_MOVE_RATIO

VOLUME_STEP

SEEK_STEP

PROGRESS_HEIGHT

PLAYBACK_RATE

ASPECT_RATIO

FLIP

FULLSCREEN_WEB_IN_BODY

`,37),N=[o,t,r,c,d,p,h,_,u,A,m,b,C,D,y,T,v,F,E,g,I,f,k,O,S];function x(R,P,L,M,w,V){return l(),n("div",null,N)}const j=s(i,[["render",x]]);export{U as __pageData,j as default}; diff --git a/docs/document/assets/en_advanced_class.md.5834ab32.lean.js b/docs/document/assets/en_advanced_class.md.5834ab32.lean.js deleted file mode 100644 index 31abb3e23..000000000 --- a/docs/document/assets/en_advanced_class.md.5834ab32.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as n,o as l,a as e,b as a}from"./app.77a2ba76.js";const U=JSON.parse('{"title":"静态属性","description":"","frontmatter":{},"headers":[{"level":2,"title":"instances","slug":"instances","link":"#instances","children":[]},{"level":2,"title":"version","slug":"version","link":"#version","children":[]},{"level":2,"title":"env","slug":"env","link":"#env","children":[]},{"level":2,"title":"build","slug":"build","link":"#build","children":[]},{"level":2,"title":"config","slug":"config","link":"#config","children":[]},{"level":2,"title":"utils","slug":"utils","link":"#utils","children":[]},{"level":2,"title":"scheme","slug":"scheme","link":"#scheme","children":[]},{"level":2,"title":"Emitter","slug":"emitter","link":"#emitter","children":[]},{"level":2,"title":"validator","slug":"validator","link":"#validator","children":[]},{"level":2,"title":"kindOf","slug":"kindof","link":"#kindof","children":[]},{"level":2,"title":"html","slug":"html","link":"#html","children":[]},{"level":2,"title":"option","slug":"option","link":"#option","children":[]},{"level":2,"title":"DEBUG","slug":"debug","link":"#debug","children":[]},{"level":2,"title":"CONTEXTMENU","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"NOTICE_TIME","slug":"notice-time","link":"#notice-time","children":[]},{"level":2,"title":"SETTING_WIDTH","slug":"setting-width","link":"#setting-width","children":[]},{"level":2,"title":"SETTING_ITEM_WIDTH","slug":"setting-item-width","link":"#setting-item-width","children":[]},{"level":2,"title":"SETTING_ITEM_HEIGHT","slug":"setting-item-height","link":"#setting-item-height","children":[]},{"level":2,"title":"INDICATOR_SIZE","slug":"indicator-size","link":"#indicator-size","children":[]},{"level":2,"title":"INDICATOR_SIZE_ICON","slug":"indicator-size-icon","link":"#indicator-size-icon","children":[]},{"level":2,"title":"INDICATOR_SIZE_MOBILE","slug":"indicator-size-mobile","link":"#indicator-size-mobile","children":[]},{"level":2,"title":"INDICATOR_SIZE_MOBILE_ICON","slug":"indicator-size-mobile-icon","link":"#indicator-size-mobile-icon","children":[]},{"level":2,"title":"VOLUME_PANEL_WIDTH","slug":"volume-panel-width","link":"#volume-panel-width","children":[]},{"level":2,"title":"VOLUME_HANDLE_WIDTH","slug":"volume-handle-width","link":"#volume-handle-width","children":[]},{"level":2,"title":"RESIZE_TIME","slug":"resize-time","link":"#resize-time","children":[]},{"level":2,"title":"SCROLL_TIME","slug":"scroll-time","link":"#scroll-time","children":[]},{"level":2,"title":"SCROLL_GAP","slug":"scroll-gap","link":"#scroll-gap","children":[]},{"level":2,"title":"AUTO_PLAYBACK_MAX","slug":"auto-playback-max","link":"#auto-playback-max","children":[]},{"level":2,"title":"AUTO_PLAYBACK_MIN","slug":"auto-playback-min","link":"#auto-playback-min","children":[]},{"level":2,"title":"AUTO_PLAYBACK_TIMEOUT","slug":"auto-playback-timeout","link":"#auto-playback-timeout","children":[]},{"level":2,"title":"RECONNECT_TIME_MAX","slug":"reconnect-time-max","link":"#reconnect-time-max","children":[]},{"level":2,"title":"RECONNECT_SLEEP_TIME","slug":"reconnect-sleep-time","link":"#reconnect-sleep-time","children":[]},{"level":2,"title":"CONTROL_HIDE_TIME","slug":"control-hide-time","link":"#control-hide-time","children":[]},{"level":2,"title":"DB_CLICE_TIME","slug":"db-clice-time","link":"#db-clice-time","children":[]},{"level":2,"title":"MOBILE_AUTO_PLAYBACKRATE","slug":"mobile-auto-playbackrate","link":"#mobile-auto-playbackrate","children":[]},{"level":2,"title":"MOBILE_AUTO_PLAYBACKRATE_TIME","slug":"mobile-auto-playbackrate-time","link":"#mobile-auto-playbackrate-time","children":[]},{"level":2,"title":"MOBILE_AUTO_ORIENTATION_TIME","slug":"mobile-auto-orientation-time","link":"#mobile-auto-orientation-time","children":[]},{"level":2,"title":"INFO_LOOP_TIME","slug":"info-loop-time","link":"#info-loop-time","children":[]},{"level":2,"title":"FAST_FORWARD_VALUE","slug":"fast-forward-value","link":"#fast-forward-value","children":[]},{"level":2,"title":"FAST_FORWARD_TIME","slug":"fast-forward-time","link":"#fast-forward-time","children":[]},{"level":2,"title":"TOUCH_MOVE_RATIO","slug":"touch-move-ratio","link":"#touch-move-ratio","children":[]},{"level":2,"title":"VOLUME_STEP","slug":"volume-step","link":"#volume-step","children":[]},{"level":2,"title":"SEEK_STEP","slug":"seek-step","link":"#seek-step","children":[]},{"level":2,"title":"PROGRESS_HEIGHT","slug":"progress-height","link":"#progress-height","children":[]},{"level":2,"title":"PLAYBACK_RATE","slug":"playback-rate","link":"#playback-rate","children":[]},{"level":2,"title":"ASPECT_RATIO","slug":"aspect-ratio","link":"#aspect-ratio","children":[]},{"level":2,"title":"FLIP","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"FULLSCREEN_WEB_IN_BODY","slug":"fullscreen-web-in-body","link":"#fullscreen-web-in-body","children":[]}],"relativePath":"en/advanced/class.md","lastUpdated":1674271984000}'),i={name:"en/advanced/class.md"},o=e("",5),t=a("div",{className:"run-code"},"▶ Run Code",-1),r=e("",3),c=a("div",{className:"run-code"},"▶ Run Code",-1),d=e("",3),p=a("div",{className:"run-code"},"▶ Run Code",-1),h=e("",3),_=a("div",{className:"run-code"},"▶ Run Code",-1),u=e("",3),A=a("div",{className:"run-code"},"▶ Run Code",-1),m=e("",3),b=a("div",{className:"run-code"},"▶ Run Code",-1),C=e("",4),D=a("div",{className:"run-code"},"▶ Run Code",-1),y=e("",3),T=a("div",{className:"run-code"},"▶ Run Code",-1),v=e("",3),F=a("div",{className:"run-code"},"▶ Run Code",-1),E=e("",3),g=a("div",{className:"run-code"},"▶ Run Code",-1),I=e("",3),f=a("div",{className:"run-code"},"▶ Run Code",-1),k=e("",3),O=a("div",{className:"run-code"},"▶ Run Code",-1),S=e("",37),N=[o,t,r,c,d,p,h,_,u,A,m,b,C,D,y,T,v,F,E,g,I,f,k,O,S];function x(R,P,L,M,w,V){return l(),n("div",null,N)}const j=s(i,[["render",x]]);export{U as __pageData,j as default}; diff --git a/docs/document/assets/en_advanced_class.md.f62aaf97.js b/docs/document/assets/en_advanced_class.md.f62aaf97.js new file mode 100644 index 000000000..7898b3c1c --- /dev/null +++ b/docs/document/assets/en_advanced_class.md.f62aaf97.js @@ -0,0 +1,9 @@ +import{_ as s,c as n,o,U as a,x as e}from"./chunks/framework.75837252.js";const U=JSON.parse('{"title":"静态属性","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/class.md","lastUpdated":1674271984000}'),l={name:"en/advanced/class.md"},t=a('

静态属性 ​

这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用

提示

有些属性是全大写的,说明这些属性是不稳定的,可能会在将来被更改

instances ​

返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性

',5),r=e("div",{className:"run-code"},"▶ Run Code",-1),c=a(`
js
console.info([...Artplayer.instances]);
+
+var art = new Artplayer({
+    container: '.artplayer-app',
+    url: '/assets/sample/video.mp4',
+});
+
+console.info([...Artplayer.instances]);
+

version ​

返回播放器的版本信息

`,3),i=e("div",{className:"run-code"},"▶ Run Code",-1),p=a('
js
console.info(Artplayer.version);\n

env ​

返回播放器的环境变量

',3),d=e("div",{className:"run-code"},"▶ Run Code",-1),h=a('
js
console.info(Artplayer.env);\n

build ​

返回播放器的打包时间

',3),_=e("div",{className:"run-code"},"▶ Run Code",-1),u=a('
js
console.info(Artplayer.build);\n

config ​

返回视频的默认配置

',3),A=e("div",{className:"run-code"},"▶ Run Code",-1),b=a('
js
console.info(Artplayer.config);\n

utils ​

返回播放器的工具函数集合

',3),m=e("div",{className:"run-code"},"▶ Run Code",-1),C=a('
js
console.info(Artplayer.utils);\n

全部工具函数请参考以下地址:

artplayer/types/utils.d.ts

scheme ​

返回播放器选项的校验方案

',4),D=e("div",{className:"run-code"},"▶ Run Code",-1),T=a('
js
console.info(Artplayer.scheme);\n

Emitter ​

返回事件分发器的构造函数

',3),y=e("div",{className:"run-code"},"▶ Run Code",-1),F=a('
js
console.info(Artplayer.Emitter);\n

validator ​

返回选项的校验函数

',3),E=e("div",{className:"run-code"},"▶ Run Code",-1),I=a('
js
console.info(Artplayer.validator);\n

kindOf ​

返回类型检测的函数工具

',3),P=e("div",{className:"run-code"},"▶ Run Code",-1),q=a('
js
console.info(Artplayer.kindOf);\n

html ​

返回播放器所需的 html 字符串

',3),f=e("div",{className:"run-code"},"▶ Run Code",-1),v=a('
js
console.info(Artplayer.html);\n

option ​

返回播放器的默认选项

',3),k=e("div",{className:"run-code"},"▶ Run Code",-1),O=a('
js
console.info(Artplayer.option);\n

DEBUG ​

CONTEXTMENU ​

NOTICE_TIME ​

SETTING_WIDTH ​

SETTING_ITEM_WIDTH ​

SETTING_ITEM_HEIGHT ​

INDICATOR_SIZE ​

INDICATOR_SIZE_ICON ​

INDICATOR_SIZE_MOBILE ​

INDICATOR_SIZE_MOBILE_ICON ​

VOLUME_PANEL_WIDTH ​

VOLUME_HANDLE_WIDTH ​

RESIZE_TIME ​

SCROLL_TIME ​

SCROLL_GAP ​

AUTO_PLAYBACK_MAX ​

AUTO_PLAYBACK_MIN ​

AUTO_PLAYBACK_TIMEOUT ​

RECONNECT_TIME_MAX ​

RECONNECT_SLEEP_TIME ​

CONTROL_HIDE_TIME ​

DB_CLICE_TIME ​

MOBILE_AUTO_PLAYBACKRATE ​

MOBILE_AUTO_PLAYBACKRATE_TIME ​

MOBILE_AUTO_ORIENTATION_TIME ​

INFO_LOOP_TIME ​

FAST_FORWARD_VALUE ​

FAST_FORWARD_TIME ​

TOUCH_MOVE_RATIO ​

VOLUME_STEP ​

SEEK_STEP ​

PROGRESS_HEIGHT ​

PLAYBACK_RATE ​

ASPECT_RATIO ​

FLIP ​

FULLSCREEN_WEB_IN_BODY ​

',37),S=[t,r,c,i,p,d,h,_,u,A,b,m,C,D,T,y,F,E,I,P,q,f,v,k,O];function N(g,R,x,L,M,V){return o(),n("div",null,S)}const w=s(l,[["render",N]]);export{U as __pageData,w as default}; diff --git a/docs/document/assets/en_advanced_class.md.f62aaf97.lean.js b/docs/document/assets/en_advanced_class.md.f62aaf97.lean.js new file mode 100644 index 000000000..115ff5dbe --- /dev/null +++ b/docs/document/assets/en_advanced_class.md.f62aaf97.lean.js @@ -0,0 +1 @@ +import{_ as s,c as n,o,U as a,x as e}from"./chunks/framework.75837252.js";const U=JSON.parse('{"title":"静态属性","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/class.md","lastUpdated":1674271984000}'),l={name:"en/advanced/class.md"},t=a("",5),r=e("div",{className:"run-code"},"▶ Run Code",-1),c=a("",3),i=e("div",{className:"run-code"},"▶ Run Code",-1),p=a("",3),d=e("div",{className:"run-code"},"▶ Run Code",-1),h=a("",3),_=e("div",{className:"run-code"},"▶ Run Code",-1),u=a("",3),A=e("div",{className:"run-code"},"▶ Run Code",-1),b=a("",3),m=e("div",{className:"run-code"},"▶ Run Code",-1),C=a("",4),D=e("div",{className:"run-code"},"▶ Run Code",-1),T=a("",3),y=e("div",{className:"run-code"},"▶ Run Code",-1),F=a("",3),E=e("div",{className:"run-code"},"▶ Run Code",-1),I=a("",3),P=e("div",{className:"run-code"},"▶ Run Code",-1),q=a("",3),f=e("div",{className:"run-code"},"▶ Run Code",-1),v=a("",3),k=e("div",{className:"run-code"},"▶ Run Code",-1),O=a("",37),S=[t,r,c,i,p,d,h,_,u,A,b,m,C,D,T,y,F,E,I,P,q,f,v,k,O];function N(g,R,x,L,M,V){return o(),n("div",null,S)}const w=s(l,[["render",N]]);export{U as __pageData,w as default}; diff --git a/docs/document/assets/advanced_event.md.70b41e05.js b/docs/document/assets/en_advanced_event.md.5825ac7d.js similarity index 76% rename from docs/document/assets/advanced_event.md.70b41e05.js rename to docs/document/assets/en_advanced_event.md.5825ac7d.js index e6983fd18..4063bf5d7 100644 --- a/docs/document/assets/advanced_event.md.70b41e05.js +++ b/docs/document/assets/en_advanced_event.md.5825ac7d.js @@ -1,4 +1,4 @@ -import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const Ms=JSON.parse('{"title":"实例事件","description":"","frontmatter":{},"headers":[{"level":2,"title":"ready","slug":"ready","link":"#ready","children":[]},{"level":2,"title":"restart","slug":"restart","link":"#restart","children":[]},{"level":2,"title":"pause","slug":"pause","link":"#pause","children":[]},{"level":2,"title":"play","slug":"play","link":"#play","children":[]},{"level":2,"title":"hotkey","slug":"hotkey","link":"#hotkey","children":[]},{"level":2,"title":"destroy","slug":"destroy","link":"#destroy","children":[]},{"level":2,"title":"url","slug":"url","link":"#url","children":[]},{"level":2,"title":"focus","slug":"focus","link":"#focus","children":[]},{"level":2,"title":"blur","slug":"blur","link":"#blur","children":[]},{"level":2,"title":"dblclick","slug":"dblclick","link":"#dblclick","children":[]},{"level":2,"title":"click","slug":"click","link":"#click","children":[]},{"level":2,"title":"error","slug":"error","link":"#error","children":[]},{"level":2,"title":"hover","slug":"hover","link":"#hover","children":[]},{"level":2,"title":"mousemove","slug":"mousemove","link":"#mousemove","children":[]},{"level":2,"title":"resize","slug":"resize","link":"#resize","children":[]},{"level":2,"title":"view","slug":"view","link":"#view","children":[]},{"level":2,"title":"aspectRatio","slug":"aspectratio","link":"#aspectratio","children":[]},{"level":2,"title":"autoHeight","slug":"autoheight","link":"#autoheight","children":[]},{"level":2,"title":"autoSize","slug":"autosize","link":"#autosize","children":[]},{"level":2,"title":"flip","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"fullscreen","slug":"fullscreen","link":"#fullscreen","children":[]},{"level":2,"title":"fullscreenWeb","slug":"fullscreenweb","link":"#fullscreenweb","children":[]},{"level":2,"title":"mini","slug":"mini","link":"#mini","children":[]},{"level":2,"title":"pip","slug":"pip","link":"#pip","children":[]},{"level":2,"title":"screenshot","slug":"screenshot","link":"#screenshot","children":[]},{"level":2,"title":"seek","slug":"seek","link":"#seek","children":[]},{"level":2,"title":"subtitleOffset","slug":"subtitleoffset","link":"#subtitleoffset","children":[]},{"level":2,"title":"subtitleUpdate","slug":"subtitleupdate","link":"#subtitleupdate","children":[]},{"level":2,"title":"subtitleLoad","slug":"subtitleload","link":"#subtitleload","children":[]},{"level":2,"title":"subtitleSwitch","slug":"subtitleswitch","link":"#subtitleswitch","children":[]},{"level":2,"title":"info","slug":"info","link":"#info","children":[]},{"level":2,"title":"layer","slug":"layer","link":"#layer","children":[]},{"level":2,"title":"loading","slug":"loading","link":"#loading","children":[]},{"level":2,"title":"mask","slug":"mask","link":"#mask","children":[]},{"level":2,"title":"subtitle","slug":"subtitle","link":"#subtitle","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"control","slug":"control","link":"#control","children":[]},{"level":2,"title":"setting","slug":"setting","link":"#setting","children":[]},{"level":2,"title":"video:canplay","slug":"video-canplay","link":"#video-canplay","children":[]},{"level":2,"title":"video:canplaythrough","slug":"video-canplaythrough","link":"#video-canplaythrough","children":[]},{"level":2,"title":"video:complete","slug":"video-complete","link":"#video-complete","children":[]},{"level":2,"title":"video:durationchange","slug":"video-durationchange","link":"#video-durationchange","children":[]},{"level":2,"title":"video:emptied","slug":"video-emptied","link":"#video-emptied","children":[]},{"level":2,"title":"video:ended","slug":"video-ended","link":"#video-ended","children":[]},{"level":2,"title":"video:error","slug":"video-error","link":"#video-error","children":[]},{"level":2,"title":"video:loadeddata","slug":"video-loadeddata","link":"#video-loadeddata","children":[]},{"level":2,"title":"video:loadedmetadata","slug":"video-loadedmetadata","link":"#video-loadedmetadata","children":[]},{"level":2,"title":"video:pause","slug":"video-pause","link":"#video-pause","children":[]},{"level":2,"title":"video:play","slug":"video-play","link":"#video-play","children":[]},{"level":2,"title":"video:playing","slug":"video-playing","link":"#video-playing","children":[]},{"level":2,"title":"video:progress","slug":"video-progress","link":"#video-progress","children":[]},{"level":2,"title":"video:ratechange","slug":"video-ratechange","link":"#video-ratechange","children":[]},{"level":2,"title":"video:seeked","slug":"video-seeked","link":"#video-seeked","children":[]},{"level":2,"title":"video:seeking","slug":"video-seeking","link":"#video-seeking","children":[]},{"level":2,"title":"video:stalled","slug":"video-stalled","link":"#video-stalled","children":[]},{"level":2,"title":"video:suspend","slug":"video-suspend","link":"#video-suspend","children":[]},{"level":2,"title":"video:timeupdate","slug":"video-timeupdate","link":"#video-timeupdate","children":[]},{"level":2,"title":"video:volumechange","slug":"video-volumechange","link":"#video-volumechange","children":[]},{"level":2,"title":"video:waiting","slug":"video-waiting","link":"#video-waiting","children":[]}],"relativePath":"advanced/event.md","lastUpdated":1677245395000}'),o={name:"advanced/event.md"},r=s("h1",{id:"实例事件",tabindex:"-1"},[a("实例事件 "),s("a",{class:"header-anchor",href:"#实例事件","aria-hidden":"true"},"#")],-1),c=s("p",null,[a("播放器的事件分为两种,一种视频的 "),s("code",null,"原生事件"),a(" (前缀 "),s("code",null,"video:"),a("),另外一种是 "),s("code",null,"自定义事件")],-1),t=s("p",null,"监听事件:",-1),D=s("div",{className:"run-code"},"▶ Run Code",-1),y=n(`
js
var art = new Artplayer({
+import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const Ms=JSON.parse('{"title":"实例事件","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/event.md","lastUpdated":1677245395000}'),e={name:"en/advanced/event.md"},r=s("h1",{id:"实例事件",tabindex:"-1"},[n("实例事件 "),s("a",{class:"header-anchor",href:"#实例事件","aria-label":'Permalink to "实例事件"'},"​")],-1),c=s("p",null,[n("播放器的事件分为两种,一种视频的 "),s("code",null,"原生事件"),n(" (前缀 "),s("code",null,"video:"),n("),另外一种是 "),s("code",null,"自定义事件")],-1),t=s("p",null,"监听事件:",-1),D=s("div",{className:"run-code"},"▶ Run Code",-1),F=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -6,7 +6,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('video:canplay', () => {
     console.info('video:canplay');
 });
-

只监听一次事件:

`,2),F=s("div",{className:"run-code"},"▶ Run Code",-1),i=n(`
js
var art = new Artplayer({
+

只监听一次事件:

`,2),y=s("div",{className:"run-code"},"▶ Run Code",-1),i=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -14,13 +14,13 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.once('video:canplay', () => {
     console.info('video:canplay');
 });
-

手动触发事件:

`,2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=n(`
js
var art = new Artplayer({
+

手动触发事件:

`,2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 art.emit('focus');
-

移除事件:

`,2),d=s("div",{className:"run-code"},"▶ Run Code",-1),b=n(`
js
var art = new Artplayer({
+

移除事件:

`,2),d=s("div",{className:"run-code"},"▶ Run Code",-1),b=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -31,7 +31,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 }
 
 art.on('ready', onReady);
-

全部事件请参考以下地址:

artplayer/types/events.d.ts

ready

当播放器首次可以播放器时触发

`,4),u=s("div",{className:"run-code"},"▶ Run Code",-1),h=n(`
js
var art = new Artplayer({
+

全部事件请参考以下地址:

artplayer/types/events.d.ts

ready ​

当播放器首次可以播放器时触发

`,4),u=s("div",{className:"run-code"},"▶ Run Code",-1),h=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -39,7 +39,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('ready', () => {
     console.info('ready');
 });
-

restart

当播放器切换地址后并可以播放时触发

`,3),m=s("div",{className:"run-code"},"▶ Run Code",-1),_=n(`
js
var art = new Artplayer({
+

restart ​

当播放器切换地址后并可以播放时触发

`,3),m=s("div",{className:"run-code"},"▶ Run Code",-1),_=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -51,7 +51,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('restart', () => {
     console.info('restart');
 });
-

pause

当播放器暂停时触发

`,3),g=s("div",{className:"run-code"},"▶ Run Code",-1),v=n(`
js
var art = new Artplayer({
+

pause ​

当播放器暂停时触发

`,3),g=s("div",{className:"run-code"},"▶ Run Code",-1),v=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -59,7 +59,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('pause', () => {
     console.info('pause');
 });
-

play

当播放器播放时触发

`,3),E=s("div",{className:"run-code"},"▶ Run Code",-1),T=n(`
js
var art = new Artplayer({
+

play ​

当播放器播放时触发

`,3),E=s("div",{className:"run-code"},"▶ Run Code",-1),T=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -67,7 +67,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('play', () => {
     console.info('play');
 });
-

hotkey

当播放器热键被按下时触发

`,3),f=s("div",{className:"run-code"},"▶ Run Code",-1),k=n(`
js
var art = new Artplayer({
+

hotkey ​

当播放器热键被按下时触发

`,3),f=s("div",{className:"run-code"},"▶ Run Code",-1),k=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -75,7 +75,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('hotkey', (event) => {
     console.info('hotkey', event);
 });
-

destroy

当播放器销毁时触发

`,3),S=s("div",{className:"run-code"},"▶ Run Code",-1),x=n(`
js
var art = new Artplayer({
+

destroy ​

当播放器销毁时触发

`,3),P=s("div",{className:"run-code"},"▶ Run Code",-1),S=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -87,7 +87,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('destroy', () => {
     console.info('destroy');
 });
-

url

当视频地址变化时触发

`,3),w=s("div",{className:"run-code"},"▶ Run Code",-1),R=n(`
js
var art = new Artplayer({
+

url ​

当视频地址变化时触发

`,3),q=s("div",{className:"run-code"},"▶ Run Code",-1),w=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -99,7 +99,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('url', (url) => {
     console.info('url', url);
 });
-

focus

当播放器获得焦点时触发

`,3),N=s("div",{className:"run-code"},"▶ Run Code",-1),V=n(`
js
var art = new Artplayer({
+

focus ​

当播放器获得焦点时触发

`,3),R=s("div",{className:"run-code"},"▶ Run Code",-1),N=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -107,7 +107,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('focus', () => {
     console.info('focus');
 });
-

blur

当播放器失去焦点时触发

`,3),P=s("div",{className:"run-code"},"▶ Run Code",-1),j=n(`
js
var art = new Artplayer({
+

blur ​

当播放器失去焦点时触发

`,3),V=s("div",{className:"run-code"},"▶ Run Code",-1),j=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -115,7 +115,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('blur', () => {
     console.info('blur');
 });
-

dblclick

当播放器被双击时触发

`,3),I=s("div",{className:"run-code"},"▶ Run Code",-1),z=n(`
js
var art = new Artplayer({
+

dblclick ​

当播放器被双击时触发

`,3),I=s("div",{className:"run-code"},"▶ Run Code",-1),x=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -123,7 +123,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('dblclick', () => {
     console.info('dblclick');
 });
-

click

当播放器被单击时触发

`,3),O=s("div",{className:"run-code"},"▶ Run Code",-1),U=n(`
js
var art = new Artplayer({
+

click ​

当播放器被单击时触发

`,3),z=s("div",{className:"run-code"},"▶ Run Code",-1),U=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -131,7 +131,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('click', () => {
     console.info('click');
 });
-

error

当播放器加载视频发生错误时触发

`,3),H=s("div",{className:"run-code"},"▶ Run Code",-1),W=n(`
js
var art = new Artplayer({
+

error ​

当播放器加载视频发生错误时触发

`,3),O=s("div",{className:"run-code"},"▶ Run Code",-1),H=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/404.mp4',
 });
@@ -139,7 +139,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('error', (error, reconnectTime) => {
     console.info(error, reconnectTime);
 });
-

hover

当播放器被鼠标移出或者移入时触发

`,3),L=s("div",{className:"run-code"},"▶ Run Code",-1),$=n(`
js
var art = new Artplayer({
+

hover ​

当播放器被鼠标移出或者移入时触发

`,3),W=s("div",{className:"run-code"},"▶ Run Code",-1),L=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -147,7 +147,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('hover', (state) => {
     console.info('hover', state);
 });
-

mousemove

当播放器被鼠标经过时触发

`,3),B=s("div",{className:"run-code"},"▶ Run Code",-1),J=n(`
js
var art = new Artplayer({
+

mousemove ​

当播放器被鼠标经过时触发

`,3),$=s("div",{className:"run-code"},"▶ Run Code",-1),B=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -155,7 +155,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('mousemove', (event) => {
     console.info('mousemove', event);
 });
-

resize

当播放器尺寸变化时触发

`,3),q=s("div",{className:"run-code"},"▶ Run Code",-1),G=n(`
js
var art = new Artplayer({
+

resize ​

当播放器尺寸变化时触发

`,3),J=s("div",{className:"run-code"},"▶ Run Code",-1),G=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -163,7 +163,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('resize', () => {
     console.info('resize');
 });
-

view

当播放器出现在视口时触发

`,3),K=s("div",{className:"run-code"},"▶ Run Code",-1),M=n(`
js
var art = new Artplayer({
+

view ​

当播放器出现在视口时触发

`,3),K=s("div",{className:"run-code"},"▶ Run Code",-1),M=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -171,7 +171,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('view', (state) => {
     console.info('view', state);
 });
-

aspectRatio

当播放器长宽比变化时触发

`,3),Q=s("div",{className:"run-code"},"▶ Run Code",-1),X=n(`
js
var art = new Artplayer({
+

aspectRatio ​

当播放器长宽比变化时触发

`,3),Q=s("div",{className:"run-code"},"▶ Run Code",-1),X=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     aspectRatio: true,
@@ -181,7 +181,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('aspectRatio', (aspectRatio) => {
     console.info('aspectRatio', aspectRatio);
 });
-

autoHeight

当播放器自动设置高度时触发

`,3),Y=s("div",{className:"run-code"},"▶ Run Code",-1),Z=n(`
js
var art = new Artplayer({
+

autoHeight ​

当播放器自动设置高度时触发

`,3),Y=s("div",{className:"run-code"},"▶ Run Code",-1),Z=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -193,7 +193,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('autoHeight', (height) => {
     console.info('autoHeight', height);
 });
-

autoSize

当播放器自动设置尺寸时触发

`,3),ss=s("div",{className:"run-code"},"▶ Run Code",-1),ns=n(`
js
var art = new Artplayer({
+

autoSize ​

当播放器自动设置尺寸时触发

`,3),ss=s("div",{className:"run-code"},"▶ Run Code",-1),as=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
@@ -202,7 +202,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('autoSize', () => {
     console.info('autoSize');
 });
-

flip

当播放器发生翻转时触发

`,3),as=s("div",{className:"run-code"},"▶ Run Code",-1),ls=n(`
js
var art = new Artplayer({
+

flip ​

当播放器发生翻转时触发

`,3),ns=s("div",{className:"run-code"},"▶ Run Code",-1),ls=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     flip: true,
@@ -212,7 +212,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('flip', (flip) => {
     console.info('flip', flip);
 });
-

fullscreen

当播放器发生窗口全屏时触发

`,3),ps=s("div",{className:"run-code"},"▶ Run Code",-1),es=n(`
js
var art = new Artplayer({
+

fullscreen ​

当播放器发生窗口全屏时触发

`,3),ps=s("div",{className:"run-code"},"▶ Run Code",-1),os=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -221,7 +221,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('fullscreen', (state) => {
     console.info('fullscreen', state);
 });
-

fullscreenWeb

当播放器发生网页全屏时触发

`,3),os=s("div",{className:"run-code"},"▶ Run Code",-1),rs=n(`
js
var art = new Artplayer({
+

fullscreenWeb ​

当播放器发生网页全屏时触发

`,3),es=s("div",{className:"run-code"},"▶ Run Code",-1),rs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreenWeb: true,
@@ -230,7 +230,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('fullscreenWeb', (state) => {
     console.info('fullscreenWeb', state);
 });
-

mini

当播放器进入迷你模式时触发

`,3),cs=s("div",{className:"run-code"},"▶ Run Code",-1),ts=n(`
js
var art = new Artplayer({
+

mini ​

当播放器进入迷你模式时触发

`,3),cs=s("div",{className:"run-code"},"▶ Run Code",-1),ts=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -242,7 +242,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('mini', (state) => {
     console.info('mini', state);
 });
-

pip

当播放器进入画中画时触发

`,3),Ds=s("div",{className:"run-code"},"▶ Run Code",-1),ys=n(`
js
var art = new Artplayer({
+

pip ​

当播放器进入画中画时触发

`,3),Ds=s("div",{className:"run-code"},"▶ Run Code",-1),Fs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     pip: true,
@@ -251,7 +251,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('pip', (state) => {
     console.info('pip', state);
 });
-

screenshot

当播放器被截图时触发

`,3),Fs=s("div",{className:"run-code"},"▶ Run Code",-1),is=n(`
js
var art = new Artplayer({
+

screenshot ​

当播放器被截图时触发

`,3),ys=s("div",{className:"run-code"},"▶ Run Code",-1),is=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     screenshot: true,
@@ -260,7 +260,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('screenshot', (dataUri) => {
     console.info('screenshot', dataUri);
 });
-

seek

当播放器发生时间跳转时触发

`,3),As=s("div",{className:"run-code"},"▶ Run Code",-1),Cs=n(`
js
var art = new Artplayer({
+

seek ​

当播放器发生时间跳转时触发

`,3),As=s("div",{className:"run-code"},"▶ Run Code",-1),Cs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -268,7 +268,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('seek', (currentTime) => {
     console.info('seek', currentTime);
 });
-

subtitleOffset

当播放器发生字幕偏移时触发

`,3),ds=s("div",{className:"run-code"},"▶ Run Code",-1),bs=n(`
js
var art = new Artplayer({
+

subtitleOffset ​

当播放器发生字幕偏移时触发

`,3),ds=s("div",{className:"run-code"},"▶ Run Code",-1),bs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitleOffset: true,
@@ -281,7 +281,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('subtitleOffset', (offset) => {
     console.info('subtitleOffset', offset);
 });
-

subtitleUpdate

当字幕更新时触发

`,3),us=s("div",{className:"run-code"},"▶ Run Code",-1),hs=n(`
js
var art = new Artplayer({
+

subtitleUpdate ​

当字幕更新时触发

`,3),us=s("div",{className:"run-code"},"▶ Run Code",-1),hs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -292,7 +292,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('subtitleUpdate', (text) => {
     console.info('subtitleUpdate', text);
 });
-

subtitleLoad

当字幕加载时触发

`,3),ms=s("div",{className:"run-code"},"▶ Run Code",-1),_s=n(`
js
var art = new Artplayer({
+

subtitleLoad ​

当字幕加载时触发

`,3),ms=s("div",{className:"run-code"},"▶ Run Code",-1),_s=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -303,7 +303,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('subtitleLoad', (url) => {
     console.info('subtitleLoad', url);
 });
-

subtitleSwitch

当字幕切换时触发

`,3),gs=s("div",{className:"run-code"},"▶ Run Code",-1),vs=n(`
js
var art = new Artplayer({
+

subtitleSwitch ​

当字幕切换时触发

`,3),gs=s("div",{className:"run-code"},"▶ Run Code",-1),vs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -318,7 +318,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('subtitleSwitch', (url) => {
     console.info('subtitleSwitch', url);
 });
-

info

当信息面板显示或隐藏时触发

`,3),Es=s("div",{className:"run-code"},"▶ Run Code",-1),Ts=n(`
js
var art = new Artplayer({
+

info ​

当信息面板显示或隐藏时触发

`,3),Es=s("div",{className:"run-code"},"▶ Run Code",-1),Ts=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -326,7 +326,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('info', (state) => {
     console.log(state);
 });
-

layer

当自定义层显示或隐藏时触发

`,3),fs=s("div",{className:"run-code"},"▶ Run Code",-1),ks=n(`
js
var art = new Artplayer({
+

layer ​

当自定义层显示或隐藏时触发

`,3),fs=s("div",{className:"run-code"},"▶ Run Code",-1),ks=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -334,7 +334,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('layer', (state) => {
     console.log(state);
 });
-

loading

当加载器显示或隐藏时触发

`,3),Ss=s("div",{className:"run-code"},"▶ Run Code",-1),xs=n(`
js
var art = new Artplayer({
+

loading ​

当加载器显示或隐藏时触发

`,3),Ps=s("div",{className:"run-code"},"▶ Run Code",-1),Ss=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -342,7 +342,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('loading', (state) => {
     console.log(state);
 });
-

mask

当遮罩层显示或隐藏时触发

`,3),ws=s("div",{className:"run-code"},"▶ Run Code",-1),Rs=n(`
js
var art = new Artplayer({
+

mask ​

当遮罩层显示或隐藏时触发

`,3),qs=s("div",{className:"run-code"},"▶ Run Code",-1),ws=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -350,7 +350,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('mask', (state) => {
     console.log(state);
 });
-

subtitle

当字幕层显示或隐藏时触发

`,3),Ns=s("div",{className:"run-code"},"▶ Run Code",-1),Vs=n(`
js
var art = new Artplayer({
+

subtitle ​

当字幕层显示或隐藏时触发

`,3),Rs=s("div",{className:"run-code"},"▶ Run Code",-1),Ns=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -358,7 +358,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('subtitle', (state) => {
     console.log(state);
 });
-

contextmenu

当右键菜单显示或隐藏时触发

`,3),Ps=s("div",{className:"run-code"},"▶ Run Code",-1),js=n(`
js
var art = new Artplayer({
+

contextmenu ​

当右键菜单显示或隐藏时触发

`,3),Vs=s("div",{className:"run-code"},"▶ Run Code",-1),js=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -366,7 +366,7 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('contextmenu', (state) => {
     console.log(state);
 });
-

control

当控制器显示或隐藏时触发

`,3),Is=s("div",{className:"run-code"},"▶ Run Code",-1),zs=n(`
js
var art = new Artplayer({
+

control ​

当控制器显示或隐藏时触发

`,3),Is=s("div",{className:"run-code"},"▶ Run Code",-1),xs=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -374,13 +374,4 @@ import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const M
 art.on('control', (state) => {
     console.log(state);
 });
-

setting

当设置面板显示或隐藏时触发

`,3),Os=s("div",{className:"run-code"},"▶ Run Code",-1),Us=n(`
js
var art = new Artplayer({
-    container: '.artplayer-app',
-    url: '/assets/sample/video.mp4',
-    setting: true,
-});
-
-art.on('setting', (state) => {
-    console.log(state);
-});
-

video:canplay

浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容

video:canplaythrough

浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束

video:complete

OfflineAudioContext 渲染完成

video:durationchange

duration 属性的值改变时触发

video:emptied

媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载它

video:ended

视频停止播放,因为 media 已经到达结束点

video:error

获取媒体数据时出错,或者资源类型不是受支持的媒体格式

video:loadeddata

media 中的首帧已经完成加载

video:loadedmetadata

已加载元数据

video:pause

播放已暂停

video:play

播放已开始

video:playing

由于缺乏数据而暂停或延迟后,播放准备开始

video:progress

在浏览器加载资源时周期性触发

video:ratechange

播放速率发生变化

video:seeked

跳帧(seek)操作完成

video:seeking

跳帧(seek)操作开始

video:stalled

用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现

video:suspend

媒体数据加载已暂停

video:timeupdate

currentTime 属性指定的时间发生变化

video:volumechange

音量发生变化

video:waiting

由于暂时缺少数据,播放已停止

`,43),Hs=[r,c,t,D,y,F,i,A,C,d,b,u,h,m,_,g,v,E,T,f,k,S,x,w,R,N,V,P,j,I,z,O,U,H,W,L,$,B,J,q,G,K,M,Q,X,Y,Z,ss,ns,as,ls,ps,es,os,rs,cs,ts,Ds,ys,Fs,is,As,Cs,ds,bs,us,hs,ms,_s,gs,vs,Es,Ts,fs,ks,Ss,xs,ws,Rs,Ns,Vs,Ps,js,Is,zs,Os,Us];function Ws(Ls,$s,Bs,Js,qs,Gs){return e(),p("div",null,Hs)}const Qs=l(o,[["render",Ws]]);export{Ms as __pageData,Qs as default}; +

setting ​

当设置面板显示或隐藏时触发

`,3),zs=s("div",{className:"run-code"},"▶ Run Code",-1),Us=a('
js
var art = new Artplayer({\n    container: '.artplayer-app',\n    url: '/assets/sample/video.mp4',\n    setting: true,\n});\n\nart.on('setting', (state) => {\n    console.log(state);\n});\n

video:canplay ​

浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容

video:canplaythrough ​

浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束

video:complete ​

OfflineAudioContext 渲染完成

video:durationchange ​

duration 属性的值改变时触发

video:emptied ​

媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载它

video:ended ​

视频停止播放,因为 media 已经到达结束点

video:error ​

获取媒体数据时出错,或者资源类型不是受支持的媒体格式

video:loadeddata ​

media 中的首帧已经完成加载

video:loadedmetadata ​

已加载元数据

video:pause ​

播放已暂停

video:play ​

播放已开始

video:playing ​

由于缺乏数据而暂停或延迟后,播放准备开始

video:progress ​

在浏览器加载资源时周期性触发

video:ratechange ​

播放速率发生变化

video:seeked ​

跳帧(seek)操作完成

video:seeking ​

跳帧(seek)操作开始

video:stalled ​

用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现

video:suspend ​

媒体数据加载已暂停

video:timeupdate ​

currentTime 属性指定的时间发生变化

video:volumechange ​

音量发生变化

video:waiting ​

由于暂时缺少数据,播放已停止

',43),Os=[r,c,t,D,F,y,i,A,C,d,b,u,h,m,_,g,v,E,T,f,k,P,S,q,w,R,N,V,j,I,x,z,U,O,H,W,L,$,B,J,G,K,M,Q,X,Y,Z,ss,as,ns,ls,ps,os,es,rs,cs,ts,Ds,Fs,ys,is,As,Cs,ds,bs,us,hs,ms,_s,gs,vs,Es,Ts,fs,ks,Ps,Ss,qs,ws,Rs,Ns,Vs,js,Is,xs,zs,Us];function Hs(Ws,Ls,$s,Bs,Js,Gs){return o(),p("div",null,Os)}const Qs=l(e,[["render",Hs]]);export{Ms as __pageData,Qs as default}; diff --git a/docs/document/assets/en_advanced_event.md.5825ac7d.lean.js b/docs/document/assets/en_advanced_event.md.5825ac7d.lean.js new file mode 100644 index 000000000..2e962b296 --- /dev/null +++ b/docs/document/assets/en_advanced_event.md.5825ac7d.lean.js @@ -0,0 +1 @@ +import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const Ms=JSON.parse('{"title":"实例事件","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/event.md","lastUpdated":1677245395000}'),e={name:"en/advanced/event.md"},r=s("h1",{id:"实例事件",tabindex:"-1"},[n("实例事件 "),s("a",{class:"header-anchor",href:"#实例事件","aria-label":'Permalink to "实例事件"'},"​")],-1),c=s("p",null,[n("播放器的事件分为两种,一种视频的 "),s("code",null,"原生事件"),n(" (前缀 "),s("code",null,"video:"),n("),另外一种是 "),s("code",null,"自定义事件")],-1),t=s("p",null,"监听事件:",-1),D=s("div",{className:"run-code"},"▶ Run Code",-1),F=a("",2),y=s("div",{className:"run-code"},"▶ Run Code",-1),i=a("",2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=a("",2),d=s("div",{className:"run-code"},"▶ Run Code",-1),b=a("",4),u=s("div",{className:"run-code"},"▶ Run Code",-1),h=a("",3),m=s("div",{className:"run-code"},"▶ Run Code",-1),_=a("",3),g=s("div",{className:"run-code"},"▶ Run Code",-1),v=a("",3),E=s("div",{className:"run-code"},"▶ Run Code",-1),T=a("",3),f=s("div",{className:"run-code"},"▶ Run Code",-1),k=a("",3),P=s("div",{className:"run-code"},"▶ Run Code",-1),S=a("",3),q=s("div",{className:"run-code"},"▶ Run Code",-1),w=a("",3),R=s("div",{className:"run-code"},"▶ Run Code",-1),N=a("",3),V=s("div",{className:"run-code"},"▶ Run Code",-1),j=a("",3),I=s("div",{className:"run-code"},"▶ Run Code",-1),x=a("",3),z=s("div",{className:"run-code"},"▶ Run Code",-1),U=a("",3),O=s("div",{className:"run-code"},"▶ Run Code",-1),H=a("",3),W=s("div",{className:"run-code"},"▶ Run Code",-1),L=a("",3),$=s("div",{className:"run-code"},"▶ Run Code",-1),B=a("",3),J=s("div",{className:"run-code"},"▶ Run Code",-1),G=a("",3),K=s("div",{className:"run-code"},"▶ Run Code",-1),M=a("",3),Q=s("div",{className:"run-code"},"▶ Run Code",-1),X=a("",3),Y=s("div",{className:"run-code"},"▶ Run Code",-1),Z=a("",3),ss=s("div",{className:"run-code"},"▶ Run Code",-1),as=a("",3),ns=s("div",{className:"run-code"},"▶ Run Code",-1),ls=a("",3),ps=s("div",{className:"run-code"},"▶ Run Code",-1),os=a("",3),es=s("div",{className:"run-code"},"▶ Run Code",-1),rs=a("",3),cs=s("div",{className:"run-code"},"▶ Run Code",-1),ts=a("",3),Ds=s("div",{className:"run-code"},"▶ Run Code",-1),Fs=a("",3),ys=s("div",{className:"run-code"},"▶ Run Code",-1),is=a("",3),As=s("div",{className:"run-code"},"▶ Run Code",-1),Cs=a("",3),ds=s("div",{className:"run-code"},"▶ Run Code",-1),bs=a("",3),us=s("div",{className:"run-code"},"▶ Run Code",-1),hs=a("",3),ms=s("div",{className:"run-code"},"▶ Run Code",-1),_s=a("",3),gs=s("div",{className:"run-code"},"▶ Run Code",-1),vs=a("",3),Es=s("div",{className:"run-code"},"▶ Run Code",-1),Ts=a("",3),fs=s("div",{className:"run-code"},"▶ Run Code",-1),ks=a("",3),Ps=s("div",{className:"run-code"},"▶ Run Code",-1),Ss=a("",3),qs=s("div",{className:"run-code"},"▶ Run Code",-1),ws=a("",3),Rs=s("div",{className:"run-code"},"▶ Run Code",-1),Ns=a("",3),Vs=s("div",{className:"run-code"},"▶ Run Code",-1),js=a("",3),Is=s("div",{className:"run-code"},"▶ Run Code",-1),xs=a("",3),zs=s("div",{className:"run-code"},"▶ Run Code",-1),Us=a("",43),Os=[r,c,t,D,F,y,i,A,C,d,b,u,h,m,_,g,v,E,T,f,k,P,S,q,w,R,N,V,j,I,x,z,U,O,H,W,L,$,B,J,G,K,M,Q,X,Y,Z,ss,as,ns,ls,ps,os,es,rs,cs,ts,Ds,Fs,ys,is,As,Cs,ds,bs,us,hs,ms,_s,gs,vs,Es,Ts,fs,ks,Ps,Ss,qs,ws,Rs,Ns,Vs,js,Is,xs,zs,Us];function Hs(Ws,Ls,$s,Bs,Js,Gs){return o(),p("div",null,Os)}const Qs=l(e,[["render",Hs]]);export{Ms as __pageData,Qs as default}; diff --git a/docs/document/assets/en_advanced_event.md.99a25a28.lean.js b/docs/document/assets/en_advanced_event.md.99a25a28.lean.js deleted file mode 100644 index 386fde884..000000000 --- a/docs/document/assets/en_advanced_event.md.99a25a28.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as l,c as p,o as e,b as s,d as a,a as n}from"./app.77a2ba76.js";const Ms=JSON.parse('{"title":"实例事件","description":"","frontmatter":{},"headers":[{"level":2,"title":"ready","slug":"ready","link":"#ready","children":[]},{"level":2,"title":"restart","slug":"restart","link":"#restart","children":[]},{"level":2,"title":"pause","slug":"pause","link":"#pause","children":[]},{"level":2,"title":"play","slug":"play","link":"#play","children":[]},{"level":2,"title":"hotkey","slug":"hotkey","link":"#hotkey","children":[]},{"level":2,"title":"destroy","slug":"destroy","link":"#destroy","children":[]},{"level":2,"title":"url","slug":"url","link":"#url","children":[]},{"level":2,"title":"focus","slug":"focus","link":"#focus","children":[]},{"level":2,"title":"blur","slug":"blur","link":"#blur","children":[]},{"level":2,"title":"dblclick","slug":"dblclick","link":"#dblclick","children":[]},{"level":2,"title":"click","slug":"click","link":"#click","children":[]},{"level":2,"title":"error","slug":"error","link":"#error","children":[]},{"level":2,"title":"hover","slug":"hover","link":"#hover","children":[]},{"level":2,"title":"mousemove","slug":"mousemove","link":"#mousemove","children":[]},{"level":2,"title":"resize","slug":"resize","link":"#resize","children":[]},{"level":2,"title":"view","slug":"view","link":"#view","children":[]},{"level":2,"title":"aspectRatio","slug":"aspectratio","link":"#aspectratio","children":[]},{"level":2,"title":"autoHeight","slug":"autoheight","link":"#autoheight","children":[]},{"level":2,"title":"autoSize","slug":"autosize","link":"#autosize","children":[]},{"level":2,"title":"flip","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"fullscreen","slug":"fullscreen","link":"#fullscreen","children":[]},{"level":2,"title":"fullscreenWeb","slug":"fullscreenweb","link":"#fullscreenweb","children":[]},{"level":2,"title":"mini","slug":"mini","link":"#mini","children":[]},{"level":2,"title":"pip","slug":"pip","link":"#pip","children":[]},{"level":2,"title":"screenshot","slug":"screenshot","link":"#screenshot","children":[]},{"level":2,"title":"seek","slug":"seek","link":"#seek","children":[]},{"level":2,"title":"subtitleOffset","slug":"subtitleoffset","link":"#subtitleoffset","children":[]},{"level":2,"title":"subtitleUpdate","slug":"subtitleupdate","link":"#subtitleupdate","children":[]},{"level":2,"title":"subtitleLoad","slug":"subtitleload","link":"#subtitleload","children":[]},{"level":2,"title":"subtitleSwitch","slug":"subtitleswitch","link":"#subtitleswitch","children":[]},{"level":2,"title":"info","slug":"info","link":"#info","children":[]},{"level":2,"title":"layer","slug":"layer","link":"#layer","children":[]},{"level":2,"title":"loading","slug":"loading","link":"#loading","children":[]},{"level":2,"title":"mask","slug":"mask","link":"#mask","children":[]},{"level":2,"title":"subtitle","slug":"subtitle","link":"#subtitle","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"control","slug":"control","link":"#control","children":[]},{"level":2,"title":"setting","slug":"setting","link":"#setting","children":[]},{"level":2,"title":"video:canplay","slug":"video-canplay","link":"#video-canplay","children":[]},{"level":2,"title":"video:canplaythrough","slug":"video-canplaythrough","link":"#video-canplaythrough","children":[]},{"level":2,"title":"video:complete","slug":"video-complete","link":"#video-complete","children":[]},{"level":2,"title":"video:durationchange","slug":"video-durationchange","link":"#video-durationchange","children":[]},{"level":2,"title":"video:emptied","slug":"video-emptied","link":"#video-emptied","children":[]},{"level":2,"title":"video:ended","slug":"video-ended","link":"#video-ended","children":[]},{"level":2,"title":"video:error","slug":"video-error","link":"#video-error","children":[]},{"level":2,"title":"video:loadeddata","slug":"video-loadeddata","link":"#video-loadeddata","children":[]},{"level":2,"title":"video:loadedmetadata","slug":"video-loadedmetadata","link":"#video-loadedmetadata","children":[]},{"level":2,"title":"video:pause","slug":"video-pause","link":"#video-pause","children":[]},{"level":2,"title":"video:play","slug":"video-play","link":"#video-play","children":[]},{"level":2,"title":"video:playing","slug":"video-playing","link":"#video-playing","children":[]},{"level":2,"title":"video:progress","slug":"video-progress","link":"#video-progress","children":[]},{"level":2,"title":"video:ratechange","slug":"video-ratechange","link":"#video-ratechange","children":[]},{"level":2,"title":"video:seeked","slug":"video-seeked","link":"#video-seeked","children":[]},{"level":2,"title":"video:seeking","slug":"video-seeking","link":"#video-seeking","children":[]},{"level":2,"title":"video:stalled","slug":"video-stalled","link":"#video-stalled","children":[]},{"level":2,"title":"video:suspend","slug":"video-suspend","link":"#video-suspend","children":[]},{"level":2,"title":"video:timeupdate","slug":"video-timeupdate","link":"#video-timeupdate","children":[]},{"level":2,"title":"video:volumechange","slug":"video-volumechange","link":"#video-volumechange","children":[]},{"level":2,"title":"video:waiting","slug":"video-waiting","link":"#video-waiting","children":[]}],"relativePath":"en/advanced/event.md","lastUpdated":1677245395000}'),o={name:"en/advanced/event.md"},r=s("h1",{id:"实例事件",tabindex:"-1"},[a("实例事件 "),s("a",{class:"header-anchor",href:"#实例事件","aria-hidden":"true"},"#")],-1),c=s("p",null,[a("播放器的事件分为两种,一种视频的 "),s("code",null,"原生事件"),a(" (前缀 "),s("code",null,"video:"),a("),另外一种是 "),s("code",null,"自定义事件")],-1),t=s("p",null,"监听事件:",-1),D=s("div",{className:"run-code"},"▶ Run Code",-1),y=n("",2),F=s("div",{className:"run-code"},"▶ Run Code",-1),i=n("",2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=n("",2),d=s("div",{className:"run-code"},"▶ Run Code",-1),b=n("",4),u=s("div",{className:"run-code"},"▶ Run Code",-1),h=n("",3),m=s("div",{className:"run-code"},"▶ Run Code",-1),_=n("",3),g=s("div",{className:"run-code"},"▶ Run Code",-1),v=n("",3),E=s("div",{className:"run-code"},"▶ Run Code",-1),T=n("",3),f=s("div",{className:"run-code"},"▶ Run Code",-1),k=n("",3),S=s("div",{className:"run-code"},"▶ Run Code",-1),x=n("",3),w=s("div",{className:"run-code"},"▶ Run Code",-1),R=n("",3),N=s("div",{className:"run-code"},"▶ Run Code",-1),V=n("",3),P=s("div",{className:"run-code"},"▶ Run Code",-1),j=n("",3),I=s("div",{className:"run-code"},"▶ Run Code",-1),z=n("",3),O=s("div",{className:"run-code"},"▶ Run Code",-1),U=n("",3),H=s("div",{className:"run-code"},"▶ Run Code",-1),W=n("",3),L=s("div",{className:"run-code"},"▶ Run Code",-1),$=n("",3),B=s("div",{className:"run-code"},"▶ Run Code",-1),J=n("",3),q=s("div",{className:"run-code"},"▶ Run Code",-1),G=n("",3),K=s("div",{className:"run-code"},"▶ Run Code",-1),M=n("",3),Q=s("div",{className:"run-code"},"▶ Run Code",-1),X=n("",3),Y=s("div",{className:"run-code"},"▶ Run Code",-1),Z=n("",3),ss=s("div",{className:"run-code"},"▶ Run Code",-1),ns=n("",3),as=s("div",{className:"run-code"},"▶ Run Code",-1),ls=n("",3),ps=s("div",{className:"run-code"},"▶ Run Code",-1),es=n("",3),os=s("div",{className:"run-code"},"▶ Run Code",-1),rs=n("",3),cs=s("div",{className:"run-code"},"▶ Run Code",-1),ts=n("",3),Ds=s("div",{className:"run-code"},"▶ Run Code",-1),ys=n("",3),Fs=s("div",{className:"run-code"},"▶ Run Code",-1),is=n("",3),As=s("div",{className:"run-code"},"▶ Run Code",-1),Cs=n("",3),ds=s("div",{className:"run-code"},"▶ Run Code",-1),bs=n("",3),us=s("div",{className:"run-code"},"▶ Run Code",-1),hs=n("",3),ms=s("div",{className:"run-code"},"▶ Run Code",-1),_s=n("",3),gs=s("div",{className:"run-code"},"▶ Run Code",-1),vs=n("",3),Es=s("div",{className:"run-code"},"▶ Run Code",-1),Ts=n("",3),fs=s("div",{className:"run-code"},"▶ Run Code",-1),ks=n("",3),Ss=s("div",{className:"run-code"},"▶ Run Code",-1),xs=n("",3),ws=s("div",{className:"run-code"},"▶ Run Code",-1),Rs=n("",3),Ns=s("div",{className:"run-code"},"▶ Run Code",-1),Vs=n("",3),Ps=s("div",{className:"run-code"},"▶ Run Code",-1),js=n("",3),Is=s("div",{className:"run-code"},"▶ Run Code",-1),zs=n("",3),Os=s("div",{className:"run-code"},"▶ Run Code",-1),Us=n("",43),Hs=[r,c,t,D,y,F,i,A,C,d,b,u,h,m,_,g,v,E,T,f,k,S,x,w,R,N,V,P,j,I,z,O,U,H,W,L,$,B,J,q,G,K,M,Q,X,Y,Z,ss,ns,as,ls,ps,es,os,rs,cs,ts,Ds,ys,Fs,is,As,Cs,ds,bs,us,hs,ms,_s,gs,vs,Es,Ts,fs,ks,Ss,xs,ws,Rs,Ns,Vs,Ps,js,Is,zs,Os,Us];function Ws(Ls,$s,Bs,Js,qs,Gs){return e(),p("div",null,Hs)}const Qs=l(o,[["render",Ws]]);export{Ms as __pageData,Qs as default}; diff --git a/docs/document/assets/en_advanced_plugin.md.d438c8aa.js b/docs/document/assets/en_advanced_plugin.md.73808c77.js similarity index 93% rename from docs/document/assets/en_advanced_plugin.md.d438c8aa.js rename to docs/document/assets/en_advanced_plugin.md.73808c77.js index fb3c50bb4..2372afedd 100644 --- a/docs/document/assets/en_advanced_plugin.md.d438c8aa.js +++ b/docs/document/assets/en_advanced_plugin.md.73808c77.js @@ -1,4 +1,4 @@ -import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const v=JSON.parse('{"title":"编写插件","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/plugin.md","lastUpdated":1673692792000}'),e={name:"en/advanced/plugin.md"},r=s("h1",{id:"编写插件",tabindex:"-1"},[n("编写插件 "),s("a",{class:"header-anchor",href:"#编写插件","aria-hidden":"true"},"#")],-1),c=s("p",null,[n("但你已经知道播放器的"),s("code",null,"属性"),n(", "),s("code",null,"方法"),n("和"),s("code",null,"事件"),n("后,再编写插件是非常简单的事")],-1),t=s("p",null,"可以在实例化的时候加载插件的函数",-1),F=s("div",{className:"run-code"},"▶ Run Code",-1),D=a(`
js
function myPlugin(art) {
+import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const v=JSON.parse('{"title":"编写插件","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/plugin.md","lastUpdated":1673692792000}'),e={name:"en/advanced/plugin.md"},r=s("h1",{id:"编写插件",tabindex:"-1"},[n("编写插件 "),s("a",{class:"header-anchor",href:"#编写插件","aria-label":'Permalink to "编写插件"'},"​")],-1),c=s("p",null,[n("但你已经知道播放器的"),s("code",null,"属性"),n(", "),s("code",null,"方法"),n("和"),s("code",null,"事件"),n("后,再编写插件是非常简单的事")],-1),t=s("p",null,"可以在实例化的时候加载插件的函数",-1),F=s("div",{className:"run-code"},"▶ Run Code",-1),D=a(`
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -18,7 +18,7 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const v=JSON.pars
 art.on('ready', () => {
     console.info(art.plugins.myPlugin);
 });
-

可以在实例化之后再加载插件的函数

`,2),y=s("div",{className:"run-code"},"▶ Run Code",-1),i=a(`
js
function myPlugin(art) {
+

可以在实例化之后再加载插件的函数

`,2),y=s("div",{className:"run-code"},"▶ Run Code",-1),i=a(`
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -39,7 +39,7 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const v=JSON.pars
 art.on('ready', () => {
     console.info(art.plugins.myPlugin);
 });
-

例如我想写一个在视频暂停后,显示一个图片广告的插件

`,2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=a(`
js
function adsPlugin(option) {
+

例如我想写一个在视频暂停后,显示一个图片广告的插件

`,2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=a(`
js
function adsPlugin(option) {
     return (art) => {
         art.layers.add({
             name: 'ads',
@@ -99,4 +99,4 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const v=JSON.pars
         })
     ],
 });
-
`,1),b=[r,c,t,F,D,y,i,A,C];function u(m,d,h,_,g,E){return o(),p("div",null,b)}const T=l(e,[["render",u]]);export{v as __pageData,T as default}; +
`,1),b=[r,c,t,F,D,y,i,A,C];function u(m,d,h,_,g,E){return o(),p("div",null,b)}const P=l(e,[["render",u]]);export{v as __pageData,P as default}; diff --git a/docs/document/assets/en_advanced_plugin.md.73808c77.lean.js b/docs/document/assets/en_advanced_plugin.md.73808c77.lean.js new file mode 100644 index 000000000..d05bba897 --- /dev/null +++ b/docs/document/assets/en_advanced_plugin.md.73808c77.lean.js @@ -0,0 +1 @@ +import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const v=JSON.parse('{"title":"编写插件","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/plugin.md","lastUpdated":1673692792000}'),e={name:"en/advanced/plugin.md"},r=s("h1",{id:"编写插件",tabindex:"-1"},[n("编写插件 "),s("a",{class:"header-anchor",href:"#编写插件","aria-label":'Permalink to "编写插件"'},"​")],-1),c=s("p",null,[n("但你已经知道播放器的"),s("code",null,"属性"),n(", "),s("code",null,"方法"),n("和"),s("code",null,"事件"),n("后,再编写插件是非常简单的事")],-1),t=s("p",null,"可以在实例化的时候加载插件的函数",-1),F=s("div",{className:"run-code"},"▶ Run Code",-1),D=a("",2),y=s("div",{className:"run-code"},"▶ Run Code",-1),i=a("",2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=a("",1),b=[r,c,t,F,D,y,i,A,C];function u(m,d,h,_,g,E){return o(),p("div",null,b)}const P=l(e,[["render",u]]);export{v as __pageData,P as default}; diff --git a/docs/document/assets/en_advanced_plugin.md.d438c8aa.lean.js b/docs/document/assets/en_advanced_plugin.md.d438c8aa.lean.js deleted file mode 100644 index 4c0ce3ec1..000000000 --- a/docs/document/assets/en_advanced_plugin.md.d438c8aa.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const v=JSON.parse('{"title":"编写插件","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/plugin.md","lastUpdated":1673692792000}'),e={name:"en/advanced/plugin.md"},r=s("h1",{id:"编写插件",tabindex:"-1"},[n("编写插件 "),s("a",{class:"header-anchor",href:"#编写插件","aria-hidden":"true"},"#")],-1),c=s("p",null,[n("但你已经知道播放器的"),s("code",null,"属性"),n(", "),s("code",null,"方法"),n("和"),s("code",null,"事件"),n("后,再编写插件是非常简单的事")],-1),t=s("p",null,"可以在实例化的时候加载插件的函数",-1),F=s("div",{className:"run-code"},"▶ Run Code",-1),D=a("",2),y=s("div",{className:"run-code"},"▶ Run Code",-1),i=a("",2),A=s("div",{className:"run-code"},"▶ Run Code",-1),C=a("",1),b=[r,c,t,F,D,y,i,A,C];function u(m,d,h,_,g,E){return o(),p("div",null,b)}const T=l(e,[["render",u]]);export{v as __pageData,T as default}; diff --git a/docs/document/assets/en_advanced_property.md.04d93333.lean.js b/docs/document/assets/en_advanced_property.md.04d93333.lean.js deleted file mode 100644 index 33b96fb3e..000000000 --- a/docs/document/assets/en_advanced_property.md.04d93333.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.parse('{"title":"Instance Property","description":"","frontmatter":{},"headers":[{"level":2,"title":"play","slug":"play","link":"#play","children":[]},{"level":2,"title":"pause","slug":"pause","link":"#pause","children":[]},{"level":2,"title":"toggle","slug":"toggle","link":"#toggle","children":[]},{"level":2,"title":"destroy","slug":"destroy","link":"#destroy","children":[]},{"level":2,"title":"seek","slug":"seek","link":"#seek","children":[]},{"level":2,"title":"forward","slug":"forward","link":"#forward","children":[]},{"level":2,"title":"backward","slug":"backward","link":"#backward","children":[]},{"level":2,"title":"volume","slug":"volume","link":"#volume","children":[]},{"level":2,"title":"url","slug":"url","link":"#url","children":[]},{"level":2,"title":"switchUrl","slug":"switchurl","link":"#switchurl","children":[]},{"level":2,"title":"switchQuality","slug":"switchquality","link":"#switchquality","children":[]},{"level":2,"title":"muted","slug":"muted","link":"#muted","children":[]},{"level":2,"title":"currentTime","slug":"currenttime","link":"#currenttime","children":[]},{"level":2,"title":"duration","slug":"duration","link":"#duration","children":[]},{"level":2,"title":"screenshot","slug":"screenshot","link":"#screenshot","children":[]},{"level":2,"title":"getDataURL","slug":"getdataurl","link":"#getdataurl","children":[]},{"level":2,"title":"getBlobUrl","slug":"getbloburl","link":"#getbloburl","children":[]},{"level":2,"title":"fullscreen","slug":"fullscreen","link":"#fullscreen","children":[]},{"level":2,"title":"fullscreenWeb","slug":"fullscreenweb","link":"#fullscreenweb","children":[]},{"level":2,"title":"pip","slug":"pip","link":"#pip","children":[]},{"level":2,"title":"poster","slug":"poster","link":"#poster","children":[]},{"level":2,"title":"mini","slug":"mini","link":"#mini","children":[]},{"level":2,"title":"playing","slug":"playing","link":"#playing","children":[]},{"level":2,"title":"autoSize","slug":"autosize","link":"#autosize","children":[]},{"level":2,"title":"rect","slug":"rect","link":"#rect","children":[]},{"level":2,"title":"flip","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"playbackRate","slug":"playbackrate","link":"#playbackrate","children":[]},{"level":2,"title":"aspectRatio","slug":"aspectratio","link":"#aspectratio","children":[]},{"level":2,"title":"loop","slug":"loop","link":"#loop","children":[]},{"level":2,"title":"autoHeight","slug":"autoheight","link":"#autoheight","children":[]},{"level":2,"title":"attr","slug":"attr","link":"#attr","children":[]},{"level":2,"title":"title","slug":"title","link":"#title","children":[]},{"level":2,"title":"type","slug":"type","link":"#type","children":[]},{"level":2,"title":"theme","slug":"theme","link":"#theme","children":[]},{"level":2,"title":"airplay","slug":"airplay","link":"#airplay","children":[]},{"level":2,"title":"loaded","slug":"loaded","link":"#loaded","children":[]},{"level":2,"title":"played","slug":"played","link":"#played","children":[]},{"level":2,"title":"proxy","slug":"proxy","link":"#proxy","children":[]},{"level":2,"title":"query","slug":"query","link":"#query","children":[]},{"level":2,"title":"video","slug":"video","link":"#video","children":[]}],"relativePath":"en/advanced/property.md","lastUpdated":1674271220000}'),e={name:"en/advanced/property.md"},o=s("",5),r=n("div",{className:"run-code"},"▶ Run Code",-1),c=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),y=n("div",{className:"run-code"},"▶ Run Code",-1),F=s("",4),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",4),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s("",4),u=n("div",{className:"run-code"},"▶ Run Code",-1),b=s("",4),h=n("div",{className:"run-code"},"▶ Run Code",-1),m=s("",4),_=n("div",{className:"run-code"},"▶ Run Code",-1),g=s("",4),v=n("div",{className:"run-code"},"▶ Run Code",-1),T=s("",5),E=n("div",{className:"run-code"},"▶ Run Code",-1),f=s("",5),S=n("div",{className:"run-code"},"▶ Run Code",-1),w=s("",4),k=n("div",{className:"run-code"},"▶ Run Code",-1),P=s("",4),x=n("div",{className:"run-code"},"▶ Run Code",-1),N=s("",4),R=n("div",{className:"run-code"},"▶ Run Code",-1),I=s("",5),V=n("div",{className:"run-code"},"▶ Run Code",-1),j=s("",4),G=n("div",{className:"run-code"},"▶ Run Code",-1),q=s("",4),B=n("div",{className:"run-code"},"▶ Run Code",-1),z=s("",4),U=n("div",{className:"run-code"},"▶ Run Code",-1),W=s("",5),L=n("div",{className:"run-code"},"▶ Run Code",-1),O=s("",4),H=n("div",{className:"run-code"},"▶ Run Code",-1),$=s("",5),M=n("div",{className:"run-code"},"▶ Run Code",-1),Q=s("",4),J=n("div",{className:"run-code"},"▶ Run Code",-1),Y=s("",4),K=n("div",{className:"run-code"},"▶ Run Code",-1),X=s("",4),Z=n("div",{className:"run-code"},"▶ Run Code",-1),ss=s("",4),ns=n("div",{className:"run-code"},"▶ Run Code",-1),as=s("",5),ls=n("div",{className:"run-code"},"▶ Run Code",-1),ps=s("",4),es=n("div",{className:"run-code"},"▶ Run Code",-1),os=s("",4),rs=n("div",{className:"run-code"},"▶ Run Code",-1),cs=s("",4),ts=n("div",{className:"run-code"},"▶ Run Code",-1),Ds=s("",5),ys=n("div",{className:"run-code"},"▶ Run Code",-1),Fs=s("",5),is=n("div",{className:"run-code"},"▶ Run Code",-1),As=s("",4),Cs=n("div",{className:"run-code"},"▶ Run Code",-1),ds=s("",4),us=n("div",{className:"run-code"},"▶ Run Code",-1),bs=s("",4),hs=n("div",{className:"run-code"},"▶ Run Code",-1),ms=s("",4),_s=n("div",{className:"run-code"},"▶ Run Code",-1),gs=s("",4),vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ts=s("",4),Es=n("div",{className:"run-code"},"▶ Run Code",-1),fs=s("",4),Ss=n("div",{className:"run-code"},"▶ Run Code",-1),ws=s("",5),ks=n("div",{className:"run-code"},"▶ Run Code",-1),Ps=s("",4),xs=n("div",{className:"run-code"},"▶ Run Code",-1),Ns=s("",1),Rs=[o,r,c,t,D,y,F,i,A,C,d,u,b,h,m,_,g,v,T,E,f,S,w,k,P,x,N,R,I,V,j,G,q,B,z,U,W,L,O,H,$,M,Q,J,Y,K,X,Z,ss,ns,as,ls,ps,es,os,rs,cs,ts,Ds,ys,Fs,is,As,Cs,ds,us,bs,hs,ms,_s,gs,vs,Ts,Es,fs,Ss,ws,ks,Ps,xs,Ns];function Is(Vs,js,Gs,qs,Bs,zs){return p(),l("div",null,Rs)}const Ls=a(e,[["render",Is]]);export{Ws as __pageData,Ls as default}; diff --git a/docs/document/assets/en_advanced_property.md.04d93333.js b/docs/document/assets/en_advanced_property.md.2e3710aa.js similarity index 81% rename from docs/document/assets/en_advanced_property.md.04d93333.js rename to docs/document/assets/en_advanced_property.md.2e3710aa.js index ebfb0bb92..19f5ec35d 100644 --- a/docs/document/assets/en_advanced_property.md.04d93333.js +++ b/docs/document/assets/en_advanced_property.md.2e3710aa.js @@ -1,4 +1,4 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.parse('{"title":"Instance Property","description":"","frontmatter":{},"headers":[{"level":2,"title":"play","slug":"play","link":"#play","children":[]},{"level":2,"title":"pause","slug":"pause","link":"#pause","children":[]},{"level":2,"title":"toggle","slug":"toggle","link":"#toggle","children":[]},{"level":2,"title":"destroy","slug":"destroy","link":"#destroy","children":[]},{"level":2,"title":"seek","slug":"seek","link":"#seek","children":[]},{"level":2,"title":"forward","slug":"forward","link":"#forward","children":[]},{"level":2,"title":"backward","slug":"backward","link":"#backward","children":[]},{"level":2,"title":"volume","slug":"volume","link":"#volume","children":[]},{"level":2,"title":"url","slug":"url","link":"#url","children":[]},{"level":2,"title":"switchUrl","slug":"switchurl","link":"#switchurl","children":[]},{"level":2,"title":"switchQuality","slug":"switchquality","link":"#switchquality","children":[]},{"level":2,"title":"muted","slug":"muted","link":"#muted","children":[]},{"level":2,"title":"currentTime","slug":"currenttime","link":"#currenttime","children":[]},{"level":2,"title":"duration","slug":"duration","link":"#duration","children":[]},{"level":2,"title":"screenshot","slug":"screenshot","link":"#screenshot","children":[]},{"level":2,"title":"getDataURL","slug":"getdataurl","link":"#getdataurl","children":[]},{"level":2,"title":"getBlobUrl","slug":"getbloburl","link":"#getbloburl","children":[]},{"level":2,"title":"fullscreen","slug":"fullscreen","link":"#fullscreen","children":[]},{"level":2,"title":"fullscreenWeb","slug":"fullscreenweb","link":"#fullscreenweb","children":[]},{"level":2,"title":"pip","slug":"pip","link":"#pip","children":[]},{"level":2,"title":"poster","slug":"poster","link":"#poster","children":[]},{"level":2,"title":"mini","slug":"mini","link":"#mini","children":[]},{"level":2,"title":"playing","slug":"playing","link":"#playing","children":[]},{"level":2,"title":"autoSize","slug":"autosize","link":"#autosize","children":[]},{"level":2,"title":"rect","slug":"rect","link":"#rect","children":[]},{"level":2,"title":"flip","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"playbackRate","slug":"playbackrate","link":"#playbackrate","children":[]},{"level":2,"title":"aspectRatio","slug":"aspectratio","link":"#aspectratio","children":[]},{"level":2,"title":"loop","slug":"loop","link":"#loop","children":[]},{"level":2,"title":"autoHeight","slug":"autoheight","link":"#autoheight","children":[]},{"level":2,"title":"attr","slug":"attr","link":"#attr","children":[]},{"level":2,"title":"title","slug":"title","link":"#title","children":[]},{"level":2,"title":"type","slug":"type","link":"#type","children":[]},{"level":2,"title":"theme","slug":"theme","link":"#theme","children":[]},{"level":2,"title":"airplay","slug":"airplay","link":"#airplay","children":[]},{"level":2,"title":"loaded","slug":"loaded","link":"#loaded","children":[]},{"level":2,"title":"played","slug":"played","link":"#played","children":[]},{"level":2,"title":"proxy","slug":"proxy","link":"#proxy","children":[]},{"level":2,"title":"query","slug":"query","link":"#query","children":[]},{"level":2,"title":"video","slug":"video","link":"#video","children":[]}],"relativePath":"en/advanced/property.md","lastUpdated":1674271220000}'),e={name:"en/advanced/property.md"},o=s('

Instance Property

The Instance Property here refers to the Primary Property attached to the Instance, which is more commonly used

play

  • Type: Function

Play video

',5),r=n("div",{className:"run-code"},"▶ Run Code",-1),c=s(`
js
var art = new Artplayer({
+import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const Ws=JSON.parse('{"title":"Instance Property","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/property.md","lastUpdated":1674271220000}'),o={name:"en/advanced/property.md"},e=s('

Instance Property ​

The Instance Property here refers to the Primary Property attached to the Instance, which is more commonly used

play ​

  • Type: Function

Play video

',5),r=n("div",{className:"run-code"},"▶ Run Code",-1),c=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -7,7 +7,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
 art.on('ready', () => {
     art.play();
 });
-

pause

  • Type: Function

Pause video

`,4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
+

pause ​

  • Type: Function

Pause video

`,4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -20,7 +20,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
         art.pause();
     }, 3000);
 });
-

toggle

  • Type: Function

Toggle video playback and pause

`,4),y=n("div",{className:"run-code"},"▶ Run Code",-1),F=s(`
js
var art = new Artplayer({
+

toggle ​

  • Type: Function

Toggle video playback and pause

`,4),y=n("div",{className:"run-code"},"▶ Run Code",-1),F=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -33,7 +33,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
         art.toggle();
     }, 3000);
 });
-

destroy

  • Type: Function
  • Parameter: Boolean

To destroy the player, accept a parameter indicating whether to remove the player's html after destruction. The default value is true

`,4),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer({
+

destroy ​

  • Type: Function
  • Parameter: Boolean

To destroy the player, accept a parameter indicating whether to remove the player's html after destruction. The default value is true

`,4),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -41,7 +41,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
 art.on('ready', () => {
     art.destroy();
 });
-

seek

  • Type: Setter
  • Parameter: Number

Video time jump in seconds

`,4),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer({
+

seek ​

  • Type: Setter
  • Parameter: Number

Video time jump in seconds

`,4),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -49,7 +49,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
 art.on('ready', () => {
     art.seek = 5;
 });
-

forward

  • Type: Setter
  • Parameter: Number

Video time fast forward in seconds

`,4),u=n("div",{className:"run-code"},"▶ Run Code",-1),b=s(`
js
var art = new Artplayer({
+

forward ​

  • Type: Setter
  • Parameter: Number

Video time fast forward in seconds

`,4),u=n("div",{className:"run-code"},"▶ Run Code",-1),b=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -57,7 +57,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
 art.on('ready', () => {
     art.forward = 5;
 });
-

backward

  • Type: Setter
  • Parameter: Number

Video time rewind in seconds

`,4),h=n("div",{className:"run-code"},"▶ Run Code",-1),m=s(`
js
var art = new Artplayer({
+

backward ​

  • Type: Setter
  • Parameter: Number

Video time rewind in seconds

`,4),m=n("div",{className:"run-code"},"▶ Run Code",-1),h=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -69,7 +69,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
         art.backward = 2;
     }, 3000);
 });
-

volume

  • Type: Setter/Getter
  • Parameter: Number

Set and get video volume, range: [0, 1]

`,4),_=n("div",{className:"run-code"},"▶ Run Code",-1),g=s(`
js
var art = new Artplayer({
+

volume ​

  • Type: Setter/Getter
  • Parameter: Number

Set and get video volume, range: [0, 1]

`,4),_=n("div",{className:"run-code"},"▶ Run Code",-1),g=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -79,7 +79,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     art.volume = 0.5;
     console.info(art.volume);
 });
-

url

  • Type: Setter/Getter
  • Parameter: String

Set and get video url

`,4),v=n("div",{className:"run-code"},"▶ Run Code",-1),T=s(`
js
var art = new Artplayer({
+

url ​

  • Type: Setter/Getter
  • Parameter: String

Set and get video url

`,4),v=n("div",{className:"run-code"},"▶ Run Code",-1),T=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -87,7 +87,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
 art.on('ready', () => {
     art.url = '/assets/sample/video.mp4?t=0';
 });
-

switchUrl

  • Type: Function
  • Parameter: String

Setting the video url is similar to that of url, but some optimization operations will be performed

The function supports two parameters, the first is the new video url, and the second is the optional new video name

`,5),E=n("div",{className:"run-code"},"▶ Run Code",-1),f=s(`
js
var art = new Artplayer({
+

switchUrl ​

  • Type: Function
  • Parameter: String

Setting the video url is similar to that of url, but some optimization operations will be performed

The function supports two parameters, the first is the new video url, and the second is the optional new video name

`,5),E=n("div",{className:"run-code"},"▶ Run Code",-1),S=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -98,7 +98,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
         art.switchUrl('/assets/sample/video.mp4?t=0', 'New Video Name');
     }, 3000);
 });
-

switchQuality

  • Type: Function
  • Parameter: String

Set the video quality address, similar to switchUrl, but with the previous playback progress

The function supports two parameters, the first is the new video url, and the second is the optional new video name

`,5),S=n("div",{className:"run-code"},"▶ Run Code",-1),w=s(`
js
var art = new Artplayer({
+

switchQuality ​

  • Type: Function
  • Parameter: String

Set the video quality address, similar to switchUrl, but with the previous playback progress

The function supports two parameters, the first is the new video url, and the second is the optional new video name

`,5),f=n("div",{className:"run-code"},"▶ Run Code",-1),P=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -109,7 +109,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
         art.switchQuality('/assets/sample/video.mp4?t=0', 'New Video Name');
     }, 3000);
 });
-

muted

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get whether the video is muted

`,4),k=n("div",{className:"run-code"},"▶ Run Code",-1),P=s(`
js
var art = new Artplayer({
+

muted ​

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get whether the video is muted

`,4),w=n("div",{className:"run-code"},"▶ Run Code",-1),k=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -119,7 +119,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     art.muted = true;
     console.info(art.muted);
 });
-

currentTime

  • Type: Setter/Getter
  • Parameter: Number

Set and get the current time of the video. Setting the time is similar to seek, but it will not trigger additional events

`,4),x=n("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
+

currentTime ​

  • Type: Setter/Getter
  • Parameter: Number

Set and get the current time of the video. Setting the time is similar to seek, but it will not trigger additional events

`,4),N=n("div",{className:"run-code"},"▶ Run Code",-1),R=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -129,7 +129,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     art.currentTime = 5;
     console.info(art.currentTime);
 });
-

duration

  • Type: Getter

Get video duration

`,4),R=n("div",{className:"run-code"},"▶ Run Code",-1),I=s(`
js
var art = new Artplayer({
+

duration ​

  • Type: Getter

Get video duration

`,4),q=n("div",{className:"run-code"},"▶ Run Code",-1),I=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -137,7 +137,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
 art.on('ready', () => {
     console.info(art.duration);
 });
-

Tip

Some videos have no duration, such as live videos or videos that have not been decoded. The duration obtained at this time will be 0

screenshot

  • Type: Function

Download a screenshot of the current video frame

`,5),V=n("div",{className:"run-code"},"▶ Run Code",-1),j=s(`
js
var art = new Artplayer({
+

Tip

Some videos have no duration, such as live videos or videos that have not been decoded. The duration obtained at this time will be 0

screenshot ​

  • Type: Function

Download a screenshot of the current video frame

`,5),V=n("div",{className:"run-code"},"▶ Run Code",-1),j=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -145,7 +145,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
 art.on('ready', () => {
     art.screenshot();
 });
-

getDataURL

  • Type: Function

Get the base64 address of the screenshot of the current video frame, and return a Promise

`,4),G=n("div",{className:"run-code"},"▶ Run Code",-1),q=s(`
js
var art = new Artplayer({
+

getDataURL ​

  • Type: Function

Get the base64 address of the screenshot of the current video frame, and return a Promise

`,4),x=n("div",{className:"run-code"},"▶ Run Code",-1),G=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -154,7 +154,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     const url = await art.getDataURL();
 	console.info(url)
 });
-

getBlobUrl

  • Type: Function

Get the blob address of the screenshot of the current video frame, and return a Promise

`,4),B=n("div",{className:"run-code"},"▶ Run Code",-1),z=s(`
js
var art = new Artplayer({
+

getBlobUrl ​

  • Type: Function

Get the blob address of the screenshot of the current video frame, and return a Promise

`,4),B=n("div",{className:"run-code"},"▶ Run Code",-1),z=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -163,7 +163,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     const url = await art.getBlobUrl();
     console.info(url);
 });
-

fullscreen

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get full screen of player window

`,4),U=n("div",{className:"run-code"},"▶ Run Code",-1),W=s(`
js
var art = new Artplayer({
+

fullscreen ​

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get full screen of player window

`,4),U=n("div",{className:"run-code"},"▶ Run Code",-1),W=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -176,7 +176,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
         },
     ],
 });
-

Tip

Due to the browser security mechanism, the page must have interaction before triggering the full screen of the window (for example, the user has clicked on the page)

fullscreenWeb

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get full screen of player web page

`,5),L=n("div",{className:"run-code"},"▶ Run Code",-1),O=s(`
js
var art = new Artplayer({
+

Tip

Due to the browser security mechanism, the page must have interaction before triggering the full screen of the window (for example, the user has clicked on the page)

fullscreenWeb ​

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get full screen of player web page

`,5),L=n("div",{className:"run-code"},"▶ Run Code",-1),O=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreenWeb: true,
@@ -189,7 +189,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
         art.fullscreenWeb = false;
     }, 3000);
 });
-

pip

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get the picture-in-picture mode of the player

`,4),H=n("div",{className:"run-code"},"▶ Run Code",-1),$=s(`
js
var art = new Artplayer({
+

pip ​

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get the picture-in-picture mode of the player

`,4),H=n("div",{className:"run-code"},"▶ Run Code",-1),$=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -202,7 +202,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
         },
     ],
 });
-

Tip

Due to the browser security mechanism, before triggering picture-in-picture, the page must have interaction (for example, the user has clicked on the page)

poster

  • Type: Setter/Getter
  • Parameter: String

Set and obtain video posters. You can only see the poster effect before the video is played

`,5),M=n("div",{className:"run-code"},"▶ Run Code",-1),Q=s(`
js
var art = new Artplayer({
+

Tip

Due to the browser security mechanism, before triggering picture-in-picture, the page must have interaction (for example, the user has clicked on the page)

poster ​

  • Type: Setter/Getter
  • Parameter: String

Set and obtain video posters. You can only see the poster effect before the video is played

`,5),M=n("div",{className:"run-code"},"▶ Run Code",-1),Q=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     poster: '/assets/sample/poster.jpg',
@@ -213,7 +213,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     art.poster = '/assets/sample/poster.jpg?t=0';
     console.info(art.poster);
 });
-

mini

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get player mini mode

`,4),J=n("div",{className:"run-code"},"▶ Run Code",-1),Y=s(`
js
var art = new Artplayer({
+

mini ​

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get player mini mode

`,4),J=n("div",{className:"run-code"},"▶ Run Code",-1),Y=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -221,7 +221,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
 art.on('ready', () => {
     art.mini = true;
 });
-

playing

  • Type: Getter
  • Parameter: Boolean

Get whether the video is playing

`,4),K=n("div",{className:"run-code"},"▶ Run Code",-1),X=s(`
js
var art = new Artplayer({
+

playing ​

  • Type: Getter
  • Parameter: Boolean

Get whether the video is playing

`,4),K=n("div",{className:"run-code"},"▶ Run Code",-1),X=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -230,7 +230,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
 art.on('ready', () => {
     console.info(art.playing);
 });
-

autoSize

  • Type: Setter/Getter
  • Parameter: Boolean

Set whether the video is adaptive size. After setting it to true, it will only be executed once

`,4),Z=n("div",{className:"run-code"},"▶ Run Code",-1),ss=s(`
js
var art = new Artplayer({
+

autoSize ​

  • Type: Setter/Getter
  • Parameter: Boolean

Set whether the video is adaptive size. After setting it to true, it will only be executed once

`,4),Z=n("div",{className:"run-code"},"▶ Run Code",-1),ss=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -240,7 +240,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     art.autoSize = true;
     console.info(art.autoSize);
 });
-

rect

  • Type: Getter

Get the size and coordinate information of the player

`,4),ns=n("div",{className:"run-code"},"▶ Run Code",-1),as=s(`
js
var art = new Artplayer({
+

rect ​

  • Type: Getter

Get the size and coordinate information of the player

`,4),ns=n("div",{className:"run-code"},"▶ Run Code",-1),as=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -248,7 +248,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
 art.on('ready', () => {
     console.info(JSON.stringify(art.rect));
 });
-

Tip

Dimension and coordinate information are obtained through getBoundingClientRect

flip

  • Type: Setter/Getter
  • Parameter: String

Set and get player rollover, support normal, horizontal, vertical

`,5),ls=n("div",{className:"run-code"},"▶ Run Code",-1),ps=s(`
js
var art = new Artplayer({
+

Tip

Dimension and coordinate information are obtained through getBoundingClientRect

flip ​

  • Type: Setter/Getter
  • Parameter: String

Set and get player rollover, support normal, horizontal, vertical

`,5),ls=n("div",{className:"run-code"},"▶ Run Code",-1),ps=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -258,7 +258,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     art.flip = 'horizontal';
     console.info(art.flip);
 });
-

playbackRate

  • Type: Setter/Getter
  • Parameter: Number

Set and get player playback speed

`,4),es=n("div",{className:"run-code"},"▶ Run Code",-1),os=s(`
js
var art = new Artplayer({
+

playbackRate ​

  • Type: Setter/Getter
  • Parameter: Number

Set and get player playback speed

`,4),os=n("div",{className:"run-code"},"▶ Run Code",-1),es=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -268,7 +268,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     art.playbackRate = 2;
     console.info(art.playbackRate);
 });
-

aspectRatio

  • Type: Setter/Getter
  • Parameter: String

Set and obtain the player aspect ratio

`,4),rs=n("div",{className:"run-code"},"▶ Run Code",-1),cs=s(`
js
var art = new Artplayer({
+

aspectRatio ​

  • Type: Setter/Getter
  • Parameter: String

Set and obtain the player aspect ratio

`,4),rs=n("div",{className:"run-code"},"▶ Run Code",-1),cs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -278,7 +278,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     art.aspectRatio = '16:9';
     console.info(art.aspectRatio);
 });
-

loop

  • Type: Setter/Getter
  • Parameter: Array

Set and obtain interval sequential playback in seconds

`,4),ts=n("div",{className:"run-code"},"▶ Run Code",-1),Ds=s(`
js
var art = new Artplayer({
+

loop ​

  • Type: Setter/Getter
  • Parameter: Array

Set and obtain interval sequential playback in seconds

`,4),ts=n("div",{className:"run-code"},"▶ Run Code",-1),Ds=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -288,7 +288,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     art.loop = [5, 10];
     console.info(art.loop);
 });
-

Tip

To delete interval looping, just set loop to []

art.loop and art.option.loop aer two different things, please don't mix them up

autoHeight

  • Type: Setter/Getter
  • Parameter: Boolean

When the container has only width, this attribute can automatically calculate and set the height of the video. After it is set to true, it will only be executed once

`,5),ys=n("div",{className:"run-code"},"▶ Run Code",-1),Fs=s(`
js
var art = new Artplayer({
+

Tip

To delete interval looping, just set loop to []

art.loop and art.option.loop aer two different things, please don't mix them up

autoHeight ​

  • Type: Setter/Getter
  • Parameter: Boolean

When the container has only width, this attribute can automatically calculate and set the height of the video. After it is set to true, it will only be executed once

`,5),ys=n("div",{className:"run-code"},"▶ Run Code",-1),Fs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -300,7 +300,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
 art.on('resize', () => {
     art.autoHeight = true;
 });
-

提示

This attribute is useful when your container has only width but does not know the specific height. It can automatically calculate the height of the video, but you need to determine the time to set this attribute

attr

  • Type: Function
  • Parameter: String

Get and set the attributes of the video element dynamically

`,5),is=n("div",{className:"run-code"},"▶ Run Code",-1),As=s(`
js
var art = new Artplayer({
+

提示

This attribute is useful when your container has only width but does not know the specific height. It can automatically calculate the height of the video, but you need to determine the time to set this attribute

attr ​

  • Type: Function
  • Parameter: String

Get and set the attributes of the video element dynamically

`,5),is=n("div",{className:"run-code"},"▶ Run Code",-1),As=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -310,7 +310,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     art.attr('playsInline', true);
     console.info(art.attr('playsInline'));
 });
-

title

  • Type: Setter/Getter
  • Parameter: String

Get and set player titles dynamically

`,4),Cs=n("div",{className:"run-code"},"▶ Run Code",-1),ds=s(`
js
var art = new Artplayer({
+

title ​

  • Type: Setter/Getter
  • Parameter: String

Get and set player titles dynamically

`,4),Cs=n("div",{className:"run-code"},"▶ Run Code",-1),ds=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -320,7 +320,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     art.title = 'New Title';
     console.info(art.title);
 });
-

type

  • Type: Setter/Getter
  • Parameter: String

Get and set video types dynamically

`,4),us=n("div",{className:"run-code"},"▶ Run Code",-1),bs=s(`
js
var art = new Artplayer({
+

type ​

  • Type: Setter/Getter
  • Parameter: String

Get and set video types dynamically

`,4),us=n("div",{className:"run-code"},"▶ Run Code",-1),bs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -330,7 +330,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     art.type = 'm3u8';
     console.info(art.type);
 });
-

theme

  • Type: Setter/Getter
  • Parameter: String

Get and set player theme color dynamically

`,4),hs=n("div",{className:"run-code"},"▶ Run Code",-1),ms=s(`
js
var art = new Artplayer({
+

theme ​

  • Type: Setter/Getter
  • Parameter: String

Get and set player theme color dynamically

`,4),ms=n("div",{className:"run-code"},"▶ Run Code",-1),hs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -340,7 +340,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
     art.theme = '#000';
     console.info(art.theme);
 });
-

airplay

  • Type: Function

Enable airplay

`,4),_s=n("div",{className:"run-code"},"▶ Run Code",-1),gs=s(`
js
var art = new Artplayer({
+

airplay ​

  • Type: Function

Enable airplay

`,4),_s=n("div",{className:"run-code"},"▶ Run Code",-1),gs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -353,7 +353,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
         },
     ],
 });
-

loaded

  • Type: Getter

The proportion of video cache, with the range of [0, 1], is often used in conjunction with the video:timeupdate event

`,4),vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ts=s(`
js
var art = new Artplayer({
+

loaded ​

  • Type: Getter

The proportion of video cache, with the range of [0, 1], is often used in conjunction with the video:timeupdate event

`,4),vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ts=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -361,7 +361,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
 art.on('video:timeupdate', () => {
     console.info(art.loaded);
 });
-

played

  • Type: Getter

The proportion of video playback, with the range of [0, 1], is often used in conjunction with the video:timeupdate event

`,4),Es=n("div",{className:"run-code"},"▶ Run Code",-1),fs=s(`
js
var art = new Artplayer({
+

played ​

  • Type: Getter

The proportion of video playback, with the range of [0, 1], is often used in conjunction with the video:timeupdate event

`,4),Es=n("div",{className:"run-code"},"▶ Run Code",-1),Ss=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -369,26 +369,26 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Ws=JSON.
 art.on('video:timeupdate', () => {
     console.info(art.played);
 });
-

proxy

  • Type: Function

The proxy function of DOM event essentially proxies addEventListener and removeEventListener. When proxy is used to process the event, the player will also automatically destroy the event when it is destroyed

`,4),Ss=n("div",{className:"run-code"},"▶ Run Code",-1),ws=s(`
js
var container = document.querySelector('.artplayer-app');
+

proxy ​

  • Type: Function

The proxy function of DOM event essentially proxies addEventListener and removeEventListener. When proxy is used to process the event, the player will also automatically destroy the event when it is destroyed

`,4),fs=n("div",{className:"run-code"},"▶ Run Code",-1),Ps=s(`
js
var container = document.querySelector('.artplayer-app');
 
 var art = new Artplayer({
 	container: container,
 	url: '/assets/sample/video.mp4',
 });
-
+
 art.proxy(container, 'click', event => {
 	console.info(event);
 });
-

Tip

If you need some DOM events only exist in the life cycle of the player, we strongly recommend using this function to avoid memory leakage

query

  • Type: Function

The query function of DOM is similar to document.querySelector, but the queried object is limited to the current player, which can avoid errors of the same class name

`,5),ks=n("div",{className:"run-code"},"▶ Run Code",-1),Ps=s(`
js
var art = new Artplayer({
+

Tip

If you need some DOM events only exist in the life cycle of the player, we strongly recommend using this function to avoid memory leakage

query ​

  • Type: Function

The query function of DOM is similar to document.querySelector, but the queried object is limited to the current player, which can avoid errors of the same class name

`,5),ws=n("div",{className:"run-code"},"▶ Run Code",-1),ks=s(`
js
var art = new Artplayer({
 	container: '.artplayer-app',
 	url: '/assets/sample/video.mp4',
 });
 
 console.info(art.query('.art-video'));
-

video

  • Type: Element

Return the video element of the player

`,4),xs=n("div",{className:"run-code"},"▶ Run Code",-1),Ns=s(`
js
var art = new Artplayer({
+

video ​

  • Type: Element

Return the video element of the player

`,4),Ns=n("div",{className:"run-code"},"▶ Run Code",-1),Rs=s(`
js
var art = new Artplayer({
 	container: '.artplayer-app',
 	url: '/assets/sample/video.mp4',
 });
 
 console.info(art.video);
-
`,1),Rs=[o,r,c,t,D,y,F,i,A,C,d,u,b,h,m,_,g,v,T,E,f,S,w,k,P,x,N,R,I,V,j,G,q,B,z,U,W,L,O,H,$,M,Q,J,Y,K,X,Z,ss,ns,as,ls,ps,es,os,rs,cs,ts,Ds,ys,Fs,is,As,Cs,ds,us,bs,hs,ms,_s,gs,vs,Ts,Es,fs,Ss,ws,ks,Ps,xs,Ns];function Is(Vs,js,Gs,qs,Bs,zs){return p(),l("div",null,Rs)}const Ls=a(e,[["render",Is]]);export{Ws as __pageData,Ls as default}; +
`,1),qs=[e,r,c,t,D,y,F,i,A,C,d,u,b,m,h,_,g,v,T,E,S,f,P,w,k,N,R,q,I,V,j,x,G,B,z,U,W,L,O,H,$,M,Q,J,Y,K,X,Z,ss,ns,as,ls,ps,os,es,rs,cs,ts,Ds,ys,Fs,is,As,Cs,ds,us,bs,ms,hs,_s,gs,vs,Ts,Es,Ss,fs,Ps,ws,ks,Ns,Rs];function Is(Vs,js,xs,Gs,Bs,zs){return p(),l("div",null,qs)}const Ls=a(o,[["render",Is]]);export{Ws as __pageData,Ls as default}; diff --git a/docs/document/assets/en_advanced_property.md.2e3710aa.lean.js b/docs/document/assets/en_advanced_property.md.2e3710aa.lean.js new file mode 100644 index 000000000..60cca87da --- /dev/null +++ b/docs/document/assets/en_advanced_property.md.2e3710aa.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const Ws=JSON.parse('{"title":"Instance Property","description":"","frontmatter":{},"headers":[],"relativePath":"en/advanced/property.md","lastUpdated":1674271220000}'),o={name:"en/advanced/property.md"},e=s("",5),r=n("div",{className:"run-code"},"▶ Run Code",-1),c=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),y=n("div",{className:"run-code"},"▶ Run Code",-1),F=s("",4),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",4),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s("",4),u=n("div",{className:"run-code"},"▶ Run Code",-1),b=s("",4),m=n("div",{className:"run-code"},"▶ Run Code",-1),h=s("",4),_=n("div",{className:"run-code"},"▶ Run Code",-1),g=s("",4),v=n("div",{className:"run-code"},"▶ Run Code",-1),T=s("",5),E=n("div",{className:"run-code"},"▶ Run Code",-1),S=s("",5),f=n("div",{className:"run-code"},"▶ Run Code",-1),P=s("",4),w=n("div",{className:"run-code"},"▶ Run Code",-1),k=s("",4),N=n("div",{className:"run-code"},"▶ Run Code",-1),R=s("",4),q=n("div",{className:"run-code"},"▶ Run Code",-1),I=s("",5),V=n("div",{className:"run-code"},"▶ Run Code",-1),j=s("",4),x=n("div",{className:"run-code"},"▶ Run Code",-1),G=s("",4),B=n("div",{className:"run-code"},"▶ Run Code",-1),z=s("",4),U=n("div",{className:"run-code"},"▶ Run Code",-1),W=s("",5),L=n("div",{className:"run-code"},"▶ Run Code",-1),O=s("",4),H=n("div",{className:"run-code"},"▶ Run Code",-1),$=s("",5),M=n("div",{className:"run-code"},"▶ Run Code",-1),Q=s("",4),J=n("div",{className:"run-code"},"▶ Run Code",-1),Y=s("",4),K=n("div",{className:"run-code"},"▶ Run Code",-1),X=s("",4),Z=n("div",{className:"run-code"},"▶ Run Code",-1),ss=s("",4),ns=n("div",{className:"run-code"},"▶ Run Code",-1),as=s("",5),ls=n("div",{className:"run-code"},"▶ Run Code",-1),ps=s("",4),os=n("div",{className:"run-code"},"▶ Run Code",-1),es=s("",4),rs=n("div",{className:"run-code"},"▶ Run Code",-1),cs=s("",4),ts=n("div",{className:"run-code"},"▶ Run Code",-1),Ds=s("",5),ys=n("div",{className:"run-code"},"▶ Run Code",-1),Fs=s("",5),is=n("div",{className:"run-code"},"▶ Run Code",-1),As=s("",4),Cs=n("div",{className:"run-code"},"▶ Run Code",-1),ds=s("",4),us=n("div",{className:"run-code"},"▶ Run Code",-1),bs=s("",4),ms=n("div",{className:"run-code"},"▶ Run Code",-1),hs=s("",4),_s=n("div",{className:"run-code"},"▶ Run Code",-1),gs=s("",4),vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ts=s("",4),Es=n("div",{className:"run-code"},"▶ Run Code",-1),Ss=s("",4),fs=n("div",{className:"run-code"},"▶ Run Code",-1),Ps=s("",5),ws=n("div",{className:"run-code"},"▶ Run Code",-1),ks=s("",4),Ns=n("div",{className:"run-code"},"▶ Run Code",-1),Rs=s("",1),qs=[e,r,c,t,D,y,F,i,A,C,d,u,b,m,h,_,g,v,T,E,S,f,P,w,k,N,R,q,I,V,j,x,G,B,z,U,W,L,O,H,$,M,Q,J,Y,K,X,Z,ss,ns,as,ls,ps,os,es,rs,cs,ts,Ds,ys,Fs,is,As,Cs,ds,us,bs,ms,hs,_s,gs,vs,Ts,Es,Ss,fs,Ps,ws,ks,Ns,Rs];function Is(Vs,js,xs,Gs,Bs,zs){return p(),l("div",null,qs)}const Ls=a(o,[["render",Is]]);export{Ws as __pageData,Ls as default}; diff --git a/docs/document/assets/en_index.md.5adcaac7.lean.js b/docs/document/assets/en_index.md.5adcaac7.lean.js deleted file mode 100644 index 55ab61c47..000000000 --- a/docs/document/assets/en_index.md.5adcaac7.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{"title":"Install","description":"","frontmatter":{},"headers":[{"level":2,"title":"Install","slug":"install-1","link":"#install-1","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"Use","slug":"use","link":"#use","children":[]},{"level":2,"title":"Vue.js","slug":"vue-js","link":"#vue-js","children":[]},{"level":2,"title":"React.js","slug":"react-js","link":"#react-js","children":[]},{"level":2,"title":"Syntax hint","slug":"syntax-hint","link":"#syntax-hint","children":[]}],"relativePath":"en/index.md","lastUpdated":1677208560000}'),p={name:"en/index.md"},e=l("",23),o=[e];function t(r,c,y,i,F,D){return a(),n("div",null,o)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; diff --git a/docs/document/assets/en_index.md.5adcaac7.js b/docs/document/assets/en_index.md.f4d7ddba.js similarity index 84% rename from docs/document/assets/en_index.md.5adcaac7.js rename to docs/document/assets/en_index.md.f4d7ddba.js index 4355595aa..7d74ed36b 100644 --- a/docs/document/assets/en_index.md.5adcaac7.js +++ b/docs/document/assets/en_index.md.f4d7ddba.js @@ -1,16 +1,16 @@ -import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{"title":"Install","description":"","frontmatter":{},"headers":[{"level":2,"title":"Install","slug":"install-1","link":"#install-1","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"Use","slug":"use","link":"#use","children":[]},{"level":2,"title":"Vue.js","slug":"vue-js","link":"#vue-js","children":[]},{"level":2,"title":"React.js","slug":"react-js","link":"#react-js","children":[]},{"level":2,"title":"Syntax hint","slug":"syntax-hint","link":"#syntax-hint","children":[]}],"relativePath":"en/index.md","lastUpdated":1677208560000}'),p={name:"en/index.md"},e=l(`

Install

Install

bash
npm install artplayer
-
bash
yarn add artplayer
-
bash
pnpm add artplayer
-
html
<script src="path/to/artplayer.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
-
bash
https://unpkg.com/artplayer/dist/artplayer.js
-

Use

js
import Artplayer from 'artplayer';
+import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=JSON.parse('{"title":"Install","description":"","frontmatter":{},"headers":[],"relativePath":"en/index.md","lastUpdated":1677208560000}'),p={name:"en/index.md"},e=l(`

Install ​

Install ​

bash
npm install artplayer
+
bash
yarn add artplayer
+
bash
pnpm add artplayer
+
html
<script src="path/to/artplayer.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
+
bash
https://unpkg.com/artplayer/dist/artplayer.js
+

Use ​

js
import Artplayer from 'artplayer';
 
 const art = new Artplayer({
     container: '.artplayer-app',
     url: 'path/to/video.mp4',
 });
-
html
<html>
+
html
<html>
     <head>
         <title>ArtPlayer Demo</title>
         <meta charset="UTF-8" />
@@ -25,7 +25,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{
         <div class="artplayer-app"></div>
     </body>
 </html>
-

Tip

The size of the player depends on the size of the container, so your container must have a size

The following links can see more use examples

/packages/artplayer-template

Vue.js

vue
<template>
+

Tip

The size of the player depends on the size of the container, so your container must have a size

The following links can see more use examples

/packages/artplayer-template

Vue.js ​

vue
<template>
   <div ref="artRef"></div>
 </template>
 
@@ -61,7 +61,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{
   },
 };
 </script>
-
vue
<template>
+
vue
<template>
   <Artplayer @get-instance="getInstance" :option="option" :style="style" />
 </template>
 
@@ -91,7 +91,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{
   },
 };
 </script>
-

Tip

Modifying option directly in Vue.js will not change the player

React.js

jsx
import { useEffect, useRef } from 'react';
+

Tip

Modifying option directly in Vue.js will not change the player

React.js ​

jsx
import { useEffect, useRef } from 'react';
 import Artplayer from 'artplayer';
 
 export default function Player({ option, getInstance, ...rest }) {
@@ -116,7 +116,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{
 
     return <div ref={artRef} {...rest}></div>;
 }
-
jsx
import React from 'react';
+
jsx
import React from 'react';
 import Artplayer from './ArtPlayer.jsx';
 
 function App() {
@@ -138,17 +138,17 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{
 }
 
 export default App;
-

Tip

Modifying option directly in React.js will not change the player

Syntax hint

Sometimes your js file will lose the type prompt of TypeScript. At this time, you can manually import the type

Variable:

js
/**
+

Tip

Modifying option directly in React.js will not change the player

Syntax hint ​

Sometimes your js file will lose the type prompt of TypeScript. At this time, you can manually import the type

Variable:

js
/**
  * @type {import("artplayer")}
  */
 let art = null;
-

Parameters:

js
/**
+

Parameters:

js
/**
  * @param {import("artplayer")} art
  */
 function getInstance(art) {
   //
 }
-

Properties:

js
export default {
+

Properties:

js
export default {
   data() {
     return {
       /**
@@ -158,4 +158,4 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{
     }
   }
 }
-
`,23),o=[e];function t(r,c,y,i,F,D){return a(),n("div",null,o)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; +
`,23),o=[e];function t(r,c,y,F,i,D){return a(),n("div",null,o)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; diff --git a/docs/document/assets/en_index.md.f4d7ddba.lean.js b/docs/document/assets/en_index.md.f4d7ddba.lean.js new file mode 100644 index 000000000..d50955876 --- /dev/null +++ b/docs/document/assets/en_index.md.f4d7ddba.lean.js @@ -0,0 +1 @@ +import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=JSON.parse('{"title":"Install","description":"","frontmatter":{},"headers":[],"relativePath":"en/index.md","lastUpdated":1677208560000}'),p={name:"en/index.md"},e=l("",23),o=[e];function t(r,c,y,F,i,D){return a(),n("div",null,o)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; diff --git a/docs/document/assets/en_library_dash.md.6cfbdbae.lean.js b/docs/document/assets/en_library_dash.md.6cfbdbae.lean.js deleted file mode 100644 index 050b04565..000000000 --- a/docs/document/assets/en_library_dash.md.6cfbdbae.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as n,c as l,o as p,b as s,d as a,a as o}from"./app.77a2ba76.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/dash.md","lastUpdated":1676696783000}'),e={name:"en/library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,d,b,h){return p(),l("div",null,y)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/en_library_dash.md.6cfbdbae.js b/docs/document/assets/en_library_dash.md.c4b99211.js similarity index 85% rename from docs/document/assets/en_library_dash.md.6cfbdbae.js rename to docs/document/assets/en_library_dash.md.c4b99211.js index f64a64717..960f05cf9 100644 --- a/docs/document/assets/en_library_dash.md.6cfbdbae.js +++ b/docs/document/assets/en_library_dash.md.c4b99211.js @@ -1,4 +1,4 @@ -import{_ as n,c as l,o as p,b as s,d as a,a as o}from"./app.77a2ba76.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/dash.md","lastUpdated":1676696783000}'),e={name:"en/library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playMpd(video, url, art) {
+import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/dash.md","lastUpdated":1676696783000}'),e={name:"en/library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-label":'Permalink to "dash.js"'},"​")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playMpd(video, url, art) {
     if (dashjs.supportsMediaSource()) {
         const dash = dashjs.MediaPlayer().create();
         dash.initialize(video, url, art.option.autoplay);
@@ -24,4 +24,4 @@ import{_ as n,c as l,o as p,b as s,d as a,a as o}from"./app.77a2ba76.js";const m
 art.on('ready', () => {
     console.info(art.dash);
 });
-
`,1),y=[r,t,c,F];function D(i,A,C,d,b,h){return p(),l("div",null,y)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; +
`,1),y=[r,t,c,F];function D(A,i,C,d,b,h){return p(),l("div",null,y)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/en_library_dash.md.c4b99211.lean.js b/docs/document/assets/en_library_dash.md.c4b99211.lean.js new file mode 100644 index 000000000..9596ddbe9 --- /dev/null +++ b/docs/document/assets/en_library_dash.md.c4b99211.lean.js @@ -0,0 +1 @@ +import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/dash.md","lastUpdated":1676696783000}'),e={name:"en/library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-label":'Permalink to "dash.js"'},"​")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,d,b,h){return p(),l("div",null,y)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/en_library_flv.md.834c8dfb.js b/docs/document/assets/en_library_flv.md.6466c32b.js similarity index 86% rename from docs/document/assets/en_library_flv.md.834c8dfb.js rename to docs/document/assets/en_library_flv.md.6466c32b.js index 7ed7f250b..8dafd93b2 100644 --- a/docs/document/assets/en_library_flv.md.834c8dfb.js +++ b/docs/document/assets/en_library_flv.md.6466c32b.js @@ -1,4 +1,4 @@ -import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const f=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/flv.md","lastUpdated":1673692792000}'),e={name:"en/library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playFlv(video, url, art) {
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/flv.md","lastUpdated":1673692792000}'),e={name:"en/library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-label":'Permalink to "flv.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playFlv(video, url, art) {
     if (flvjs.isSupported()) {
         const flv = flvjs.createPlayer({ type: 'flv', url });
         flv.attachMediaElement(video);
diff --git a/docs/document/assets/en_library_flv.md.6466c32b.lean.js b/docs/document/assets/en_library_flv.md.6466c32b.lean.js
new file mode 100644
index 000000000..1d24ea465
--- /dev/null
+++ b/docs/document/assets/en_library_flv.md.6466c32b.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/flv.md","lastUpdated":1673692792000}'),e={name:"en/library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-label":'Permalink to "flv.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,b,d,u){return p(),l("div",null,y)}const h=a(e,[["render",D]]);export{f as __pageData,h as default};
diff --git a/docs/document/assets/en_library_flv.md.834c8dfb.lean.js b/docs/document/assets/en_library_flv.md.834c8dfb.lean.js
deleted file mode 100644
index 4c9b05bef..000000000
--- a/docs/document/assets/en_library_flv.md.834c8dfb.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const f=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/flv.md","lastUpdated":1673692792000}'),e={name:"en/library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,b,d,u){return p(),l("div",null,y)}const h=a(e,[["render",D]]);export{f as __pageData,h as default};
diff --git a/docs/document/assets/library_hls.md.39b2d4b8.js b/docs/document/assets/en_library_hls.md.9ff0b74e.js
similarity index 86%
rename from docs/document/assets/library_hls.md.39b2d4b8.js
rename to docs/document/assets/en_library_hls.md.9ff0b74e.js
index 2c28ecc03..4dfb63e6b 100644
--- a/docs/document/assets/library_hls.md.39b2d4b8.js
+++ b/docs/document/assets/en_library_hls.md.9ff0b74e.js
@@ -1,4 +1,4 @@
-import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/hls.md","lastUpdated":1673441101000}'),e={name:"library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playM3u8(video, url, art) {
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/hls.md","lastUpdated":1673692792000}'),e={name:"en/library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-label":'Permalink to "hls.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playM3u8(video, url, art) {
     if (Hls.isSupported()) {
         const hls = new Hls();
         hls.loadSource(url);
@@ -27,4 +27,4 @@ import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const m
 art.on('ready', () => {
     console.info(art.hls);
 });
-
`,1),y=[r,t,c,F];function D(i,A,C,b,d,h){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; +
`,1),y=[r,t,c,F];function D(i,A,C,b,h,u){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/en_library_hls.md.9ff0b74e.lean.js b/docs/document/assets/en_library_hls.md.9ff0b74e.lean.js new file mode 100644 index 000000000..32e4a8dad --- /dev/null +++ b/docs/document/assets/en_library_hls.md.9ff0b74e.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/hls.md","lastUpdated":1673692792000}'),e={name:"en/library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-label":'Permalink to "hls.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,b,h,u){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/en_library_hls.md.a49e2812.lean.js b/docs/document/assets/en_library_hls.md.a49e2812.lean.js deleted file mode 100644 index f91a7344d..000000000 --- a/docs/document/assets/en_library_hls.md.a49e2812.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/hls.md","lastUpdated":1673692792000}'),e={name:"en/library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,b,d,h){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/library_webtorrent.md.aada1832.js b/docs/document/assets/en_library_webtorrent.md.96dd8119.js similarity index 86% rename from docs/document/assets/library_webtorrent.md.aada1832.js rename to docs/document/assets/en_library_webtorrent.md.96dd8119.js index 7fd6e73ea..a2c7bc806 100644 --- a/docs/document/assets/library_webtorrent.md.aada1832.js +++ b/docs/document/assets/en_library_webtorrent.md.96dd8119.js @@ -1,4 +1,4 @@ -import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const h=JSON.parse('{"title":"webtorrent.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/webtorrent.md","lastUpdated":1676820444000}'),e={name:"library/webtorrent.md"},r=s("h1",{id:"webtorrent-js",tabindex:"-1"},[n("webtorrent.js "),s("a",{class:"header-anchor",href:"#webtorrent-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/webtorrent/webtorrent",target:"_blank",rel:"noreferrer"},"https://github.com/webtorrent/webtorrent")],-1),c=s("div",{className:"run-code","data-libs":"https://cdn.jsdelivr.net/npm/webtorrent@2.0.13/index.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playTorrent(video, url, art) {
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"webtorrent.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/webtorrent.md","lastUpdated":1676820444000}'),e={name:"en/library/webtorrent.md"},r=s("h1",{id:"webtorrent-js",tabindex:"-1"},[n("webtorrent.js "),s("a",{class:"header-anchor",href:"#webtorrent-js","aria-label":'Permalink to "webtorrent.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/webtorrent/webtorrent",target:"_blank",rel:"noreferrer"},"https://github.com/webtorrent/webtorrent")],-1),c=s("div",{className:"run-code","data-libs":"https://cdn.jsdelivr.net/npm/webtorrent@2.0.13/index.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playTorrent(video, url, art) {
     const torrent = new WebTorrent();
     torrent.add(url, function (torrent) {
         var file = torrent.files[0];
@@ -21,7 +21,7 @@ import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const h
         torrent: playTorrent,
     },
 });
-
+
 art.on('ready', () => {
     art.video.controls = false;
     console.info(art.torrent);
diff --git a/docs/document/assets/en_library_webtorrent.md.96dd8119.lean.js b/docs/document/assets/en_library_webtorrent.md.96dd8119.lean.js
new file mode 100644
index 000000000..7d0c1ad8e
--- /dev/null
+++ b/docs/document/assets/en_library_webtorrent.md.96dd8119.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"webtorrent.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/webtorrent.md","lastUpdated":1676820444000}'),e={name:"en/library/webtorrent.md"},r=s("h1",{id:"webtorrent-js",tabindex:"-1"},[n("webtorrent.js "),s("a",{class:"header-anchor",href:"#webtorrent-js","aria-label":'Permalink to "webtorrent.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/webtorrent/webtorrent",target:"_blank",rel:"noreferrer"},"https://github.com/webtorrent/webtorrent")],-1),c=s("div",{className:"run-code","data-libs":"https://cdn.jsdelivr.net/npm/webtorrent@2.0.13/index.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,b,d,m){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{h as __pageData,_ as default};
diff --git a/docs/document/assets/en_library_webtorrent.md.ea918503.lean.js b/docs/document/assets/en_library_webtorrent.md.ea918503.lean.js
deleted file mode 100644
index 70a007261..000000000
--- a/docs/document/assets/en_library_webtorrent.md.ea918503.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const h=JSON.parse('{"title":"webtorrent.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/webtorrent.md","lastUpdated":1676820444000}'),e={name:"en/library/webtorrent.md"},r=s("h1",{id:"webtorrent-js",tabindex:"-1"},[n("webtorrent.js "),s("a",{class:"header-anchor",href:"#webtorrent-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/webtorrent/webtorrent",target:"_blank",rel:"noreferrer"},"https://github.com/webtorrent/webtorrent")],-1),c=s("div",{className:"run-code","data-libs":"https://cdn.jsdelivr.net/npm/webtorrent@2.0.13/index.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,b,d,m){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{h as __pageData,_ as default};
diff --git a/docs/document/assets/en_plugin_ads.md.77060a62.lean.js b/docs/document/assets/en_plugin_ads.md.77060a62.lean.js
deleted file mode 100644
index 40a372e55..000000000
--- a/docs/document/assets/en_plugin_ads.md.77060a62.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as a,c as n,o as l,a as s,b as p}from"./app.77a2ba76.js";const u=JSON.parse('{"title":"视频广告","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]}],"relativePath":"en/plugin/ads.md","lastUpdated":1673692792000}'),e={name:"en/plugin/ads.md"},o=s("",8),r=p("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-ads/index.js"}," ▶ Run Code ",-1),t=s("",1),c=[o,r,t];function i(D,y,F,d,C,b){return l(),n("div",null,c)}const m=a(e,[["render",i]]);export{u as __pageData,m as default};
diff --git a/docs/document/assets/en_plugin_ads.md.77060a62.js b/docs/document/assets/en_plugin_ads.md.c3f787ec.js
similarity index 73%
rename from docs/document/assets/en_plugin_ads.md.77060a62.js
rename to docs/document/assets/en_plugin_ads.md.c3f787ec.js
index 3ec6dc662..b0fedefb3 100644
--- a/docs/document/assets/en_plugin_ads.md.77060a62.js
+++ b/docs/document/assets/en_plugin_ads.md.c3f787ec.js
@@ -1,10 +1,10 @@
-import{_ as a,c as n,o as l,a as s,b as p}from"./app.77a2ba76.js";const u=JSON.parse('{"title":"视频广告","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]}],"relativePath":"en/plugin/ads.md","lastUpdated":1673692792000}'),e={name:"en/plugin/ads.md"},o=s(`

视频广告

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-ads
-
bash
yarn add artplayer-plugin-ads
-
bash
pnpm add artplayer-plugin-ads
-
html
<script src="path/to/artplayer-plugin-ads.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
-
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
-

使用

`,8),r=p("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-ads/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
+import{_ as a,c as n,o as l,U as s,x as p}from"./chunks/framework.75837252.js";const A=JSON.parse('{"title":"视频广告","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/ads.md","lastUpdated":1673692792000}'),e={name:"en/plugin/ads.md"},o=s(`

视频广告 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-ads
+
bash
yarn add artplayer-plugin-ads
+
bash
pnpm add artplayer-plugin-ads
+
html
<script src="path/to/artplayer-plugin-ads.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
+
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
+

使用 ​

`,8),r=p("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-ads/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
@@ -52,4 +52,4 @@ import{_ as a,c as n,o as l,a as s,b as p}from"./app.77a2ba76.js";const u=JSON.p
 art.on('artplayerPluginAds:skip', (ads) => {
     console.info(ads);
 });
-
`,1),c=[o,r,t];function i(D,y,F,d,C,b){return l(),n("div",null,c)}const m=a(e,[["render",i]]);export{u as __pageData,m as default}; +
`,1),c=[o,r,t];function i(y,D,F,C,b,d){return l(),n("div",null,c)}const m=a(e,[["render",i]]);export{A as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_ads.md.c3f787ec.lean.js b/docs/document/assets/en_plugin_ads.md.c3f787ec.lean.js new file mode 100644 index 000000000..31dcbfb94 --- /dev/null +++ b/docs/document/assets/en_plugin_ads.md.c3f787ec.lean.js @@ -0,0 +1 @@ +import{_ as a,c as n,o as l,U as s,x as p}from"./chunks/framework.75837252.js";const A=JSON.parse('{"title":"视频广告","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/ads.md","lastUpdated":1673692792000}'),e={name:"en/plugin/ads.md"},o=s("",8),r=p("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-ads/index.js"}," ▶ Run Code ",-1),t=s("",1),c=[o,r,t];function i(y,D,F,C,b,d){return l(),n("div",null,c)}const m=a(e,[["render",i]]);export{A as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_control-ui.md.5b1a0268.lean.js b/docs/document/assets/en_plugin_control-ui.md.5b1a0268.lean.js deleted file mode 100644 index d2630f12c..000000000 --- a/docs/document/assets/en_plugin_control-ui.md.5b1a0268.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as n,c as l,o as p,a as s,b as a}from"./app.77a2ba76.js";const m=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]},{"level":2,"title":"enable","slug":"enable","link":"#enable","children":[]}],"relativePath":"en/plugin/control-ui.md","lastUpdated":1673692792000}'),e={name:"en/plugin/control-ui.md"},o=s("",8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s("",4),c=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),i=s("",1),y=[o,r,t,c,i];function D(d,F,C,b,u,A){return p(),l("div",null,y)}const g=n(e,[["render",D]]);export{m as __pageData,g as default}; diff --git a/docs/document/assets/en_plugin_control-ui.md.5b1a0268.js b/docs/document/assets/en_plugin_control-ui.md.ca5cba45.js similarity index 62% rename from docs/document/assets/en_plugin_control-ui.md.5b1a0268.js rename to docs/document/assets/en_plugin_control-ui.md.ca5cba45.js index b8b17ab67..e475ea8d3 100644 --- a/docs/document/assets/en_plugin_control-ui.md.5b1a0268.js +++ b/docs/document/assets/en_plugin_control-ui.md.ca5cba45.js @@ -1,10 +1,10 @@ -import{_ as n,c as l,o as p,a as s,b as a}from"./app.77a2ba76.js";const m=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]},{"level":2,"title":"enable","slug":"enable","link":"#enable","children":[]}],"relativePath":"en/plugin/control-ui.md","lastUpdated":1673692792000}'),e={name:"en/plugin/control-ui.md"},o=s(`

控制器皮肤

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-control
-
bash
yarn add artplayer-plugin-control
-
bash
pnpm add artplayer-plugin-control
-
html
<script src="path/to/artplayer-plugin-control.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
-
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js
-

使用

`,8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
+import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/control-ui.md","lastUpdated":1673692792000}'),e={name:"en/plugin/control-ui.md"},o=s(`

控制器皮肤 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-control
+
bash
yarn add artplayer-plugin-control
+
bash
pnpm add artplayer-plugin-control
+
html
<script src="path/to/artplayer-plugin-control.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
+
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js
+

使用 ​

`,8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -13,7 +13,7 @@ import{_ as n,c as l,o as p,a as s,b as a}from"./app.77a2ba76.js";const m=JSON.p
         artplayerPluginControl(),
     ],
 });
-

enable

  • Type: Getter/Setter
  • Parameter: Boolean

是否启用新的控制器皮肤

`,4),c=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),i=s(`
js
var art = new Artplayer({
+

enable ​

  • Type: Getter/Setter
  • Parameter: Boolean

是否启用新的控制器皮肤

`,4),c=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),i=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -32,4 +32,4 @@ import{_ as n,c as l,o as p,a as s,b as a}from"./app.77a2ba76.js";const m=JSON.p
         artplayerPluginControl(),
     ],
 });
-
`,1),y=[o,r,t,c,i];function D(d,F,C,b,u,A){return p(),l("div",null,y)}const g=n(e,[["render",D]]);export{m as __pageData,g as default}; +
`,1),y=[o,r,t,c,i];function D(F,C,d,b,u,A){return p(),l("div",null,y)}const g=n(e,[["render",D]]);export{h as __pageData,g as default}; diff --git a/docs/document/assets/en_plugin_control-ui.md.ca5cba45.lean.js b/docs/document/assets/en_plugin_control-ui.md.ca5cba45.lean.js new file mode 100644 index 000000000..f3faff5bd --- /dev/null +++ b/docs/document/assets/en_plugin_control-ui.md.ca5cba45.lean.js @@ -0,0 +1 @@ +import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/control-ui.md","lastUpdated":1673692792000}'),e={name:"en/plugin/control-ui.md"},o=s("",8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s("",4),c=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),i=s("",1),y=[o,r,t,c,i];function D(F,C,d,b,u,A){return p(),l("div",null,y)}const g=n(e,[["render",D]]);export{h as __pageData,g as default}; diff --git a/docs/document/assets/en_plugin_dash-quality.md.1e60b52d.js b/docs/document/assets/en_plugin_dash-quality.md.1e60b52d.js deleted file mode 100644 index e01fc42b5..000000000 --- a/docs/document/assets/en_plugin_dash-quality.md.1e60b52d.js +++ /dev/null @@ -1,7 +0,0 @@ -import{_ as a,c as s,o as e,a as n}from"./app.77a2ba76.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]}],"relativePath":"en/plugin/dash-quality.md","lastUpdated":1676696783000}'),l={name:"en/plugin/dash-quality.md"},p=n(`

Dash 画质

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-dash-quality
-
bash
yarn add artplayer-plugin-dash-quality
-
bash
pnpm add artplayer-plugin-dash-quality
-
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
-
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
-
`,7),t=[p];function i(r,d,o,c,h,u){return e(),s("div",null,t)}const m=a(l,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_dash-quality.md.1e60b52d.lean.js b/docs/document/assets/en_plugin_dash-quality.md.1e60b52d.lean.js deleted file mode 100644 index f41ba6380..000000000 --- a/docs/document/assets/en_plugin_dash-quality.md.1e60b52d.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as s,o as e,a as n}from"./app.77a2ba76.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]}],"relativePath":"en/plugin/dash-quality.md","lastUpdated":1676696783000}'),l={name:"en/plugin/dash-quality.md"},p=n("",7),t=[p];function i(r,d,o,c,h,u){return e(),s("div",null,t)}const m=a(l,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_dash-quality.md.a385175c.js b/docs/document/assets/en_plugin_dash-quality.md.a385175c.js new file mode 100644 index 000000000..227ee7e3e --- /dev/null +++ b/docs/document/assets/en_plugin_dash-quality.md.a385175c.js @@ -0,0 +1,7 @@ +import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/dash-quality.md","lastUpdated":1676696783000}'),n={name:"en/plugin/dash-quality.md"},p=l(`

Dash 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-dash-quality
+
bash
yarn add artplayer-plugin-dash-quality
+
bash
pnpm add artplayer-plugin-dash-quality
+
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
+
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
+
`,7),t=[p];function i(r,o,c,d,u,h){return e(),s("div",null,t)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_dash-quality.md.a385175c.lean.js b/docs/document/assets/en_plugin_dash-quality.md.a385175c.lean.js new file mode 100644 index 000000000..c3e110792 --- /dev/null +++ b/docs/document/assets/en_plugin_dash-quality.md.a385175c.lean.js @@ -0,0 +1 @@ +import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/dash-quality.md","lastUpdated":1676696783000}'),n={name:"en/plugin/dash-quality.md"},p=l("",7),t=[p];function i(r,o,c,d,u,h){return e(),s("div",null,t)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_hls-quality.md.393144b1.js b/docs/document/assets/en_plugin_hls-quality.md.393144b1.js deleted file mode 100644 index 208aea308..000000000 --- a/docs/document/assets/en_plugin_hls-quality.md.393144b1.js +++ /dev/null @@ -1,7 +0,0 @@ -import{_ as a,c as s,o as e,a as l}from"./app.77a2ba76.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]}],"relativePath":"en/plugin/hls-quality.md","lastUpdated":1673692792000}'),n={name:"en/plugin/hls-quality.md"},p=l(`

HLS 画质

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-hls-quality
-
bash
yarn add artplayer-plugin-hls-quality
-
bash
pnpm add artplayer-plugin-hls-quality
-
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
-
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
-
`,7),t=[p];function i(r,o,c,d,h,u){return e(),s("div",null,t)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_hls-quality.md.393144b1.lean.js b/docs/document/assets/en_plugin_hls-quality.md.393144b1.lean.js deleted file mode 100644 index 56f703150..000000000 --- a/docs/document/assets/en_plugin_hls-quality.md.393144b1.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as s,o as e,a as l}from"./app.77a2ba76.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]}],"relativePath":"en/plugin/hls-quality.md","lastUpdated":1673692792000}'),n={name:"en/plugin/hls-quality.md"},p=l("",7),t=[p];function i(r,o,c,d,h,u){return e(),s("div",null,t)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_hls-quality.md.d9fa6602.js b/docs/document/assets/en_plugin_hls-quality.md.d9fa6602.js new file mode 100644 index 000000000..dbb6d8850 --- /dev/null +++ b/docs/document/assets/en_plugin_hls-quality.md.d9fa6602.js @@ -0,0 +1,7 @@ +import{_ as a,c as s,o as l,U as e}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/hls-quality.md","lastUpdated":1673692792000}'),n={name:"en/plugin/hls-quality.md"},p=e(`

HLS 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-hls-quality
+
bash
yarn add artplayer-plugin-hls-quality
+
bash
pnpm add artplayer-plugin-hls-quality
+
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
+
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
+
`,7),t=[p];function i(r,o,c,d,u,b){return l(),s("div",null,t)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_hls-quality.md.d9fa6602.lean.js b/docs/document/assets/en_plugin_hls-quality.md.d9fa6602.lean.js new file mode 100644 index 000000000..57d730fdb --- /dev/null +++ b/docs/document/assets/en_plugin_hls-quality.md.d9fa6602.lean.js @@ -0,0 +1 @@ +import{_ as a,c as s,o as l,U as e}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/hls-quality.md","lastUpdated":1673692792000}'),n={name:"en/plugin/hls-quality.md"},p=e("",7),t=[p];function i(r,o,c,d,u,b){return l(),s("div",null,t)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_iframe.md.59ae4049.lean.js b/docs/document/assets/en_plugin_iframe.md.59ae4049.lean.js deleted file mode 100644 index a8a398da5..000000000 --- a/docs/document/assets/en_plugin_iframe.md.59ae4049.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{"title":"Iframe 控制","description":"","frontmatter":{},"headers":[{"level":2,"title":"说明","slug":"说明","link":"#说明","children":[]},{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]},{"level":2,"title":"index.html 接口","slug":"index-html-接口","link":"#index-html-接口","children":[{"level":3,"title":"commit","slug":"commit","link":"#commit","children":[]},{"level":3,"title":"message","slug":"message","link":"#message","children":[]},{"level":3,"title":"destroy","slug":"destroy","link":"#destroy","children":[]}]},{"level":2,"title":"iframe.html 接口","slug":"iframe-html-接口","link":"#iframe-html-接口","children":[{"level":3,"title":"inject","slug":"inject","link":"#inject","children":[]},{"level":3,"title":"postMessage","slug":"postmessage","link":"#postmessage","children":[]}]},{"level":2,"title":"例子","slug":"例子","link":"#例子","children":[]}],"relativePath":"en/plugin/iframe.md","lastUpdated":1673692792000}'),p={name:"en/plugin/iframe.md"},e=l("",32),o=[e];function r(t,c,F,D,y,i){return a(),n("div",null,o)}const A=s(p,[["render",r]]);export{b as __pageData,A as default}; diff --git a/docs/document/assets/plugin_iframe.md.c3122371.js b/docs/document/assets/en_plugin_iframe.md.734770a6.js similarity index 82% rename from docs/document/assets/plugin_iframe.md.c3122371.js rename to docs/document/assets/en_plugin_iframe.md.734770a6.js index 29ee8dd05..094e5d4fc 100644 --- a/docs/document/assets/plugin_iframe.md.c3122371.js +++ b/docs/document/assets/en_plugin_iframe.md.734770a6.js @@ -1,10 +1,10 @@ -import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{"title":"Iframe 控制","description":"","frontmatter":{},"headers":[{"level":2,"title":"说明","slug":"说明","link":"#说明","children":[]},{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]},{"level":2,"title":"index.html 接口","slug":"index-html-接口","link":"#index-html-接口","children":[{"level":3,"title":"commit","slug":"commit","link":"#commit","children":[]},{"level":3,"title":"message","slug":"message","link":"#message","children":[]},{"level":3,"title":"destroy","slug":"destroy","link":"#destroy","children":[]}]},{"level":2,"title":"iframe.html 接口","slug":"iframe-html-接口","link":"#iframe-html-接口","children":[{"level":3,"title":"inject","slug":"inject","link":"#inject","children":[]},{"level":3,"title":"postMessage","slug":"postmessage","link":"#postmessage","children":[]}]},{"level":2,"title":"例子","slug":"例子","link":"#例子","children":[]}],"relativePath":"plugin/iframe.md","lastUpdated":1673665918000}'),p={name:"plugin/iframe.md"},e=l(`

Iframe 控制

说明

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-iframe
-
bash
yarn add artplayer-plugin-iframe
-
bash
pnpm add artplayer-plugin-iframe
-
html
<script src="path/to/artplayer-plugin-iframe.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
-
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
-

使用

html
<!DOCTYPE html>
+import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const b=JSON.parse('{"title":"Iframe 控制","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/iframe.md","lastUpdated":1673692792000}'),p={name:"en/plugin/iframe.md"},o=l(`

Iframe 控制 ​

说明 ​

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-iframe
+
bash
yarn add artplayer-plugin-iframe
+
bash
pnpm add artplayer-plugin-iframe
+
html
<script src="path/to/artplayer-plugin-iframe.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
+
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
+

使用 ​

html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -31,7 +31,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
         </script>
     </body>
 </html>
-
html
<!DOCTYPE html>
+
html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -56,7 +56,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
         </script>
     </body>
 </html>
-

index.html 接口

commit

从 index.html 将消息推送到 iframe.html,该函数将在 iframe.html 内部运行,同时它也能用于异步获取 iframe.html 里的值

js
iframe.commit(() => {
+

index.html 接口 ​

commit ​

从 index.html 将消息推送到 iframe.html,该函数将在 iframe.html 内部运行,同时它也能用于异步获取 iframe.html 里的值

js
iframe.commit(() => {
     var art = new Artplayer({
         container: '.artplayer-app',
         url: 'path/to/video.mp4',
@@ -81,12 +81,12 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
         }, 1000);
     });
 })();
-

message

在 index.html 接收来自 iframe.html 的消息

js
iframe.message((event) => {
+

message ​

在 index.html 接收来自 iframe.html 的消息

js
iframe.message((event) => {
     console.info(event);
 });
-

destroy

销毁后 index.html 无法与 iframe.html 通信

js
iframe.destroy();
-

iframe.html 接口

提示

iframe.html 接口 只能运行在 iframe.html 里

inject

注入脚本,接收来自 index.html 的消息

js
ArtplayerPluginIframe.inject();
-

postMessage

将消息推送到 index.html

js
iframe.message((event) => {
+

destroy ​

销毁后 index.html 无法与 iframe.html 通信

js
iframe.destroy();
+

iframe.html 接口 ​

提示

iframe.html 接口 只能运行在 iframe.html 里

inject ​

注入脚本,接收来自 index.html 的消息

js
ArtplayerPluginIframe.inject();
+

postMessage ​

将消息推送到 index.html

js
iframe.message((event) => {
     console.info(event);
 });
 
@@ -96,7 +96,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
         data: art.currentTime,
     });
 });
-

例子

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html

+

例子 ​

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html

 <!DOCTYPE html>
 <html>
     <head>
@@ -119,8 +119,9 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
             }
         </style>
         <script>
+            const $iframe = document.querySelector('#iframe');
             const iframe = new ArtplayerPluginIframe({
-                iframe: document.querySelector('#iframe'),
+                iframe: $iframe,
                 url: 'path/to/iframe.html',
             });
 
@@ -155,7 +156,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
     </body>
 </html>
 
-
html

+
html

 <!DOCTYPE html>
 <html>
     <head>
@@ -181,4 +182,4 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
     </body>
 </html>
 
-
`,32),o=[e];function r(t,c,F,D,y,i){return a(),n("div",null,o)}const A=s(p,[["render",r]]);export{b as __pageData,A as default}; +
`,32),e=[o];function r(t,c,F,D,y,i){return a(),n("div",null,e)}const A=s(p,[["render",r]]);export{b as __pageData,A as default}; diff --git a/docs/document/assets/en_plugin_iframe.md.734770a6.lean.js b/docs/document/assets/en_plugin_iframe.md.734770a6.lean.js new file mode 100644 index 000000000..8bea172af --- /dev/null +++ b/docs/document/assets/en_plugin_iframe.md.734770a6.lean.js @@ -0,0 +1 @@ +import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const b=JSON.parse('{"title":"Iframe 控制","description":"","frontmatter":{},"headers":[],"relativePath":"en/plugin/iframe.md","lastUpdated":1673692792000}'),p={name:"en/plugin/iframe.md"},o=l("",32),e=[o];function r(t,c,F,D,y,i){return a(),n("div",null,e)}const A=s(p,[["render",r]]);export{b as __pageData,A as default}; diff --git a/docs/document/assets/en_start_component.md.bd02e1ef.js b/docs/document/assets/en_start_component.md.4a0a1f6f.js similarity index 88% rename from docs/document/assets/en_start_component.md.bd02e1ef.js rename to docs/document/assets/en_start_component.md.4a0a1f6f.js index ff078b8ca..1d7b67448 100644 --- a/docs/document/assets/en_start_component.md.bd02e1ef.js +++ b/docs/document/assets/en_start_component.md.4a0a1f6f.js @@ -1,4 +1,4 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.parse('{"title":"Component","description":"","frontmatter":{},"headers":[{"level":2,"title":"layers","slug":"layers","link":"#layers","children":[]},{"level":2,"title":"controls","slug":"controls","link":"#controls","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]}],"relativePath":"en/start/component.md","lastUpdated":1674028264000}'),o={name:"en/start/component.md"},e=s('

Component

The component configuration mentioned here mainly refers to three common configurations: layers, controls and contextmenu:

PropertyTypeDescribe
disableBooleanWhether to disable components
nameStringComponent unique name, used to mark the class name
indexNumberComponent index, used to display the priority of
htmlString, ElementDOM element of component
styleObjectComponent Style Object
clickFunctionComponent click event
mountedFunctionTriggered after the component is mounted
tooltipStringPrompt text for component

Tip

  • The current component can only be added, not destroyed
  • Use the 'name' option to quickly obtain the 'DOM' element of a component
  • The order in which components appear can be controlled through the 'index' option

layers

Add a layer during instantiation, such as logo or advertisement

',6),t=n("div",{className:"run-code"},"▶ Run Code",-1),c=s(`
js
var img = '/assets/sample/layer.png';
+import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const T=JSON.parse('{"title":"Component","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/component.md","lastUpdated":1674028264000}'),o={name:"en/start/component.md"},e=s('

Component ​

The component configuration mentioned here mainly refers to three common configurations: layers, controls and contextmenu:

PropertyTypeDescribe
disableBooleanWhether to disable components
nameStringComponent unique name, used to mark the class name
indexNumberComponent index, used to display the priority of
htmlString, ElementDOM element of component
styleObjectComponent Style Object
clickFunctionComponent click event
mountedFunctionTriggered after the component is mounted
tooltipStringPrompt text for component

Tip

  • The current component can only be added, not destroyed
  • Use the 'name' option to quickly obtain the 'DOM' element of a component
  • The order in which components appear can be controlled through the 'index' option

layers ​

Add a layer during instantiation, such as logo or advertisement

',6),t=n("div",{className:"run-code"},"▶ Run Code",-1),c=s(`
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -23,7 +23,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.p
 });
 
 console.info(art.layers.potser);
-

You can also add a layer after instantiation

`,2),r=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var img = '/assets/sample/layer.png';
+

You can also add a layer after instantiation

`,2),r=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -47,7 +47,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.p
 });
 
 console.info(art.layers.potser);
-

controls

Add a control during instantiation

There are three additional options for controls

  • position: left and right positions of control controller
  • selector: Object array of selection list
  • onSelect: Function triggered when an element of the selection list is clicked
`,4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
+

controls ​

Add a control during instantiation

There are three additional options for controls

  • position: left and right positions of control controller
  • selector: Object array of selection list
  • onSelect: Function triggered when an element of the selection list is clicked
`,4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -90,7 +90,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.p
 
 console.info(art.controls['your-button']);
 console.info(art.controls.subtitle);
-

You can also add a control after instantiation

js
var art = new Artplayer({
+

You can also add a control after instantiation

js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -111,9 +111,9 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.p
         console.info('mounted', args);
     },
 });
-
+
 console.info(art.controls.button1);
-

contextmenu

Add a contextmenu during instantiation

`,5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer({
+

contextmenu ​

Add a contextmenu during instantiation

`,5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -129,7 +129,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.p
 });
 
 console.info(art.contextmenu['your-menu']);
-

You can also add a contextmenu after instantiation

`,2),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer({
+

You can also add a contextmenu after instantiation

`,2),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
diff --git a/docs/document/assets/en_start_component.md.4a0a1f6f.lean.js b/docs/document/assets/en_start_component.md.4a0a1f6f.lean.js
new file mode 100644
index 000000000..5f8b4ebf5
--- /dev/null
+++ b/docs/document/assets/en_start_component.md.4a0a1f6f.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const T=JSON.parse('{"title":"Component","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/component.md","lastUpdated":1674028264000}'),o={name:"en/start/component.md"},e=s("",6),t=n("div",{className:"run-code"},"▶ Run Code",-1),c=s("",2),r=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",2),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s("",1),b=[e,t,c,r,D,F,y,i,A,C,d];function h(u,m,g,_,E,f){return p(),l("div",null,b)}const x=a(o,[["render",h]]);export{T as __pageData,x as default};
diff --git a/docs/document/assets/en_start_component.md.bd02e1ef.lean.js b/docs/document/assets/en_start_component.md.bd02e1ef.lean.js
deleted file mode 100644
index c0096bfcf..000000000
--- a/docs/document/assets/en_start_component.md.bd02e1ef.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.parse('{"title":"Component","description":"","frontmatter":{},"headers":[{"level":2,"title":"layers","slug":"layers","link":"#layers","children":[]},{"level":2,"title":"controls","slug":"controls","link":"#controls","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]}],"relativePath":"en/start/component.md","lastUpdated":1674028264000}'),o={name:"en/start/component.md"},e=s("",6),t=n("div",{className:"run-code"},"▶ Run Code",-1),c=s("",2),r=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",2),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s("",1),b=[e,t,c,r,D,F,y,i,A,C,d];function h(u,m,g,_,E,f){return p(),l("div",null,b)}const x=a(o,[["render",h]]);export{T as __pageData,x as default};
diff --git a/docs/document/assets/en_start_option.md.eb3ddacd.js b/docs/document/assets/en_start_option.md.725aa586.js
similarity index 76%
rename from docs/document/assets/en_start_option.md.eb3ddacd.js
rename to docs/document/assets/en_start_option.md.725aa586.js
index 99c34e3ba..738904796 100644
--- a/docs/document/assets/en_start_option.md.eb3ddacd.js
+++ b/docs/document/assets/en_start_option.md.725aa586.js
@@ -1,32 +1,32 @@
-import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.parse('{"title":"Option","description":"","frontmatter":{},"headers":[{"level":2,"title":"container","slug":"container","link":"#container","children":[]},{"level":2,"title":"url","slug":"url","link":"#url","children":[]},{"level":2,"title":"id","slug":"id","link":"#id","children":[]},{"level":2,"title":"onReady","slug":"onready","link":"#onready","children":[]},{"level":2,"title":"poster","slug":"poster","link":"#poster","children":[]},{"level":2,"title":"title","slug":"title","link":"#title","children":[]},{"level":2,"title":"theme","slug":"theme","link":"#theme","children":[]},{"level":2,"title":"volume","slug":"volume","link":"#volume","children":[]},{"level":2,"title":"isLive","slug":"islive","link":"#islive","children":[]},{"level":2,"title":"muted","slug":"muted","link":"#muted","children":[]},{"level":2,"title":"autoplay","slug":"autoplay","link":"#autoplay","children":[]},{"level":2,"title":"autoSize","slug":"autosize","link":"#autosize","children":[]},{"level":2,"title":"autoMini","slug":"automini","link":"#automini","children":[]},{"level":2,"title":"loop","slug":"loop","link":"#loop","children":[]},{"level":2,"title":"flip","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"playbackRate","slug":"playbackrate","link":"#playbackrate","children":[]},{"level":2,"title":"aspectRatio","slug":"aspectratio","link":"#aspectratio","children":[]},{"level":2,"title":"screenshot","slug":"screenshot","link":"#screenshot","children":[]},{"level":2,"title":"setting","slug":"setting","link":"#setting","children":[]},{"level":2,"title":"hotkey","slug":"hotkey","link":"#hotkey","children":[]},{"level":2,"title":"pip","slug":"pip","link":"#pip","children":[]},{"level":2,"title":"mutex","slug":"mutex","link":"#mutex","children":[]},{"level":2,"title":"fullscreen","slug":"fullscreen","link":"#fullscreen","children":[]},{"level":2,"title":"fullscreenWeb","slug":"fullscreenweb","link":"#fullscreenweb","children":[]},{"level":2,"title":"subtitleOffset","slug":"subtitleoffset","link":"#subtitleoffset","children":[]},{"level":2,"title":"miniProgressBar","slug":"miniprogressbar","link":"#miniprogressbar","children":[]},{"level":2,"title":"useSSR","slug":"usessr","link":"#usessr","children":[]},{"level":2,"title":"playsInline","slug":"playsinline","link":"#playsinline","children":[]},{"level":2,"title":"layers","slug":"layers","link":"#layers","children":[]},{"level":2,"title":"settings","slug":"settings","link":"#settings","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"controls","slug":"controls","link":"#controls","children":[]},{"level":2,"title":"quality","slug":"quality","link":"#quality","children":[]},{"level":2,"title":"highlight","slug":"highlight","link":"#highlight","children":[]},{"level":2,"title":"plugins","slug":"plugins","link":"#plugins","children":[]},{"level":2,"title":"whitelist","slug":"whitelist","link":"#whitelist","children":[]},{"level":2,"title":"thumbnails","slug":"thumbnails","link":"#thumbnails","children":[]},{"level":2,"title":"subtitle","slug":"subtitle","link":"#subtitle","children":[]},{"level":2,"title":"moreVideoAttr","slug":"morevideoattr","link":"#morevideoattr","children":[]},{"level":2,"title":"icons","slug":"icons","link":"#icons","children":[]},{"level":2,"title":"type","slug":"type","link":"#type","children":[]},{"level":2,"title":"customType","slug":"customtype","link":"#customtype","children":[]},{"level":2,"title":"lang","slug":"lang","link":"#lang","children":[]},{"level":2,"title":"i18n","slug":"i18n","link":"#i18n","children":[]},{"level":2,"title":"lock","slug":"lock","link":"#lock","children":[]},{"level":2,"title":"fastForward","slug":"fastforward","link":"#fastforward","children":[]},{"level":2,"title":"autoPlayback","slug":"autoplayback","link":"#autoplayback","children":[]},{"level":2,"title":"autoOrientation","slug":"autoorientation","link":"#autoorientation","children":[]},{"level":2,"title":"airplay","slug":"airplay","link":"#airplay","children":[]}],"relativePath":"en/start/option.md","lastUpdated":1677226299000}'),e={name:"en/start/option.md"},o=s('

Option

container

  • Type: String, Element
  • Default: #artplayer

The DOM container attached to the player

',4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
+import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const ia=JSON.parse('{"title":"Option","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/option.md","lastUpdated":1677226299000}'),e={name:"en/start/option.md"},o=s('

Option ​

container ​

  • Type: String, Element
  • Default: #artplayer

The DOM container attached to the player

',4),t=a("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
     container: '.artplayer-app', 
     // container: document.querySelector('.artplayer-app'),
     url: '/assets/sample/video.mp4',
 });
-

You may need to initialize the size of container elements, such as:

css
.artplayer-app {
+

You may need to initialize the size of container elements, such as:

css
.artplayer-app {
     width: 400px;
     height: 300px;
 }
-

Or use aspect-ratio:

css
.artplayer-app {
+

Or use aspect-ratio:

css
.artplayer-app {
     aspect-ratio: 16/9;
 }
-

Tip

Of all options, only container is required

url

  • Type: String
  • Default: ''

Video source address

`,9),c=n("div",{className:"run-code"},"▶ Run Code",-1),i=s(`
js
var art = new Artplayer({
+

Tip

Of all options, only container is required

url ​

  • Type: String
  • Default: ''

Video source address

`,9),c=a("div",{className:"run-code"},"▶ Run Code",-1),i=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
-

Sometimes the url address is not known so quickly. At this time, you can set the url asynchronously

`,2),D=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
+

Sometimes the url address is not known so quickly. At this time, you can set the url asynchronously

`,2),D=a("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
 });
 
 setTimeout(() => {
     art.url = '/assets/sample/video.mp4';
 }, 1000);
-

Tip

Three video file formats are supported by default: .mp4, .ogg, and .webm

If you need to play .m3u8 or .flv or other formats, please refer to the Libraries on the left

id

  • Type: String
  • Default: ''

The unique identifier of the player, currently only used for autoplayback

`,5),F=n("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer({
+

Tip

Three video file formats are supported by default: .mp4, .ogg, and .webm

If you need to play .m3u8 or .flv or other formats, please refer to the Libraries on the left

id ​

  • Type: String
  • Default: ''

The unique identifier of the player, currently only used for autoplayback

`,5),F=a("div",{className:"run-code"},"▶ Run Code",-1),C=s(`
js
var art = new Artplayer({
     id: 'your-url-id',
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
-

onReady

  • Type: Function
  • Default: undefined

The constructor accepts a function as the second parameter, which is triggered when the player is initialized successfully and the video can be played, just like the ready event

`,4),C=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer(
+

onReady ​

  • Type: Function
  • Default: undefined

The constructor accepts a function as the second parameter, which is triggered when the player is initialized successfully and the video can be played, just like the ready event

`,4),d=a("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer(
     {
         container: '.artplayer-app',
         url: '/assets/sample/video.mp4',
@@ -36,7 +36,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         this.play()
     },
 );
-

Equivalent to:

js
var art = new Artplayer({
+

Equivalent to:

js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -45,112 +45,112 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
 art.on('ready', () => {
     art.play();
 });
-

Tip

The this in the callback function is the player instance, but if the callback function uses the arrow function, the this will not point to the player instance

poster

  • Type: String
  • Default: ''

Video posters will only appear when the player is initialized and not played

`,7),h=n("div",{className:"run-code"},"▶ Run Code",-1),u=s(`
js
var art = new Artplayer({
+

Tip

The this in the callback function is the player instance, but if the callback function uses the arrow function, the this will not point to the player instance

poster ​

  • Type: String
  • Default: ''

Video posters will only appear when the player is initialized and not played

`,7),h=a("div",{className:"run-code"},"▶ Run Code",-1),u=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     poster: '/assets/sample/poster.jpg',
 });
-

title

  • Type: String
  • Default: ''

Video title, which currently appears in video screenshot and mini mode

`,4),b=n("div",{className:"run-code"},"▶ Run Code",-1),m=s(`
js
var art = new Artplayer({
+

title ​

  • Type: String
  • Default: ''

Video title, which currently appears in video screenshot and mini mode

`,4),b=a("div",{className:"run-code"},"▶ Run Code",-1),m=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     title: 'your-video-title',
     screenshot: true,
 });
-

theme

  • Type: String
  • Default: #f00

The player theme color is currently used on the progress bar and highlighted element

`,4),g=n("div",{className:"run-code"},"▶ Run Code",-1),_=s(`
js
var art = new Artplayer({
+

theme ​

  • Type: String
  • Default: #f00

The player theme color is currently used on the progress bar and highlighted element

`,4),g=a("div",{className:"run-code"},"▶ Run Code",-1),_=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     theme: '#ffad00',
 });
-

volume

  • Type: Number
  • Default: 0.7

Default volume of player

`,4),v=n("div",{className:"run-code"},"▶ Run Code",-1),T=s(`
js
var art = new Artplayer({
+

volume ​

  • Type: Number
  • Default: 0.7

Default volume of player

`,4),v=a("div",{className:"run-code"},"▶ Run Code",-1),T=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     volume: 0.5,
 });
-

Tip

The player will cache the size of the last volume, and the player will read the cache value at the next initialization (such as refreshing the page)

isLive

  • Type: Boolean
  • Default: false

When using live mode, the progress bar and playback time will be hidden

`,5),f=n("div",{className:"run-code"},"▶ Run Code",-1),E=s(`
js
var art = new Artplayer({
+

Tip

The player will cache the size of the last volume, and the player will read the cache value at the next initialization (such as refreshing the page)

isLive ​

  • Type: Boolean
  • Default: false

When using live mode, the progress bar and playback time will be hidden

`,5),f=a("div",{className:"run-code"},"▶ Run Code",-1),E=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     isLive: true,
 });
-

muted

  • Type: Boolean
  • Default: false

Whether to mute by default

`,4),w=n("div",{className:"run-code"},"▶ Run Code",-1),S=s(`
js
var art = new Artplayer({
+

muted ​

  • Type: Boolean
  • Default: false

Whether to mute by default

`,4),S=a("div",{className:"run-code"},"▶ Run Code",-1),w=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
 });
-

autoplay

  • Type: Boolean
  • Default: false

Whether to play automatically

`,4),k=n("div",{className:"run-code"},"▶ Run Code",-1),x=s(`
js
var art = new Artplayer({
+

autoplay ​

  • Type: Boolean
  • Default: false

Whether to play automatically

`,4),k=a("div",{className:"run-code"},"▶ Run Code",-1),P=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoplay: true,
     muted: true,
 });
-

Tip

If you want to enter the page by default to automatically play the video, muted must be true. For more information, please read Autoplay Policy Changes

autoSize

  • Type: Boolean
  • Default: false

The size of the player will fill the entire container size by default, so black edges often appear. This value can automatically adjust the size of the player to hide the black edges, similar to the object-fit: contain of css

`,5),P=n("div",{className:"run-code"},"▶ Run Code",-1),I=s(`
js
var art = new Artplayer({
+

Tip

If you want to enter the page by default to automatically play the video, muted must be true. For more information, please read Autoplay Policy Changes

autoSize ​

  • Type: Boolean
  • Default: false

The size of the player will fill the entire container size by default, so black edges often appear. This value can automatically adjust the size of the player to hide the black edges, similar to the object-fit: contain of css

`,5),q=a("div",{className:"run-code"},"▶ Run Code",-1),I=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
 });
-

autoMini

  • Type: Boolean
  • Default: false

When the player scrolls outside the viewport, it automatically enters the mini mode

`,4),j=n("div",{className:"run-code"},"▶ Run Code",-1),R=s(`
js
var art = new Artplayer({
+

autoMini ​

  • Type: Boolean
  • Default: false

When the player scrolls outside the viewport, it automatically enters the mini mode

`,4),j=a("div",{className:"run-code"},"▶ Run Code",-1),R=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoMini: true,
 });
-

loop

  • Type: Boolean
  • Default: false

Whether to play in a loop

`,4),V=n("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
+

loop ​

  • Type: Boolean
  • Default: false

Whether to play in a loop

`,4),V=a("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     loop: true,
 });
-

flip

  • Type: Boolean
  • Default: false

Whether to display the video flip function currently only appears in the Setting and Contextmenu

`,4),B=n("div",{className:"run-code"},"▶ Run Code",-1),z=s(`
js
var art = new Artplayer({
+

flip ​

  • Type: Boolean
  • Default: false

Whether to display the video flip function currently only appears in the Setting and Contextmenu

`,4),x=a("div",{className:"run-code"},"▶ Run Code",-1),B=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     flip: true,
     setting: true,
 });
-

playbackRate

  • Type: Boolean
  • Default: false

Whether to display the video playback speed function will appear in the Setting and Contextmenu

`,4),W=n("div",{className:"run-code"},"▶ Run Code",-1),q=s(`
js
var art = new Artplayer({
+

playbackRate ​

  • Type: Boolean
  • Default: false

Whether to display the video playback speed function will appear in the Setting and Contextmenu

`,4),z=a("div",{className:"run-code"},"▶ Run Code",-1),W=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     playbackRate: true,
     setting: true,
 });
-

aspectRatio

  • Type: Boolean
  • Default: false

Whether to display the video aspect ratio function will appear in the Setting and Contextmenu

`,4),O=n("div",{className:"run-code"},"▶ Run Code",-1),M=s(`
js
var art = new Artplayer({
+

aspectRatio ​

  • Type: Boolean
  • Default: false

Whether to display the video aspect ratio function will appear in the Setting and Contextmenu

`,4),O=a("div",{className:"run-code"},"▶ Run Code",-1),M=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     aspectRatio: true,
     setting: true,
 });
-

screenshot

  • Type: Boolean
  • Default: false

Whether to display the video screenshot function in the bottom control bar

`,4),H=n("div",{className:"run-code"},"▶ Run Code",-1),L=s(`
js
var art = new Artplayer({
+

screenshot ​

  • Type: Boolean
  • Default: false

Whether to display the video screenshot function in the bottom control bar

`,4),H=a("div",{className:"run-code"},"▶ Run Code",-1),L=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     screenshot: true,
 });
-

Tip

Due to the browser security policy, if the video source address and website are cross-domain, the screenshot may fail

setting

  • Type: Boolean
  • Default: false

Whether to display the switch button of Setting in the bottom control bar

`,5),$=n("div",{className:"run-code"},"▶ Run Code",-1),Y=s(`
js
var art = new Artplayer({
+

Tip

Due to the browser security policy, if the video source address and website are cross-domain, the screenshot may fail

setting ​

  • Type: Boolean
  • Default: false

Whether to display the switch button of Setting in the bottom control bar

`,5),$=a("div",{className:"run-code"},"▶ Run Code",-1),Y=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
 });
-

hotkey

  • Type: Boolean
  • Default: true

Whether to use shortcut keys

`,4),Q=n("div",{className:"run-code"},"▶ Run Code",-1),U=s(`
js
var art = new Artplayer({
+

hotkey ​

  • Type: Boolean
  • Default: true

Whether to use shortcut keys

`,4),Q=a("div",{className:"run-code"},"▶ Run Code",-1),U=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     hotkey: true,
 });
-
HotkeysSescribe
↑Volume Up
↓Volume Down
←Fast forward
→Fast rewind
spaceToggle play/pause

Tip

These shortcut keys will only take effect after the player gets the focus (such as clicking the player)

pip

  • Type: Boolean
  • Default: false

Whether to display the picture in picture switch button in the bottom control bar

`,6),G=n("div",{className:"run-code"},"▶ Run Code",-1),J=s(`
js
var art = new Artplayer({
+
HotkeysSescribe
↑Volume Up
↓Volume Down
←Fast forward
→Fast rewind
spaceToggle play/pause

Tip

These shortcut keys will only take effect after the player gets the focus (such as clicking the player)

pip ​

  • Type: Boolean
  • Default: false

Whether to display the picture in picture switch button in the bottom control bar

`,6),G=a("div",{className:"run-code"},"▶ Run Code",-1),J=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     pip: true,
 });
-

mutex

  • Type: Boolean
  • Default: true

If there are multiple players in the page at the same time, can only one player play

`,4),K=n("div",{className:"run-code"},"▶ Run Code",-1),X=s(`
js
var art = new Artplayer({
+

mutex ​

  • Type: Boolean
  • Default: true

If there are multiple players in the page at the same time, can only one player play

`,4),K=a("div",{className:"run-code"},"▶ Run Code",-1),X=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     mutex: true,
 });
-

fullscreen

  • Type: Boolean
  • Default: false

Whether to display the player window full screen button in the bottom control bar

`,4),Z=n("div",{className:"run-code"},"▶ Run Code",-1),ss=s(`
js
var art = new Artplayer({
+

fullscreen ​

  • Type: Boolean
  • Default: false

Whether to display the player window full screen button in the bottom control bar

`,4),Z=a("div",{className:"run-code"},"▶ Run Code",-1),ss=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
 });
-

fullscreenWeb

  • Type: Boolean
  • Default: false

Whether to display the player full screen web page button in the bottom control bar

`,4),ns=n("div",{className:"run-code"},"▶ Run Code",-1),as=s(`
js
var art = new Artplayer({
+

fullscreenWeb ​

  • Type: Boolean
  • Default: false

Whether to display the player full screen web page button in the bottom control bar

`,4),as=a("div",{className:"run-code"},"▶ Run Code",-1),ns=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreenWeb: true,
 });
-

subtitleOffset

  • Type: Boolean
  • Default: false

Subtitle time offset, with the range of [-5s, 5s], appears in the Settings

`,4),ls=n("div",{className:"run-code"},"▶ Run Code",-1),ps=s(`
js
var art = new Artplayer({
+

subtitleOffset ​

  • Type: Boolean
  • Default: false

Subtitle time offset, with the range of [-5s, 5s], appears in the Settings

`,4),ls=a("div",{className:"run-code"},"▶ Run Code",-1),ps=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitleOffset: true,
@@ -159,12 +159,12 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
     },
     setting: true,
 });
-

miniProgressBar

  • Type: Boolean
  • Default: false

Mini progress bar, only appears when the player loses focus and is playing

`,4),es=n("div",{className:"run-code"},"▶ Run Code",-1),os=s(`
js
var art = new Artplayer({
+

miniProgressBar ​

  • Type: Boolean
  • Default: false

Mini progress bar, only appears when the player loses focus and is playing

`,4),es=a("div",{className:"run-code"},"▶ Run Code",-1),os=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     miniProgressBar: true,
 });
-

useSSR

  • Type: Boolean
  • Default: false

Whether to use the SSR mount mode is useful if you want to render the HTML required by the player in advance before the player is mounted

You can access the HTML required by the player through Artplayer.html

`,5),ts=n("div",{className:"run-code"},"▶ Run Code",-1),rs=s(`
js
var $container = document.querySelector('.artplayer-app');
+

useSSR ​

  • Type: Boolean
  • Default: false

Whether to use the SSR mount mode is useful if you want to render the HTML required by the player in advance before the player is mounted

You can access the HTML required by the player through Artplayer.html

`,5),ts=a("div",{className:"run-code"},"▶ Run Code",-1),rs=s(`
js
var $container = document.querySelector('.artplayer-app');
 $container.innerHTML = Artplayer.html;
 
 var art = new Artplayer({
@@ -172,12 +172,12 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
     url: '/assets/sample/video.mp4',
     useSSR: true,
 });
-

playsInline

  • Type: Boolean
  • Default: true

Whether to use the playsInline mode on the mobile end

`,4),cs=n("div",{className:"run-code"},"▶ Run Code",-1),is=s(`
js
var art = new Artplayer({
+

playsInline ​

  • Type: Boolean
  • Default: true

Whether to use the playsInline mode on the mobile end

`,4),cs=a("div",{className:"run-code"},"▶ Run Code",-1),is=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     playsInline: true,
 });
-

layers

  • Type: Array
  • Default: []

Initialize the customized layers

`,4),Ds=n("div",{className:"run-code"},"▶ Run Code",-1),ys=s(`
js
var img = '/assets/sample/layer.png';
+

layers ​

  • Type: Array
  • Default: []

Initialize the customized layers

`,4),Ds=a("div",{className:"run-code"},"▶ Run Code",-1),ys=s(`
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -201,7 +201,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     ],
 });
-

Please refer to the following address for Component:

/start/component.html

settings

  • Type: Array
  • Default: []

Initialize the customized Setting

`,5),Fs=n("div",{className:"run-code"},"▶ Run Code",-1),ds=s(`
js
var art = new Artplayer({
+

Please refer to the following address for Component:

/start/component.html

settings ​

  • Type: Array
  • Default: []

Initialize the customized Setting

`,5),Fs=a("div",{className:"run-code"},"▶ Run Code",-1),Cs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -236,7 +236,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     ],
 });
-

Please refer to the following address for Setting

/start/setting.html

contextmenu

  • Type: Array
  • Default: []

Initialize the customized Contextmenu

`,5),Cs=n("div",{className:"run-code"},"▶ Run Code",-1),As=s(`
js
var art = new Artplayer({
+

Please refer to the following address for Setting

/start/setting.html

contextmenu ​

  • Type: Array
  • Default: []

Initialize the customized Contextmenu

`,5),ds=a("div",{className:"run-code"},"▶ Run Code",-1),As=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -249,7 +249,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     ],
 });
-

Please refer to the following address for Component:

/start/component.html

controls

  • Type: Array
  • Default: []

Initialize the customized Controls

`,5),hs=n("div",{className:"run-code"},"▶ Run Code",-1),us=s(`
js
var art = new Artplayer({
+

Please refer to the following address for Component:

/start/component.html

controls ​

  • Type: Array
  • Default: []

Initialize the customized Controls

`,5),hs=a("div",{className:"run-code"},"▶ Run Code",-1),us=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -266,7 +266,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     ],
 });
-

Please refer to the following address for Setting

/start/setting.html

quality

  • Type: Array
  • Default: []

Whether to display the Quality list in the bottom control bar

PropertyTypeDescribe
defaultBooleanDefault quality
htmlStringQuality name
urlStringQuality name
`,6),bs=n("div",{className:"run-code"},"▶ Run Code",-1),ms=s(`
js
var art = new Artplayer({
+

Please refer to the following address for Setting

/start/setting.html

quality ​

  • Type: Array
  • Default: []

Whether to display the Quality list in the bottom control bar

PropertyTypeDescribe
defaultBooleanDefault quality
htmlStringQuality name
urlStringQuality name
`,6),bs=a("div",{className:"run-code"},"▶ Run Code",-1),ms=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     quality: [
@@ -281,7 +281,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     ],
 });
-

highlight

  • Type: Array
  • Default: []

Display highlight on the progress bar

PropertyTypeDescribe
timeNumberHighlight time
textStringHighlight text
`,5),gs=n("div",{className:"run-code"},"▶ Run Code",-1),_s=s(`
js
var art = new Artplayer({
+

highlight ​

  • Type: Array
  • Default: []

Display highlight on the progress bar

PropertyTypeDescribe
timeNumberHighlight time
textStringHighlight text
`,5),gs=a("div",{className:"run-code"},"▶ Run Code",-1),_s=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     highlight: [
@@ -307,7 +307,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     ],
 });
-

plugins

  • Type: Array
  • Default: []

Initialize customized plugins

`,4),vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ts=s(`
js
function myPlugin(art) {
+

plugins ​

  • Type: Array
  • Default: []

Initialize customized plugins

`,4),vs=a("div",{className:"run-code"},"▶ Run Code",-1),Ts=s(`
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -323,14 +323,14 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
     url: '/assets/sample/video.mp4',
     plugins: [myPlugin],
 });
-

whitelist

  • Type: Array
  • Default: []

Because different mobile devices have many differences and limitations, sometimes you want to use native functions directly instead of using this player on some mobile devices, you can use this option to control

The whitelist is an array type, which is matched with window.navigator.userAgent respectively. The player will be enabled as long as one of the matches is successful

Support string matching, function matching and regular matching

`,6),fs=n("div",{className:"run-code"},"▶ Run Code",-1),Es=s(`
js
var art = new Artplayer({
+

whitelist ​

  • Type: Array
  • Default: []

Because different mobile devices have many differences and limitations, sometimes you want to use native functions directly instead of using this player on some mobile devices, you can use this option to control

The whitelist is an array type, which is matched with window.navigator.userAgent respectively. The player will be enabled as long as one of the matches is successful

Support string matching, function matching and regular matching

`,6),fs=a("div",{className:"run-code"},"▶ Run Code",-1),Es=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     whitelist: [(ua) => /iPhone/gi.test(ua)],
     // whitelist: [/iPhone/gi],
     // whitelist: ['iPhone'],
 });
-

Tip

If this option is not filled in, the player will be used by default

thumbnails

  • Type: Object
  • Default: {}

Set the thumbnails image on the progress bar

PropertyTypeDescribe
urlStringThumbnail url
numberNumberThumbnail number
columnNumberThumbnail column
widthNumberThumbnail width
heightNumberThumbnail height
`,6),ws=n("div",{className:"run-code"},"▶ Run Code",-1),Ss=s(`
js
var art = new Artplayer({
+

Tip

If this option is not filled in, the player will be used by default

thumbnails ​

  • Type: Object
  • Default: {}

Set the thumbnails image on the progress bar

PropertyTypeDescribe
urlStringThumbnail url
numberNumberThumbnail number
columnNumberThumbnail column
widthNumberThumbnail width
heightNumberThumbnail height
`,6),Ss=a("div",{className:"run-code"},"▶ Run Code",-1),ws=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     thumbnails: {
@@ -339,7 +339,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         column: 10,
     },
 });
-

Generate preview thumbnails online

artplayer-tool-thumbnail

subtitle

  • Type: Object
  • Default: {}

Set the subtitle of the video and support the subtitle format: vtt, srt, ass

PropertyTypeDescribe
urlStringSubtitle url
typeStringSubtitle type: vtt, srt, ass
styleObjectSubtitle style
encodingStringSubtitle code, Default: utf-8
escapeBooleanWhether to escape the html tag,Default: true
`,6),ks=n("div",{className:"run-code"},"▶ Run Code",-1),xs=s(`
js
var art = new Artplayer({
+

Generate preview thumbnails online

artplayer-tool-thumbnail

subtitle ​

  • Type: Object
  • Default: {}

Set the subtitle of the video and support the subtitle format: vtt, srt, ass

PropertyTypeDescribe
urlStringSubtitle url
typeStringSubtitle type: vtt, srt, ass
styleObjectSubtitle style
encodingStringSubtitle code, Default: utf-8
escapeBooleanWhether to escape the html tag,Default: true
`,6),ks=a("div",{className:"run-code"},"▶ Run Code",-1),Ps=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -353,7 +353,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     },
 });
-

moreVideoAttr

  • Type: Object
  • Default: {'controls': false,'preload': 'metadata'}

More video attributes, which will be directly written into the video element

`,4),Ps=n("div",{className:"run-code"},"▶ Run Code",-1),Is=s(`
js
var art = new Artplayer({
+

moreVideoAttr ​

  • Type: Object
  • Default: {'controls': false,'preload': 'metadata'}

More video attributes, which will be directly written into the video element

`,4),qs=a("div",{className:"run-code"},"▶ Run Code",-1),Is=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     moreVideoAttr: {
@@ -361,7 +361,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         playsInline: true,
     },
 });
-

icons

  • Type: Object
  • Default: {}

It is used to replace the default icon and supports Html String and HTMLElement

`,4),js=n("div",{className:"run-code"},"▶ Run Code",-1),Rs=s(`
js
var art = new Artplayer({
+

icons ​

  • Type: Object
  • Default: {}

It is used to replace the default icon and supports Html String and HTMLElement

`,4),js=a("div",{className:"run-code"},"▶ Run Code",-1),Rs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     icons: {
@@ -369,12 +369,12 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         state: '<img src="/assets/img/state.png">',
     },
 });
-

Definition of all icons

artplayer/types/icons.d.ts

type

  • Type: String
  • Default: ''

It is used to indicate the format of the video. It needs to be used together with the customType. The default format of the video is the suffix of the video address (such as .m3u8, .mkv, .ts). But sometimes the video address does not have the correct suffix, so it needs to be specially specified

`,5),Vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ns=s(`
js
var art = new Artplayer({
+

Definition of all icons

artplayer/types/icons.d.ts

type ​

  • Type: String
  • Default: ''

It is used to indicate the format of the video. It needs to be used together with the customType. The default format of the video is the suffix of the video address (such as .m3u8, .mkv, .ts). But sometimes the video address does not have the correct suffix, so it needs to be specially specified

`,5),Vs=a("div",{className:"run-code"},"▶ Run Code",-1),Ns=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.m3u8',
     type: 'm3u8',
 });
-

Identification of suffix

The player can only resolve this suffix: /assets/sample/video.m3u8

However, this suffix cannot be resolved: /assets/sample/video?type=m3u8

So if you use customType, it is better to specify type at the same time

customType

  • Type: Object
  • Default: {}

By matching the video's type, the video decoding right is handed over to a third-party program for processing. The processing function can receive three parameters

  • video : Video DOM element
  • url : Video url
  • art : Player instance
`,6),Bs=n("div",{className:"run-code"},"▶ Run Code",-1),zs=s(`
js
var art = new Artplayer({
+

Identification of suffix

The player can only resolve this suffix: /assets/sample/video.m3u8

However, this suffix cannot be resolved: /assets/sample/video?type=m3u8

So if you use customType, it is better to specify type at the same time

customType ​

  • Type: Object
  • Default: {}

By matching the video's type, the video decoding right is handed over to a third-party program for processing. The processing function can receive three parameters

  • video : Video DOM element
  • url : Video url
  • art : Player instance
`,6),xs=a("div",{className:"run-code"},"▶ Run Code",-1),Bs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.m3u8',
     customType: {
@@ -383,12 +383,12 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     },
 });
-

lang

  • Type: String
  • Default: navigator.language.toLowerCase()

The default display language currently supports: en, zh-cn, zh-tw, cs, pl, es, fa, fr, id

`,4),Ws=n("div",{className:"run-code"},"▶ Run Code",-1),qs=s(`
js
var art = new Artplayer({
+

lang ​

  • Type: String
  • Default: navigator.language.toLowerCase()

The default display language currently supports: en, zh-cn, zh-tw, cs, pl, es, fa, fr, id

`,4),zs=a("div",{className:"run-code"},"▶ Run Code",-1),Ws=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lang: 'en',
 });
-

i18n

  • Type: Object
  • Default: {}

Customize the i18n configuration, which will be deeply merged with the built-in i18n

Add your language:

`,5),Os=n("div",{className:"run-code"},"▶ Run Code",-1),Ms=s(`
js
var art = new Artplayer({
+

i18n ​

  • Type: Object
  • Default: {}

Customize the i18n configuration, which will be deeply merged with the built-in i18n

Add your language:

`,5),Os=a("div",{className:"run-code"},"▶ Run Code",-1),Ms=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lang: 'your-lang',
@@ -398,7 +398,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     },
 });
-

Modify existing language:

`,2),Hs=n("div",{className:"run-code"},"▶ Run Code",-1),Ls=s(`
js
var art = new Artplayer({
+

Modify existing language:

`,2),Hs=a("div",{className:"run-code"},"▶ Run Code",-1),Ls=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     i18n: {
@@ -410,30 +410,30 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     },
 });
-

lock

  • Type: Boolean
  • Default: false

Whether to display a lock button on the mobile end to hide the bottom control bar

`,5),$s=n("div",{className:"run-code"},"▶ Run Code",-1),Ys=s(`
js
var art = new Artplayer({
+

lock ​

  • Type: Boolean
  • Default: false

Whether to display a lock button on the mobile end to hide the bottom control bar

`,5),$s=a("div",{className:"run-code"},"▶ Run Code",-1),Ys=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lock: true,
 });
-

fastForward

  • Type: Boolean
  • Default: false

Whether to add long-press video fast-forward function on the mobile terminal

`,4),Qs=n("div",{className:"run-code"},"▶ Run Code",-1),Us=s(`
js
var art = new Artplayer({
+

fastForward ​

  • Type: Boolean
  • Default: false

Whether to add long-press video fast-forward function on the mobile terminal

`,4),Qs=a("div",{className:"run-code"},"▶ Run Code",-1),Us=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fastForward: true,
 });
-

autoPlayback

  • Type: Boolean
  • Default: false

Whether to use automatic playback function

`,4),Gs=n("div",{className:"run-code"},"▶ Run Code",-1),Js=s(`
js
var art = new Artplayer({
+

autoPlayback ​

  • Type: Boolean
  • Default: false

Whether to use automatic playback function

`,4),Gs=a("div",{className:"run-code"},"▶ Run Code",-1),Js=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     id: 'your-url-id',
     autoPlayback: true,
 });
-

Tip

Because the player uses url as key by default to cache the playback progress

But if your url of the same video is different, you need to use id to identify the unique key of the video

autoOrientation

  • Type: Boolean
  • Default: false

Whether to rotate the player according to the video size and viewport size when the mobile page is full screen

`,5),Ks=n("div",{className:"run-code"},"▶ Run Code",-1),Xs=s(`
js
var art = new Artplayer({
+

Tip

Because the player uses url as key by default to cache the playback progress

But if your url of the same video is different, you need to use id to identify the unique key of the video

autoOrientation ​

  • Type: Boolean
  • Default: false

Whether to rotate the player according to the video size and viewport size when the mobile page is full screen

`,5),Ks=a("div",{className:"run-code"},"▶ Run Code",-1),Xs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoOrientation: true,
 });
-

airplay

  • Type: Boolean
  • Default: false

Whether to display the airplay button. Currently, only some browsers support this function

`,4),Zs=n("div",{className:"run-code"},"▶ Run Code",-1),sn=s(`
js
var art = new Artplayer({
+

airplay ​

  • Type: Boolean
  • Default: false

Whether to display the airplay button. Currently, only some browsers support this function

`,4),Zs=a("div",{className:"run-code"},"▶ Run Code",-1),sa=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     airplay: true,
 });
-
`,1),nn=[o,t,r,c,i,D,y,F,d,C,A,h,u,b,m,g,_,v,T,f,E,w,S,k,x,P,I,j,R,V,N,B,z,W,q,O,M,H,L,$,Y,Q,U,G,J,K,X,Z,ss,ns,as,ls,ps,es,os,ts,rs,cs,is,Ds,ys,Fs,ds,Cs,As,hs,us,bs,ms,gs,_s,vs,Ts,fs,Es,ws,Ss,ks,xs,Ps,Is,js,Rs,Vs,Ns,Bs,zs,Ws,qs,Os,Ms,Hs,Ls,$s,Ys,Qs,Us,Gs,Js,Ks,Xs,Zs,sn];function an(ln,pn,en,on,tn,rn){return p(),l("div",null,nn)}const yn=a(e,[["render",an]]);export{Dn as __pageData,yn as default}; +
`,1),aa=[o,t,r,c,i,D,y,F,C,d,A,h,u,b,m,g,_,v,T,f,E,S,w,k,P,q,I,j,R,V,N,x,B,z,W,O,M,H,L,$,Y,Q,U,G,J,K,X,Z,ss,as,ns,ls,ps,es,os,ts,rs,cs,is,Ds,ys,Fs,Cs,ds,As,hs,us,bs,ms,gs,_s,vs,Ts,fs,Es,Ss,ws,ks,Ps,qs,Is,js,Rs,Vs,Ns,xs,Bs,zs,Ws,Os,Ms,Hs,Ls,$s,Ys,Qs,Us,Gs,Js,Ks,Xs,Zs,sa];function na(la,pa,ea,oa,ta,ra){return p(),l("div",null,aa)}const Da=n(e,[["render",na]]);export{ia as __pageData,Da as default}; diff --git a/docs/document/assets/en_start_option.md.725aa586.lean.js b/docs/document/assets/en_start_option.md.725aa586.lean.js new file mode 100644 index 000000000..86ab260bd --- /dev/null +++ b/docs/document/assets/en_start_option.md.725aa586.lean.js @@ -0,0 +1 @@ +import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const ia=JSON.parse('{"title":"Option","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/option.md","lastUpdated":1677226299000}'),e={name:"en/start/option.md"},o=s("",4),t=a("div",{className:"run-code"},"▶ Run Code",-1),r=s("",9),c=a("div",{className:"run-code"},"▶ Run Code",-1),i=s("",2),D=a("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),F=a("div",{className:"run-code"},"▶ Run Code",-1),C=s("",4),d=a("div",{className:"run-code"},"▶ Run Code",-1),A=s("",7),h=a("div",{className:"run-code"},"▶ Run Code",-1),u=s("",4),b=a("div",{className:"run-code"},"▶ Run Code",-1),m=s("",4),g=a("div",{className:"run-code"},"▶ Run Code",-1),_=s("",4),v=a("div",{className:"run-code"},"▶ Run Code",-1),T=s("",5),f=a("div",{className:"run-code"},"▶ Run Code",-1),E=s("",4),S=a("div",{className:"run-code"},"▶ Run Code",-1),w=s("",4),k=a("div",{className:"run-code"},"▶ Run Code",-1),P=s("",5),q=a("div",{className:"run-code"},"▶ Run Code",-1),I=s("",4),j=a("div",{className:"run-code"},"▶ Run Code",-1),R=s("",4),V=a("div",{className:"run-code"},"▶ Run Code",-1),N=s("",4),x=a("div",{className:"run-code"},"▶ Run Code",-1),B=s("",4),z=a("div",{className:"run-code"},"▶ Run Code",-1),W=s("",4),O=a("div",{className:"run-code"},"▶ Run Code",-1),M=s("",4),H=a("div",{className:"run-code"},"▶ Run Code",-1),L=s("",5),$=a("div",{className:"run-code"},"▶ Run Code",-1),Y=s("",4),Q=a("div",{className:"run-code"},"▶ Run Code",-1),U=s("",6),G=a("div",{className:"run-code"},"▶ Run Code",-1),J=s("",4),K=a("div",{className:"run-code"},"▶ Run Code",-1),X=s("",4),Z=a("div",{className:"run-code"},"▶ Run Code",-1),ss=s("",4),as=a("div",{className:"run-code"},"▶ Run Code",-1),ns=s("",4),ls=a("div",{className:"run-code"},"▶ Run Code",-1),ps=s("",4),es=a("div",{className:"run-code"},"▶ Run Code",-1),os=s("",5),ts=a("div",{className:"run-code"},"▶ Run Code",-1),rs=s("",4),cs=a("div",{className:"run-code"},"▶ Run Code",-1),is=s("",4),Ds=a("div",{className:"run-code"},"▶ Run Code",-1),ys=s("",5),Fs=a("div",{className:"run-code"},"▶ Run Code",-1),Cs=s("",5),ds=a("div",{className:"run-code"},"▶ Run Code",-1),As=s("",5),hs=a("div",{className:"run-code"},"▶ Run Code",-1),us=s("",6),bs=a("div",{className:"run-code"},"▶ Run Code",-1),ms=s("",5),gs=a("div",{className:"run-code"},"▶ Run Code",-1),_s=s("",4),vs=a("div",{className:"run-code"},"▶ Run Code",-1),Ts=s("",6),fs=a("div",{className:"run-code"},"▶ Run Code",-1),Es=s("",6),Ss=a("div",{className:"run-code"},"▶ Run Code",-1),ws=s("",6),ks=a("div",{className:"run-code"},"▶ Run Code",-1),Ps=s("",4),qs=a("div",{className:"run-code"},"▶ Run Code",-1),Is=s("",4),js=a("div",{className:"run-code"},"▶ Run Code",-1),Rs=s("",5),Vs=a("div",{className:"run-code"},"▶ Run Code",-1),Ns=s("",6),xs=a("div",{className:"run-code"},"▶ Run Code",-1),Bs=s("",4),zs=a("div",{className:"run-code"},"▶ Run Code",-1),Ws=s("",5),Os=a("div",{className:"run-code"},"▶ Run Code",-1),Ms=s("",2),Hs=a("div",{className:"run-code"},"▶ Run Code",-1),Ls=s("",5),$s=a("div",{className:"run-code"},"▶ Run Code",-1),Ys=s("",4),Qs=a("div",{className:"run-code"},"▶ Run Code",-1),Us=s("",4),Gs=a("div",{className:"run-code"},"▶ Run Code",-1),Js=s("",5),Ks=a("div",{className:"run-code"},"▶ Run Code",-1),Xs=s("",4),Zs=a("div",{className:"run-code"},"▶ Run Code",-1),sa=s("",1),aa=[o,t,r,c,i,D,y,F,C,d,A,h,u,b,m,g,_,v,T,f,E,S,w,k,P,q,I,j,R,V,N,x,B,z,W,O,M,H,L,$,Y,Q,U,G,J,K,X,Z,ss,as,ns,ls,ps,es,os,ts,rs,cs,is,Ds,ys,Fs,Cs,ds,As,hs,us,bs,ms,gs,_s,vs,Ts,fs,Es,Ss,ws,ks,Ps,qs,Is,js,Rs,Vs,Ns,xs,Bs,zs,Ws,Os,Ms,Hs,Ls,$s,Ys,Qs,Us,Gs,Js,Ks,Xs,Zs,sa];function na(la,pa,ea,oa,ta,ra){return p(),l("div",null,aa)}const Da=n(e,[["render",na]]);export{ia as __pageData,Da as default}; diff --git a/docs/document/assets/en_start_option.md.eb3ddacd.lean.js b/docs/document/assets/en_start_option.md.eb3ddacd.lean.js deleted file mode 100644 index 0de18efa3..000000000 --- a/docs/document/assets/en_start_option.md.eb3ddacd.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.parse('{"title":"Option","description":"","frontmatter":{},"headers":[{"level":2,"title":"container","slug":"container","link":"#container","children":[]},{"level":2,"title":"url","slug":"url","link":"#url","children":[]},{"level":2,"title":"id","slug":"id","link":"#id","children":[]},{"level":2,"title":"onReady","slug":"onready","link":"#onready","children":[]},{"level":2,"title":"poster","slug":"poster","link":"#poster","children":[]},{"level":2,"title":"title","slug":"title","link":"#title","children":[]},{"level":2,"title":"theme","slug":"theme","link":"#theme","children":[]},{"level":2,"title":"volume","slug":"volume","link":"#volume","children":[]},{"level":2,"title":"isLive","slug":"islive","link":"#islive","children":[]},{"level":2,"title":"muted","slug":"muted","link":"#muted","children":[]},{"level":2,"title":"autoplay","slug":"autoplay","link":"#autoplay","children":[]},{"level":2,"title":"autoSize","slug":"autosize","link":"#autosize","children":[]},{"level":2,"title":"autoMini","slug":"automini","link":"#automini","children":[]},{"level":2,"title":"loop","slug":"loop","link":"#loop","children":[]},{"level":2,"title":"flip","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"playbackRate","slug":"playbackrate","link":"#playbackrate","children":[]},{"level":2,"title":"aspectRatio","slug":"aspectratio","link":"#aspectratio","children":[]},{"level":2,"title":"screenshot","slug":"screenshot","link":"#screenshot","children":[]},{"level":2,"title":"setting","slug":"setting","link":"#setting","children":[]},{"level":2,"title":"hotkey","slug":"hotkey","link":"#hotkey","children":[]},{"level":2,"title":"pip","slug":"pip","link":"#pip","children":[]},{"level":2,"title":"mutex","slug":"mutex","link":"#mutex","children":[]},{"level":2,"title":"fullscreen","slug":"fullscreen","link":"#fullscreen","children":[]},{"level":2,"title":"fullscreenWeb","slug":"fullscreenweb","link":"#fullscreenweb","children":[]},{"level":2,"title":"subtitleOffset","slug":"subtitleoffset","link":"#subtitleoffset","children":[]},{"level":2,"title":"miniProgressBar","slug":"miniprogressbar","link":"#miniprogressbar","children":[]},{"level":2,"title":"useSSR","slug":"usessr","link":"#usessr","children":[]},{"level":2,"title":"playsInline","slug":"playsinline","link":"#playsinline","children":[]},{"level":2,"title":"layers","slug":"layers","link":"#layers","children":[]},{"level":2,"title":"settings","slug":"settings","link":"#settings","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"controls","slug":"controls","link":"#controls","children":[]},{"level":2,"title":"quality","slug":"quality","link":"#quality","children":[]},{"level":2,"title":"highlight","slug":"highlight","link":"#highlight","children":[]},{"level":2,"title":"plugins","slug":"plugins","link":"#plugins","children":[]},{"level":2,"title":"whitelist","slug":"whitelist","link":"#whitelist","children":[]},{"level":2,"title":"thumbnails","slug":"thumbnails","link":"#thumbnails","children":[]},{"level":2,"title":"subtitle","slug":"subtitle","link":"#subtitle","children":[]},{"level":2,"title":"moreVideoAttr","slug":"morevideoattr","link":"#morevideoattr","children":[]},{"level":2,"title":"icons","slug":"icons","link":"#icons","children":[]},{"level":2,"title":"type","slug":"type","link":"#type","children":[]},{"level":2,"title":"customType","slug":"customtype","link":"#customtype","children":[]},{"level":2,"title":"lang","slug":"lang","link":"#lang","children":[]},{"level":2,"title":"i18n","slug":"i18n","link":"#i18n","children":[]},{"level":2,"title":"lock","slug":"lock","link":"#lock","children":[]},{"level":2,"title":"fastForward","slug":"fastforward","link":"#fastforward","children":[]},{"level":2,"title":"autoPlayback","slug":"autoplayback","link":"#autoplayback","children":[]},{"level":2,"title":"autoOrientation","slug":"autoorientation","link":"#autoorientation","children":[]},{"level":2,"title":"airplay","slug":"airplay","link":"#airplay","children":[]}],"relativePath":"en/start/option.md","lastUpdated":1677226299000}'),e={name:"en/start/option.md"},o=s("",4),t=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",9),c=n("div",{className:"run-code"},"▶ Run Code",-1),i=s("",2),D=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),F=n("div",{className:"run-code"},"▶ Run Code",-1),d=s("",4),C=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",7),h=n("div",{className:"run-code"},"▶ Run Code",-1),u=s("",4),b=n("div",{className:"run-code"},"▶ Run Code",-1),m=s("",4),g=n("div",{className:"run-code"},"▶ Run Code",-1),_=s("",4),v=n("div",{className:"run-code"},"▶ Run Code",-1),T=s("",5),f=n("div",{className:"run-code"},"▶ Run Code",-1),E=s("",4),w=n("div",{className:"run-code"},"▶ Run Code",-1),S=s("",4),k=n("div",{className:"run-code"},"▶ Run Code",-1),x=s("",5),P=n("div",{className:"run-code"},"▶ Run Code",-1),I=s("",4),j=n("div",{className:"run-code"},"▶ Run Code",-1),R=s("",4),V=n("div",{className:"run-code"},"▶ Run Code",-1),N=s("",4),B=n("div",{className:"run-code"},"▶ Run Code",-1),z=s("",4),W=n("div",{className:"run-code"},"▶ Run Code",-1),q=s("",4),O=n("div",{className:"run-code"},"▶ Run Code",-1),M=s("",4),H=n("div",{className:"run-code"},"▶ Run Code",-1),L=s("",5),$=n("div",{className:"run-code"},"▶ Run Code",-1),Y=s("",4),Q=n("div",{className:"run-code"},"▶ Run Code",-1),U=s("",6),G=n("div",{className:"run-code"},"▶ Run Code",-1),J=s("",4),K=n("div",{className:"run-code"},"▶ Run Code",-1),X=s("",4),Z=n("div",{className:"run-code"},"▶ Run Code",-1),ss=s("",4),ns=n("div",{className:"run-code"},"▶ Run Code",-1),as=s("",4),ls=n("div",{className:"run-code"},"▶ Run Code",-1),ps=s("",4),es=n("div",{className:"run-code"},"▶ Run Code",-1),os=s("",5),ts=n("div",{className:"run-code"},"▶ Run Code",-1),rs=s("",4),cs=n("div",{className:"run-code"},"▶ Run Code",-1),is=s("",4),Ds=n("div",{className:"run-code"},"▶ Run Code",-1),ys=s("",5),Fs=n("div",{className:"run-code"},"▶ Run Code",-1),ds=s("",5),Cs=n("div",{className:"run-code"},"▶ Run Code",-1),As=s("",5),hs=n("div",{className:"run-code"},"▶ Run Code",-1),us=s("",6),bs=n("div",{className:"run-code"},"▶ Run Code",-1),ms=s("",5),gs=n("div",{className:"run-code"},"▶ Run Code",-1),_s=s("",4),vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ts=s("",6),fs=n("div",{className:"run-code"},"▶ Run Code",-1),Es=s("",6),ws=n("div",{className:"run-code"},"▶ Run Code",-1),Ss=s("",6),ks=n("div",{className:"run-code"},"▶ Run Code",-1),xs=s("",4),Ps=n("div",{className:"run-code"},"▶ Run Code",-1),Is=s("",4),js=n("div",{className:"run-code"},"▶ Run Code",-1),Rs=s("",5),Vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ns=s("",6),Bs=n("div",{className:"run-code"},"▶ Run Code",-1),zs=s("",4),Ws=n("div",{className:"run-code"},"▶ Run Code",-1),qs=s("",5),Os=n("div",{className:"run-code"},"▶ Run Code",-1),Ms=s("",2),Hs=n("div",{className:"run-code"},"▶ Run Code",-1),Ls=s("",5),$s=n("div",{className:"run-code"},"▶ Run Code",-1),Ys=s("",4),Qs=n("div",{className:"run-code"},"▶ Run Code",-1),Us=s("",4),Gs=n("div",{className:"run-code"},"▶ Run Code",-1),Js=s("",5),Ks=n("div",{className:"run-code"},"▶ Run Code",-1),Xs=s("",4),Zs=n("div",{className:"run-code"},"▶ Run Code",-1),sn=s("",1),nn=[o,t,r,c,i,D,y,F,d,C,A,h,u,b,m,g,_,v,T,f,E,w,S,k,x,P,I,j,R,V,N,B,z,W,q,O,M,H,L,$,Y,Q,U,G,J,K,X,Z,ss,ns,as,ls,ps,es,os,ts,rs,cs,is,Ds,ys,Fs,ds,Cs,As,hs,us,bs,ms,gs,_s,vs,Ts,fs,Es,ws,Ss,ks,xs,Ps,Is,js,Rs,Vs,Ns,Bs,zs,Ws,qs,Os,Ms,Hs,Ls,$s,Ys,Qs,Us,Gs,Js,Ks,Xs,Zs,sn];function an(ln,pn,en,on,tn,rn){return p(),l("div",null,nn)}const yn=a(e,[["render",an]]);export{Dn as __pageData,yn as default}; diff --git a/docs/document/assets/en_start_setting.md.ce6aa0a7.lean.js b/docs/document/assets/en_start_setting.md.ce6aa0a7.lean.js deleted file mode 100644 index 784561dc5..000000000 --- a/docs/document/assets/en_start_setting.md.ce6aa0a7.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[{"level":2,"title":"Selection list","slug":"selection-list","link":"#selection-list","children":[]},{"level":2,"title":"List nesting","slug":"list-nesting","link":"#list-nesting","children":[]},{"level":2,"title":"Toggle button","slug":"toggle-button","link":"#toggle-button","children":[]},{"level":2,"title":"Range Slider","slug":"range-slider","link":"#range-slider","children":[]}],"relativePath":"en/start/setting.md","lastUpdated":1674271220000}'),e={name:"en/start/setting.md"},t=s("h1",{id:"设置面板",tabindex:"-1"},[n("设置面板 "),s("a",{class:"header-anchor",href:"#设置面板","aria-hidden":"true"},"#")],-1),c=s("p",null,[n("You need to open the settings panel first. The player has four settings by default: "),s("code",null,"flip"),n(", "),s("code",null,"playbackRate"),n(", "),s("code",null,"aspectRatio"),n(", "),s("code",null,"subtitleOffset")],-1),r=s("div",{className:"run-code"},"▶ Run Code",-1),D=a("",3),y=s("div",{className:"run-code"},"▶ Run Code",-1),F=a("",2),C=s("div",{className:"run-code"},"▶ Run Code",-1),A=a("",3),i=s("div",{className:"run-code"},"▶ Run Code",-1),d=a("",4),b=s("div",{className:"run-code"},"▶ Run Code",-1),u=a("",1),m=[t,c,r,D,y,F,C,A,i,d,b,u];function h(g,_,E,f,v,S){return o(),p("div",null,m)}const x=l(e,[["render",h]]);export{w as __pageData,x as default}; diff --git a/docs/document/assets/en_start_setting.md.ce6aa0a7.js b/docs/document/assets/en_start_setting.md.fb089717.js similarity index 87% rename from docs/document/assets/en_start_setting.md.ce6aa0a7.js rename to docs/document/assets/en_start_setting.md.fb089717.js index b84f74a0d..edf5168ee 100644 --- a/docs/document/assets/en_start_setting.md.ce6aa0a7.js +++ b/docs/document/assets/en_start_setting.md.fb089717.js @@ -1,4 +1,4 @@ -import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[{"level":2,"title":"Selection list","slug":"selection-list","link":"#selection-list","children":[]},{"level":2,"title":"List nesting","slug":"list-nesting","link":"#list-nesting","children":[]},{"level":2,"title":"Toggle button","slug":"toggle-button","link":"#toggle-button","children":[]},{"level":2,"title":"Range Slider","slug":"range-slider","link":"#range-slider","children":[]}],"relativePath":"en/start/setting.md","lastUpdated":1674271220000}'),e={name:"en/start/setting.md"},t=s("h1",{id:"设置面板",tabindex:"-1"},[n("设置面板 "),s("a",{class:"header-anchor",href:"#设置面板","aria-hidden":"true"},"#")],-1),c=s("p",null,[n("You need to open the settings panel first. The player has four settings by default: "),s("code",null,"flip"),n(", "),s("code",null,"playbackRate"),n(", "),s("code",null,"aspectRatio"),n(", "),s("code",null,"subtitleOffset")],-1),r=s("div",{className:"run-code"},"▶ Run Code",-1),D=a(`
js
var art = new Artplayer({
+import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const w=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/setting.md","lastUpdated":1674271220000}'),e={name:"en/start/setting.md"},t=s("h1",{id:"设置面板",tabindex:"-1"},[n("设置面板 "),s("a",{class:"header-anchor",href:"#设置面板","aria-label":'Permalink to "设置面板"'},"​")],-1),c=s("p",null,[n("You need to open the settings panel first. The player has four settings by default: "),s("code",null,"flip"),n(", "),s("code",null,"playbackRate"),n(", "),s("code",null,"aspectRatio"),n(", "),s("code",null,"subtitleOffset")],-1),r=s("div",{className:"run-code"},"▶ Run Code",-1),D=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 	setting: true,
@@ -7,7 +7,7 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.pars
     aspectRatio: true,
     subtitleOffset: true,
 });
-

Selection list

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
selectorArrayElement list
onSelectFunctionElement click event
widthNumberList width
tooltipStringPrompt text
`,3),y=s("div",{className:"run-code"},"▶ Run Code",-1),F=a(`
js
var art = new Artplayer({
+

Selection list ​

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
selectorArrayElement list
onSelectFunctionElement click event
widthNumberList width
tooltipStringPrompt text
`,3),y=s("div",{className:"run-code"},"▶ Run Code",-1),F=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -60,7 +60,7 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.pars
         },
     ],
 });
-

List nesting

`,2),C=s("div",{className:"run-code"},"▶ Run Code",-1),A=a(`
js
var art = new Artplayer({
+

List nesting ​

`,2),C=s("div",{className:"run-code"},"▶ Run Code",-1),A=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -104,7 +104,7 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.pars
         },
     ],
 });
-

Toggle button

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
switchBooleanButton default state
onSwitchFunctionButton switching event
tooltipStringPrompt text
`,3),i=s("div",{className:"run-code"},"▶ Run Code",-1),d=a(`
js
var art = new Artplayer({
+

Toggle button ​

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
switchBooleanButton default state
onSwitchFunctionButton switching event
tooltipStringPrompt text
`,3),i=s("div",{className:"run-code"},"▶ Run Code",-1),d=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -124,12 +124,12 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.pars
         },
     ],
 });
-

Range Slider

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
rangeArrayDefault state array
onRangeFunctionEvent triggered on completion
onChangeFunctionEvents triggered when changing
tooltipStringPrompt text
js
const range = [5, 1, 10, 1];
+

Range Slider ​

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
rangeArrayDefault state array
onRangeFunctionEvent triggered on completion
onChangeFunctionEvents triggered when changing
tooltipStringPrompt text
js
const range = [5, 1, 10, 1];
 const value = range[0];
 const min = range[1];
 const max = range[2];
 const step = range[3];
-
`,4),b=s("div",{className:"run-code"},"▶ Run Code",-1),u=a(`
js
var art = new Artplayer({
+
`,4),b=s("div",{className:"run-code"},"▶ Run Code",-1),m=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -146,4 +146,4 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.pars
         },
     ],
 });
-
`,1),m=[t,c,r,D,y,F,C,A,i,d,b,u];function h(g,_,E,f,v,S){return o(),p("div",null,m)}const x=l(e,[["render",h]]);export{w as __pageData,x as default}; +
`,1),u=[t,c,r,D,y,F,C,A,i,d,b,m];function h(g,_,E,f,v,S){return o(),p("div",null,u)}const P=l(e,[["render",h]]);export{w as __pageData,P as default}; diff --git a/docs/document/assets/en_start_setting.md.fb089717.lean.js b/docs/document/assets/en_start_setting.md.fb089717.lean.js new file mode 100644 index 000000000..15586629c --- /dev/null +++ b/docs/document/assets/en_start_setting.md.fb089717.lean.js @@ -0,0 +1 @@ +import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const w=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[],"relativePath":"en/start/setting.md","lastUpdated":1674271220000}'),e={name:"en/start/setting.md"},t=s("h1",{id:"设置面板",tabindex:"-1"},[n("设置面板 "),s("a",{class:"header-anchor",href:"#设置面板","aria-label":'Permalink to "设置面板"'},"​")],-1),c=s("p",null,[n("You need to open the settings panel first. The player has four settings by default: "),s("code",null,"flip"),n(", "),s("code",null,"playbackRate"),n(", "),s("code",null,"aspectRatio"),n(", "),s("code",null,"subtitleOffset")],-1),r=s("div",{className:"run-code"},"▶ Run Code",-1),D=a("",3),y=s("div",{className:"run-code"},"▶ Run Code",-1),F=a("",2),C=s("div",{className:"run-code"},"▶ Run Code",-1),A=a("",3),i=s("div",{className:"run-code"},"▶ Run Code",-1),d=a("",4),b=s("div",{className:"run-code"},"▶ Run Code",-1),m=a("",1),u=[t,c,r,D,y,F,C,A,i,d,b,m];function h(g,_,E,f,v,S){return o(),p("div",null,u)}const P=l(e,[["render",h]]);export{w as __pageData,P as default}; diff --git a/docs/document/assets/index.md.4a4c805f.js b/docs/document/assets/index.md.28154eff.js similarity index 84% rename from docs/document/assets/index.md.4a4c805f.js rename to docs/document/assets/index.md.28154eff.js index 44bc695ce..e1dbdffb6 100644 --- a/docs/document/assets/index.md.4a4c805f.js +++ b/docs/document/assets/index.md.28154eff.js @@ -1,16 +1,16 @@ -import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{"title":"安装使用","description":"","frontmatter":{},"headers":[{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]},{"level":2,"title":"Vue.js","slug":"vue-js","link":"#vue-js","children":[]},{"level":2,"title":"React.js","slug":"react-js","link":"#react-js","children":[]},{"level":2,"title":"语法提示","slug":"语法提示","link":"#语法提示","children":[]}],"relativePath":"index.md","lastUpdated":1677208560000}'),p={name:"index.md"},e=l(`

安装使用

安装

bash
npm install artplayer
-
bash
yarn add artplayer
-
bash
pnpm add artplayer
-
html
<script src="path/to/artplayer.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
-
bash
https://unpkg.com/artplayer/dist/artplayer.js
-

使用

js
import Artplayer from 'artplayer';
+import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=JSON.parse('{"title":"安装使用","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","lastUpdated":1677208560000}'),p={name:"index.md"},o=l(`

安装使用 ​

安装 ​

bash
npm install artplayer
+
bash
yarn add artplayer
+
bash
pnpm add artplayer
+
html
<script src="path/to/artplayer.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
+
bash
https://unpkg.com/artplayer/dist/artplayer.js
+

使用 ​

js
import Artplayer from 'artplayer';
 
 const art = new Artplayer({
     container: '.artplayer-app',
     url: 'path/to/video.mp4',
 });
-
html
<html>
+
html
<html>
     <head>
         <title>ArtPlayer Demo</title>
         <meta charset="UTF-8" />
@@ -25,7 +25,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{
         <div class="artplayer-app"></div>
     </body>
 </html>
-

提示

播放器的尺寸依赖于容器 container 的尺寸,所以你的容器 container 必须是有尺寸的

以下链接可以看到更多的使用例子

/packages/artplayer-template

Vue.js

vue
<template>
+

提示

播放器的尺寸依赖于容器 container 的尺寸,所以你的容器 container 必须是有尺寸的

以下链接可以看到更多的使用例子

/packages/artplayer-template

Vue.js ​

vue
<template>
   <div ref="artRef"></div>
 </template>
 
@@ -61,7 +61,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{
   },
 };
 </script>
-
vue
<template>
+
vue
<template>
   <Artplayer @get-instance="getInstance" :option="option" :style="style" />
 </template>
 
@@ -91,7 +91,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{
   },
 };
 </script>
-

Artplayer 非响应式:

在 Vue.js 里直接修改 option 是不会改变播放器的

React.js

jsx
import { useEffect, useRef } from 'react';
+

Artplayer 非响应式:

在 Vue.js 里直接修改 option 是不会改变播放器的

React.js ​

jsx
import { useEffect, useRef } from 'react';
 import Artplayer from 'artplayer';
 
 export default function Player({ option, getInstance, ...rest }) {
@@ -116,7 +116,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{
 
     return <div ref={artRef} {...rest}></div>;
 }
-
jsx
import React from 'react';
+
jsx
import React from 'react';
 import Artplayer from './ArtPlayer.jsx';
 
 function App() {
@@ -138,17 +138,17 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{
 }
 
 export default App;
-

Artplayer 非响应式:

在 React.js 里直接修改 option 是不会改变播放器的

语法提示

有时你的 js 文件会丢失 TypeScript 的类型提示,这时候你可以手动导入类型

变量:

js
/**
+

Artplayer 非响应式:

在 React.js 里直接修改 option 是不会改变播放器的

语法提示 ​

有时你的 js 文件会丢失 TypeScript 的类型提示,这时候你可以手动导入类型

变量:

js
/**
  * @type {import("artplayer")}
  */
 let art = null;
-

参数:

js
/**
+

参数:

js
/**
  * @param {import("artplayer")} art
  */
 function getInstance(art) {
   //
 }
-

属性:

js
export default {
+

属性:

js
export default {
   data() {
     return {
       /**
@@ -158,4 +158,4 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{
     }
   }
 }
-
`,23),o=[e];function t(r,c,F,y,i,D){return a(),n("div",null,o)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; +
`,23),e=[o];function t(r,c,y,F,D,i){return a(),n("div",null,e)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; diff --git a/docs/document/assets/index.md.28154eff.lean.js b/docs/document/assets/index.md.28154eff.lean.js new file mode 100644 index 000000000..4a77b0b6d --- /dev/null +++ b/docs/document/assets/index.md.28154eff.lean.js @@ -0,0 +1 @@ +import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const C=JSON.parse('{"title":"安装使用","description":"","frontmatter":{},"headers":[],"relativePath":"index.md","lastUpdated":1677208560000}'),p={name:"index.md"},o=l("",23),e=[o];function t(r,c,y,F,D,i){return a(),n("div",null,e)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; diff --git a/docs/document/assets/index.md.4a4c805f.lean.js b/docs/document/assets/index.md.4a4c805f.lean.js deleted file mode 100644 index bdd47c255..000000000 --- a/docs/document/assets/index.md.4a4c805f.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const C=JSON.parse('{"title":"安装使用","description":"","frontmatter":{},"headers":[{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]},{"level":2,"title":"Vue.js","slug":"vue-js","link":"#vue-js","children":[]},{"level":2,"title":"React.js","slug":"react-js","link":"#react-js","children":[]},{"level":2,"title":"语法提示","slug":"语法提示","link":"#语法提示","children":[]}],"relativePath":"index.md","lastUpdated":1677208560000}'),p={name:"index.md"},e=l("",23),o=[e];function t(r,c,F,y,i,D){return a(),n("div",null,o)}const u=s(p,[["render",t]]);export{C as __pageData,u as default}; diff --git a/docs/document/assets/library_dash.md.99d9a876.lean.js b/docs/document/assets/library_dash.md.99d9a876.lean.js deleted file mode 100644 index d74151a5a..000000000 --- a/docs/document/assets/library_dash.md.99d9a876.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as n,c as l,o as p,b as s,d as a,a as o}from"./app.77a2ba76.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/dash.md","lastUpdated":1676696783000}'),e={name:"library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,d,b,h){return p(),l("div",null,y)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/library_dash.md.99d9a876.js b/docs/document/assets/library_dash.md.b524166f.js similarity index 85% rename from docs/document/assets/library_dash.md.99d9a876.js rename to docs/document/assets/library_dash.md.b524166f.js index a4f48d57d..78d9edb69 100644 --- a/docs/document/assets/library_dash.md.99d9a876.js +++ b/docs/document/assets/library_dash.md.b524166f.js @@ -1,4 +1,4 @@ -import{_ as n,c as l,o as p,b as s,d as a,a as o}from"./app.77a2ba76.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/dash.md","lastUpdated":1676696783000}'),e={name:"library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playMpd(video, url, art) {
+import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/dash.md","lastUpdated":1676696783000}'),e={name:"library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-label":'Permalink to "dash.js"'},"​")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playMpd(video, url, art) {
     if (dashjs.supportsMediaSource()) {
         const dash = dashjs.MediaPlayer().create();
         dash.initialize(video, url, art.option.autoplay);
@@ -24,4 +24,4 @@ import{_ as n,c as l,o as p,b as s,d as a,a as o}from"./app.77a2ba76.js";const m
 art.on('ready', () => {
     console.info(art.dash);
 });
-
`,1),y=[r,t,c,F];function D(i,A,C,d,b,h){return p(),l("div",null,y)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; +
`,1),y=[r,t,c,F];function D(A,i,C,d,b,h){return p(),l("div",null,y)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/library_dash.md.b524166f.lean.js b/docs/document/assets/library_dash.md.b524166f.lean.js new file mode 100644 index 000000000..20886b2f9 --- /dev/null +++ b/docs/document/assets/library_dash.md.b524166f.lean.js @@ -0,0 +1 @@ +import{_ as n,c as l,o as p,x as s,a,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"dash.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/dash.md","lastUpdated":1676696783000}'),e={name:"library/dash.md"},r=s("h1",{id:"dash-js",tabindex:"-1"},[a("dash.js "),s("a",{class:"header-anchor",href:"#dash-js","aria-label":'Permalink to "dash.js"'},"​")],-1),t=s("p",null,[a("👉 "),s("a",{href:"https://github.com/Dash-Industry-Forum/dash.js",target:"_blank",rel:"noreferrer"},"https://github.com/Dash-Industry-Forum/dash.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,d,b,h){return p(),l("div",null,y)}const _=n(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/library_flv.md.05440acf.lean.js b/docs/document/assets/library_flv.md.05440acf.lean.js deleted file mode 100644 index b89b5ddc4..000000000 --- a/docs/document/assets/library_flv.md.05440acf.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const f=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/flv.md","lastUpdated":1673441101000}'),e={name:"library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,b,d,u){return p(),l("div",null,y)}const h=a(e,[["render",D]]);export{f as __pageData,h as default}; diff --git a/docs/document/assets/library_flv.md.05440acf.js b/docs/document/assets/library_flv.md.8806bb62.js similarity index 86% rename from docs/document/assets/library_flv.md.05440acf.js rename to docs/document/assets/library_flv.md.8806bb62.js index a2e998e54..b8764633a 100644 --- a/docs/document/assets/library_flv.md.05440acf.js +++ b/docs/document/assets/library_flv.md.8806bb62.js @@ -1,4 +1,4 @@ -import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const f=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/flv.md","lastUpdated":1673441101000}'),e={name:"library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playFlv(video, url, art) {
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/flv.md","lastUpdated":1673441101000}'),e={name:"library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-label":'Permalink to "flv.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playFlv(video, url, art) {
     if (flvjs.isSupported()) {
         const flv = flvjs.createPlayer({ type: 'flv', url });
         flv.attachMediaElement(video);
diff --git a/docs/document/assets/library_flv.md.8806bb62.lean.js b/docs/document/assets/library_flv.md.8806bb62.lean.js
new file mode 100644
index 000000000..15005f4d2
--- /dev/null
+++ b/docs/document/assets/library_flv.md.8806bb62.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const f=JSON.parse('{"title":"flv.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/flv.md","lastUpdated":1673441101000}'),e={name:"library/flv.md"},r=s("h1",{id:"flv-js",tabindex:"-1"},[n("flv.js "),s("a",{class:"header-anchor",href:"#flv-js","aria-label":'Permalink to "flv.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/Bilibili/flv.js",target:"_blank",rel:"noreferrer"},"https://github.com/Bilibili/flv.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,b,d,u){return p(),l("div",null,y)}const h=a(e,[["render",D]]);export{f as __pageData,h as default};
diff --git a/docs/document/assets/library_hls.md.39b2d4b8.lean.js b/docs/document/assets/library_hls.md.39b2d4b8.lean.js
deleted file mode 100644
index 800f789e7..000000000
--- a/docs/document/assets/library_hls.md.39b2d4b8.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/hls.md","lastUpdated":1673441101000}'),e={name:"library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,b,d,h){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default};
diff --git a/docs/document/assets/en_library_hls.md.a49e2812.js b/docs/document/assets/library_hls.md.3bc46bf1.js
similarity index 86%
rename from docs/document/assets/en_library_hls.md.a49e2812.js
rename to docs/document/assets/library_hls.md.3bc46bf1.js
index bf6e0ca29..3d5b03661 100644
--- a/docs/document/assets/en_library_hls.md.a49e2812.js
+++ b/docs/document/assets/library_hls.md.3bc46bf1.js
@@ -1,4 +1,4 @@
-import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/hls.md","lastUpdated":1673692792000}'),e={name:"en/library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playM3u8(video, url, art) {
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/hls.md","lastUpdated":1673441101000}'),e={name:"library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-label":'Permalink to "hls.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playM3u8(video, url, art) {
     if (Hls.isSupported()) {
         const hls = new Hls();
         hls.loadSource(url);
@@ -27,4 +27,4 @@ import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const m
 art.on('ready', () => {
     console.info(art.hls);
 });
-
`,1),y=[r,t,c,F];function D(i,A,C,b,d,h){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; +
`,1),y=[r,t,c,F];function D(i,A,C,b,h,u){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/library_hls.md.3bc46bf1.lean.js b/docs/document/assets/library_hls.md.3bc46bf1.lean.js new file mode 100644 index 000000000..a90e1be70 --- /dev/null +++ b/docs/document/assets/library_hls.md.3bc46bf1.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const m=JSON.parse('{"title":"hls.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/hls.md","lastUpdated":1673441101000}'),e={name:"library/hls.md"},r=s("h1",{id:"hls-js",tabindex:"-1"},[n("hls.js "),s("a",{class:"header-anchor",href:"#hls-js","aria-label":'Permalink to "hls.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/video-dev/hls.js",target:"_blank",rel:"noreferrer"},"https://github.com/video-dev/hls.js")],-1),c=s("div",{className:"run-code","data-libs":"https://cdnjs.cloudflare.com/ajax/libs/hls.js/8.0.0-beta.3/hls.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(i,A,C,b,h,u){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{m as __pageData,_ as default}; diff --git a/docs/document/assets/en_library_webtorrent.md.ea918503.js b/docs/document/assets/library_webtorrent.md.58ca6f6b.js similarity index 86% rename from docs/document/assets/en_library_webtorrent.md.ea918503.js rename to docs/document/assets/library_webtorrent.md.58ca6f6b.js index afdba1c6f..0f1719ad7 100644 --- a/docs/document/assets/en_library_webtorrent.md.ea918503.js +++ b/docs/document/assets/library_webtorrent.md.58ca6f6b.js @@ -1,4 +1,4 @@ -import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const h=JSON.parse('{"title":"webtorrent.js","description":"","frontmatter":{},"headers":[],"relativePath":"en/library/webtorrent.md","lastUpdated":1676820444000}'),e={name:"en/library/webtorrent.md"},r=s("h1",{id:"webtorrent-js",tabindex:"-1"},[n("webtorrent.js "),s("a",{class:"header-anchor",href:"#webtorrent-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/webtorrent/webtorrent",target:"_blank",rel:"noreferrer"},"https://github.com/webtorrent/webtorrent")],-1),c=s("div",{className:"run-code","data-libs":"https://cdn.jsdelivr.net/npm/webtorrent@2.0.13/index.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playTorrent(video, url, art) {
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"webtorrent.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/webtorrent.md","lastUpdated":1676820444000}'),e={name:"library/webtorrent.md"},r=s("h1",{id:"webtorrent-js",tabindex:"-1"},[n("webtorrent.js "),s("a",{class:"header-anchor",href:"#webtorrent-js","aria-label":'Permalink to "webtorrent.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/webtorrent/webtorrent",target:"_blank",rel:"noreferrer"},"https://github.com/webtorrent/webtorrent")],-1),c=s("div",{className:"run-code","data-libs":"https://cdn.jsdelivr.net/npm/webtorrent@2.0.13/index.min.js"}," ▶ Run Code ",-1),F=o(`
js
function playTorrent(video, url, art) {
     const torrent = new WebTorrent();
     torrent.add(url, function (torrent) {
         var file = torrent.files[0];
@@ -21,7 +21,7 @@ import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const h
         torrent: playTorrent,
     },
 });
-
+
 art.on('ready', () => {
     art.video.controls = false;
     console.info(art.torrent);
diff --git a/docs/document/assets/library_webtorrent.md.58ca6f6b.lean.js b/docs/document/assets/library_webtorrent.md.58ca6f6b.lean.js
new file mode 100644
index 000000000..4bb97b05e
--- /dev/null
+++ b/docs/document/assets/library_webtorrent.md.58ca6f6b.lean.js
@@ -0,0 +1 @@
+import{_ as a,c as l,o as p,x as s,a as n,U as o}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"webtorrent.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/webtorrent.md","lastUpdated":1676820444000}'),e={name:"library/webtorrent.md"},r=s("h1",{id:"webtorrent-js",tabindex:"-1"},[n("webtorrent.js "),s("a",{class:"header-anchor",href:"#webtorrent-js","aria-label":'Permalink to "webtorrent.js"'},"​")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/webtorrent/webtorrent",target:"_blank",rel:"noreferrer"},"https://github.com/webtorrent/webtorrent")],-1),c=s("div",{className:"run-code","data-libs":"https://cdn.jsdelivr.net/npm/webtorrent@2.0.13/index.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,b,d,m){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{h as __pageData,_ as default};
diff --git a/docs/document/assets/library_webtorrent.md.aada1832.lean.js b/docs/document/assets/library_webtorrent.md.aada1832.lean.js
deleted file mode 100644
index 32053d766..000000000
--- a/docs/document/assets/library_webtorrent.md.aada1832.lean.js
+++ /dev/null
@@ -1 +0,0 @@
-import{_ as a,c as l,o as p,b as s,d as n,a as o}from"./app.77a2ba76.js";const h=JSON.parse('{"title":"webtorrent.js","description":"","frontmatter":{},"headers":[],"relativePath":"library/webtorrent.md","lastUpdated":1676820444000}'),e={name:"library/webtorrent.md"},r=s("h1",{id:"webtorrent-js",tabindex:"-1"},[n("webtorrent.js "),s("a",{class:"header-anchor",href:"#webtorrent-js","aria-hidden":"true"},"#")],-1),t=s("p",null,[n("👉 "),s("a",{href:"https://github.com/webtorrent/webtorrent",target:"_blank",rel:"noreferrer"},"https://github.com/webtorrent/webtorrent")],-1),c=s("div",{className:"run-code","data-libs":"https://cdn.jsdelivr.net/npm/webtorrent@2.0.13/index.min.js"}," ▶ Run Code ",-1),F=o("",1),y=[r,t,c,F];function D(A,i,C,b,d,m){return p(),l("div",null,y)}const _=a(e,[["render",D]]);export{h as __pageData,_ as default};
diff --git a/docs/document/assets/plugin_ads.md.d1a697f9.js b/docs/document/assets/plugin_ads.md.c3b42acc.js
similarity index 74%
rename from docs/document/assets/plugin_ads.md.d1a697f9.js
rename to docs/document/assets/plugin_ads.md.c3b42acc.js
index be99bd2a1..0f9ed7665 100644
--- a/docs/document/assets/plugin_ads.md.d1a697f9.js
+++ b/docs/document/assets/plugin_ads.md.c3b42acc.js
@@ -1,10 +1,10 @@
-import{_ as a,c as n,o as l,a as s,b as p}from"./app.77a2ba76.js";const u=JSON.parse('{"title":"视频广告","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]}],"relativePath":"plugin/ads.md","lastUpdated":1673441101000}'),e={name:"plugin/ads.md"},o=s(`

视频广告

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-ads
-
bash
yarn add artplayer-plugin-ads
-
bash
pnpm add artplayer-plugin-ads
-
html
<script src="path/to/artplayer-plugin-ads.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
-
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
-

使用

`,8),r=p("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-ads/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
+import{_ as a,c as n,o as l,U as s,x as p}from"./chunks/framework.75837252.js";const u=JSON.parse('{"title":"视频广告","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/ads.md","lastUpdated":1673441101000}'),e={name:"plugin/ads.md"},o=s(`

视频广告 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-ads
+
bash
yarn add artplayer-plugin-ads
+
bash
pnpm add artplayer-plugin-ads
+
html
<script src="path/to/artplayer-plugin-ads.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
+
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
+

使用 ​

`,8),r=p("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-ads/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
@@ -52,4 +52,4 @@ import{_ as a,c as n,o as l,a as s,b as p}from"./app.77a2ba76.js";const u=JSON.p
 art.on('artplayerPluginAds:skip', (ads) => {
     console.info(ads);
 });
-
`,1),c=[o,r,t];function i(y,D,F,d,C,b){return l(),n("div",null,c)}const m=a(e,[["render",i]]);export{u as __pageData,m as default}; +
`,1),c=[o,r,t];function i(y,D,F,C,b,d){return l(),n("div",null,c)}const m=a(e,[["render",i]]);export{u as __pageData,m as default}; diff --git a/docs/document/assets/plugin_ads.md.c3b42acc.lean.js b/docs/document/assets/plugin_ads.md.c3b42acc.lean.js new file mode 100644 index 000000000..b861322ab --- /dev/null +++ b/docs/document/assets/plugin_ads.md.c3b42acc.lean.js @@ -0,0 +1 @@ +import{_ as a,c as n,o as l,U as s,x as p}from"./chunks/framework.75837252.js";const u=JSON.parse('{"title":"视频广告","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/ads.md","lastUpdated":1673441101000}'),e={name:"plugin/ads.md"},o=s("",8),r=p("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-ads/index.js"}," ▶ Run Code ",-1),t=s("",1),c=[o,r,t];function i(y,D,F,C,b,d){return l(),n("div",null,c)}const m=a(e,[["render",i]]);export{u as __pageData,m as default}; diff --git a/docs/document/assets/plugin_ads.md.d1a697f9.lean.js b/docs/document/assets/plugin_ads.md.d1a697f9.lean.js deleted file mode 100644 index d7267da72..000000000 --- a/docs/document/assets/plugin_ads.md.d1a697f9.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as n,o as l,a as s,b as p}from"./app.77a2ba76.js";const u=JSON.parse('{"title":"视频广告","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]}],"relativePath":"plugin/ads.md","lastUpdated":1673441101000}'),e={name:"plugin/ads.md"},o=s("",8),r=p("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-ads/index.js"}," ▶ Run Code ",-1),t=s("",1),c=[o,r,t];function i(y,D,F,d,C,b){return l(),n("div",null,c)}const m=a(e,[["render",i]]);export{u as __pageData,m as default}; diff --git a/docs/document/assets/plugin_control-ui.md.452a2715.lean.js b/docs/document/assets/plugin_control-ui.md.452a2715.lean.js deleted file mode 100644 index 7eb559ead..000000000 --- a/docs/document/assets/plugin_control-ui.md.452a2715.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as n,c as l,o as p,a as s,b as a}from"./app.77a2ba76.js";const m=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]},{"level":2,"title":"enable","slug":"enable","link":"#enable","children":[]}],"relativePath":"plugin/control-ui.md","lastUpdated":1673441101000}'),e={name:"plugin/control-ui.md"},o=s("",8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s("",4),c=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),i=s("",1),y=[o,r,t,c,i];function D(d,F,C,b,u,A){return p(),l("div",null,y)}const g=n(e,[["render",D]]);export{m as __pageData,g as default}; diff --git a/docs/document/assets/plugin_control-ui.md.452a2715.js b/docs/document/assets/plugin_control-ui.md.77793dbc.js similarity index 62% rename from docs/document/assets/plugin_control-ui.md.452a2715.js rename to docs/document/assets/plugin_control-ui.md.77793dbc.js index 491fb4f26..4b37e35dc 100644 --- a/docs/document/assets/plugin_control-ui.md.452a2715.js +++ b/docs/document/assets/plugin_control-ui.md.77793dbc.js @@ -1,10 +1,10 @@ -import{_ as n,c as l,o as p,a as s,b as a}from"./app.77a2ba76.js";const m=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]},{"level":2,"title":"enable","slug":"enable","link":"#enable","children":[]}],"relativePath":"plugin/control-ui.md","lastUpdated":1673441101000}'),e={name:"plugin/control-ui.md"},o=s(`

控制器皮肤

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-control
-
bash
yarn add artplayer-plugin-control
-
bash
pnpm add artplayer-plugin-control
-
html
<script src="path/to/artplayer-plugin-control.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
-
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js
-

使用

`,8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
+import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/control-ui.md","lastUpdated":1673441101000}'),e={name:"plugin/control-ui.md"},o=s(`

控制器皮肤 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-control
+
bash
yarn add artplayer-plugin-control
+
bash
pnpm add artplayer-plugin-control
+
html
<script src="path/to/artplayer-plugin-control.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
+
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js
+

使用 ​

`,8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -13,7 +13,7 @@ import{_ as n,c as l,o as p,a as s,b as a}from"./app.77a2ba76.js";const m=JSON.p
         artplayerPluginControl(),
     ],
 });
-

enable

  • Type: Getter/Setter
  • Parameter: Boolean

是否启用新的控制器皮肤

`,4),c=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),i=s(`
js
var art = new Artplayer({
+

enable ​

  • Type: Getter/Setter
  • Parameter: Boolean

是否启用新的控制器皮肤

`,4),c=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),i=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -32,4 +32,4 @@ import{_ as n,c as l,o as p,a as s,b as a}from"./app.77a2ba76.js";const m=JSON.p
         artplayerPluginControl(),
     ],
 });
-
`,1),y=[o,r,t,c,i];function D(d,F,C,b,u,A){return p(),l("div",null,y)}const g=n(e,[["render",D]]);export{m as __pageData,g as default}; +
`,1),y=[o,r,t,c,i];function D(F,C,d,b,u,A){return p(),l("div",null,y)}const g=n(e,[["render",D]]);export{h as __pageData,g as default}; diff --git a/docs/document/assets/plugin_control-ui.md.77793dbc.lean.js b/docs/document/assets/plugin_control-ui.md.77793dbc.lean.js new file mode 100644 index 000000000..4085dc512 --- /dev/null +++ b/docs/document/assets/plugin_control-ui.md.77793dbc.lean.js @@ -0,0 +1 @@ +import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const h=JSON.parse('{"title":"控制器皮肤","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/control-ui.md","lastUpdated":1673441101000}'),e={name:"plugin/control-ui.md"},o=s("",8),r=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),t=s("",4),c=a("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-control/index.js"}," ▶ Run Code ",-1),i=s("",1),y=[o,r,t,c,i];function D(F,C,d,b,u,A){return p(),l("div",null,y)}const g=n(e,[["render",D]]);export{h as __pageData,g as default}; diff --git a/docs/document/assets/plugin_danmuku.md.dca0b589.js b/docs/document/assets/plugin_danmuku.md.919ae64e.js similarity index 87% rename from docs/document/assets/plugin_danmuku.md.dca0b589.js rename to docs/document/assets/plugin_danmuku.md.919ae64e.js index 2b3bc1e9e..7e0831feb 100644 --- a/docs/document/assets/plugin_danmuku.md.dca0b589.js +++ b/docs/document/assets/plugin_danmuku.md.919ae64e.js @@ -1,10 +1,10 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"选项","slug":"选项","link":"#选项","children":[]},{"level":2,"title":"使用弹幕数组","slug":"使用弹幕数组","link":"#使用弹幕数组","children":[]},{"level":2,"title":"使用弹幕 XML","slug":"使用弹幕-xml","link":"#使用弹幕-xml","children":[]},{"level":2,"title":"使用异步调用","slug":"使用异步调用","link":"#使用异步调用","children":[]},{"level":2,"title":"hide/show","slug":"hide-show","link":"#hide-show","children":[]},{"level":2,"title":"isHide","slug":"ishide","link":"#ishide","children":[]},{"level":2,"title":"emit","slug":"emit","link":"#emit","children":[]},{"level":2,"title":"config","slug":"config","link":"#config","children":[]},{"level":2,"title":"load","slug":"load","link":"#load","children":[]},{"level":2,"title":"reset","slug":"reset","link":"#reset","children":[]},{"level":2,"title":"option","slug":"option","link":"#option","children":[]},{"level":2,"title":"事件","slug":"事件","link":"#事件","children":[]}],"relativePath":"plugin/danmuku.md","lastUpdated":1673441101000}'),o={name:"plugin/danmuku.md"},e=s(`

弹幕库

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-danmuku
-
bash
yarn add artplayer-plugin-danmuku
-
bash
pnpm add artplayer-plugin-danmuku
-
html
<script src="path/to/artplayer-plugin-danmuku.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
-
bash
https://unpkg.com/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
-

选项

js
{
+import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const N=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/danmuku.md","lastUpdated":1673441101000}'),o={name:"plugin/danmuku.md"},e=s(`

弹幕库 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-danmuku
+
bash
yarn add artplayer-plugin-danmuku
+
bash
pnpm add artplayer-plugin-danmuku
+
html
<script src="path/to/artplayer-plugin-danmuku.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
+
bash
https://unpkg.com/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
+

选项 ​

js
{
     danmuku: [], // 弹幕库,支持数组, xml 地址, Promise返回数组
     speed: 5, // 弹幕持续时间,单位秒,范围在[1 ~ 10]
     opacity: 1, // 弹幕透明度,范围在[0 ~ 1]
@@ -25,7 +25,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.p
     // 通过 mount 选项可以自定义输入框挂载的位置,默认挂载于播放器底部,仅在当宽度小于最小值时生效
     mount: document.querySelector('.artplayer-danmuku'),
 }
-

使用弹幕数组

`,10),r=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),c=s(`
js
var art = new Artplayer({
+

使用弹幕数组 ​

`,10),r=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),c=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -58,7 +58,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.p
         }),
     ],
 });
-

使用弹幕 XML

`,2),t=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),D=s(`
js
var art = new Artplayer({
+

使用弹幕 XML ​

`,2),t=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),D=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -68,7 +68,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.p
         }),
     ],
 });
-

使用异步调用

`,2),F=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),y=s(`
js
var art = new Artplayer({
+

使用异步调用 ​

`,2),F=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),y=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -95,7 +95,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.p
         }),
     ],
 });
-

hide/show

通过方法 hide 和 show 进行隐藏或者显示弹幕

`,3),i=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),C=s(`
js
var art = new Artplayer({
+

hide/show ​

通过方法 hide 和 show 进行隐藏或者显示弹幕

`,3),i=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),C=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -120,7 +120,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.p
         },
     ],
 });
-

isHide

通过属性 isHide 判断当前弹幕是隐藏或者显示

`,3),A=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),u=s(`
js
var art = new Artplayer({
+

isHide ​

通过属性 isHide 判断当前弹幕是隐藏或者显示

`,3),A=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),u=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -144,7 +144,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.p
         },
     ],
 });
-

emit

通过方法 emit 发送一条实时弹幕

`,3),b=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),m=s(`
js
var art = new Artplayer({
+

emit ​

通过方法 emit 发送一条实时弹幕

`,3),b=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),m=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -169,7 +169,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.p
         },
     ],
 });
-

config

通过方法 config 实时改变弹幕配置,支持属性有:

  • danmuku
  • speed
  • opacity
  • fontSize
  • color
  • mode
  • margin
  • antiOverlap
  • synchronousPlayback
  • filter
  • lockTime
  • beforeEmit
`,4),d=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),h=s(`
js
var art = new Artplayer({
+

config ​

通过方法 config 实时改变弹幕配置,支持属性有:

  • danmuku
  • speed
  • opacity
  • fontSize
  • color
  • mode
  • margin
  • antiOverlap
  • synchronousPlayback
  • filter
  • lockTime
  • beforeEmit
`,4),d=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),h=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -196,7 +196,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.p
         },
     ],
 });
-

load

通过 load 方法可以重载弹幕源,或者切换新弹幕

`,3),g=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),_=s(`
js
var art = new Artplayer({
+

load ​

通过 load 方法可以重载弹幕源,或者切换新弹幕

`,3),g=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),_=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -224,7 +224,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.p
         },
     ],
 });
-

reset

用于清空当前显示的弹幕

`,3),E=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),v=s(`
js
var art = new Artplayer({
+

reset ​

用于清空当前显示的弹幕

`,3),E=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),k=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -238,7 +238,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.p
 art.on('resize', () => {
     art.plugins.artplayerPluginDanmuku.reset();
 });
-

option

用于获取当前弹幕配置

`,3),k=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),f=s(`
js
var art = new Artplayer({
+

option ​

用于获取当前弹幕配置

`,3),v=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),f=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -252,7 +252,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.p
 art.on('ready', () => {
     console.info(art.plugins.artplayerPluginDanmuku.option);
 });
-

事件

js
var art = new Artplayer({
+

事件 ​

js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -298,4 +298,4 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.p
 art.on('artplayerPluginDanmuku:destroy', () => {
     console.info('弹幕销毁');
 });
-
`,3),x=[e,r,c,t,D,F,y,i,C,A,u,b,m,d,h,g,_,E,v,k,f];function T(P,B,w,S,j,N){return p(),l("div",null,x)}const R=a(o,[["render",T]]);export{I as __pageData,R as default}; +
`,3),P=[e,r,c,t,D,F,y,i,C,A,u,b,m,d,h,g,_,E,k,v,f];function T(x,B,q,j,w,S){return p(),l("div",null,P)}const I=a(o,[["render",T]]);export{N as __pageData,I as default}; diff --git a/docs/document/assets/plugin_danmuku.md.919ae64e.lean.js b/docs/document/assets/plugin_danmuku.md.919ae64e.lean.js new file mode 100644 index 000000000..56bd77ddb --- /dev/null +++ b/docs/document/assets/plugin_danmuku.md.919ae64e.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const N=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/danmuku.md","lastUpdated":1673441101000}'),o={name:"plugin/danmuku.md"},e=s("",10),r=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),c=s("",2),t=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),D=s("",2),F=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),y=s("",3),i=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),C=s("",3),A=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),u=s("",3),b=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),m=s("",4),d=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),h=s("",3),g=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),_=s("",3),E=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),k=s("",3),v=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),f=s("",3),P=[e,r,c,t,D,F,y,i,C,A,u,b,m,d,h,g,_,E,k,v,f];function T(x,B,q,j,w,S){return p(),l("div",null,P)}const I=a(o,[["render",T]]);export{N as __pageData,I as default}; diff --git a/docs/document/assets/plugin_danmuku.md.dca0b589.lean.js b/docs/document/assets/plugin_danmuku.md.dca0b589.lean.js deleted file mode 100644 index ab9fab313..000000000 --- a/docs/document/assets/plugin_danmuku.md.dca0b589.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const I=JSON.parse('{"title":"弹幕库","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"选项","slug":"选项","link":"#选项","children":[]},{"level":2,"title":"使用弹幕数组","slug":"使用弹幕数组","link":"#使用弹幕数组","children":[]},{"level":2,"title":"使用弹幕 XML","slug":"使用弹幕-xml","link":"#使用弹幕-xml","children":[]},{"level":2,"title":"使用异步调用","slug":"使用异步调用","link":"#使用异步调用","children":[]},{"level":2,"title":"hide/show","slug":"hide-show","link":"#hide-show","children":[]},{"level":2,"title":"isHide","slug":"ishide","link":"#ishide","children":[]},{"level":2,"title":"emit","slug":"emit","link":"#emit","children":[]},{"level":2,"title":"config","slug":"config","link":"#config","children":[]},{"level":2,"title":"load","slug":"load","link":"#load","children":[]},{"level":2,"title":"reset","slug":"reset","link":"#reset","children":[]},{"level":2,"title":"option","slug":"option","link":"#option","children":[]},{"level":2,"title":"事件","slug":"事件","link":"#事件","children":[]}],"relativePath":"plugin/danmuku.md","lastUpdated":1673441101000}'),o={name:"plugin/danmuku.md"},e=s("",10),r=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),c=s("",2),t=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),D=s("",2),F=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),y=s("",3),i=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),C=s("",3),A=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),u=s("",3),b=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),m=s("",4),d=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),h=s("",3),g=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),_=s("",3),E=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),v=s("",3),k=n("div",{className:"run-code","data-libs":"./uncompiled/artplayer-plugin-danmuku/index.js"}," ▶ Run Code ",-1),f=s("",3),x=[e,r,c,t,D,F,y,i,C,A,u,b,m,d,h,g,_,E,v,k,f];function T(P,B,w,S,j,N){return p(),l("div",null,x)}const R=a(o,[["render",T]]);export{I as __pageData,R as default}; diff --git a/docs/document/assets/plugin_dash-quality.md.10dbb325.js b/docs/document/assets/plugin_dash-quality.md.10dbb325.js new file mode 100644 index 000000000..b3fb76108 --- /dev/null +++ b/docs/document/assets/plugin_dash-quality.md.10dbb325.js @@ -0,0 +1,7 @@ +import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/dash-quality.md","lastUpdated":1676696783000}'),n={name:"plugin/dash-quality.md"},p=l(`

Dash 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-dash-quality
+
bash
yarn add artplayer-plugin-dash-quality
+
bash
pnpm add artplayer-plugin-dash-quality
+
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
+
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
+
`,7),t=[p];function i(r,o,c,d,u,h){return e(),s("div",null,t)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/plugin_dash-quality.md.10dbb325.lean.js b/docs/document/assets/plugin_dash-quality.md.10dbb325.lean.js new file mode 100644 index 000000000..bcef7b6d3 --- /dev/null +++ b/docs/document/assets/plugin_dash-quality.md.10dbb325.lean.js @@ -0,0 +1 @@ +import{_ as a,c as s,o as e,U as l}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/dash-quality.md","lastUpdated":1676696783000}'),n={name:"plugin/dash-quality.md"},p=l("",7),t=[p];function i(r,o,c,d,u,h){return e(),s("div",null,t)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/plugin_dash-quality.md.9cf0ae9b.js b/docs/document/assets/plugin_dash-quality.md.9cf0ae9b.js deleted file mode 100644 index 1a0c71f0d..000000000 --- a/docs/document/assets/plugin_dash-quality.md.9cf0ae9b.js +++ /dev/null @@ -1,7 +0,0 @@ -import{_ as a,c as s,o as e,a as n}from"./app.77a2ba76.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]}],"relativePath":"plugin/dash-quality.md","lastUpdated":1676696783000}'),l={name:"plugin/dash-quality.md"},p=n(`

Dash 画质

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-dash-quality
-
bash
yarn add artplayer-plugin-dash-quality
-
bash
pnpm add artplayer-plugin-dash-quality
-
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
-
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
-
`,7),t=[p];function i(r,d,o,c,u,h){return e(),s("div",null,t)}const m=a(l,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/plugin_dash-quality.md.9cf0ae9b.lean.js b/docs/document/assets/plugin_dash-quality.md.9cf0ae9b.lean.js deleted file mode 100644 index 55b870c06..000000000 --- a/docs/document/assets/plugin_dash-quality.md.9cf0ae9b.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as s,o as e,a as n}from"./app.77a2ba76.js";const y=JSON.parse('{"title":"Dash 画质","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]}],"relativePath":"plugin/dash-quality.md","lastUpdated":1676696783000}'),l={name:"plugin/dash-quality.md"},p=n("",7),t=[p];function i(r,d,o,c,u,h){return e(),s("div",null,t)}const m=a(l,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/plugin_hls-quality.md.92f95063.js b/docs/document/assets/plugin_hls-quality.md.92f95063.js new file mode 100644 index 000000000..46abe5133 --- /dev/null +++ b/docs/document/assets/plugin_hls-quality.md.92f95063.js @@ -0,0 +1,7 @@ +import{_ as a,c as s,o as l,U as e}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/hls-quality.md","lastUpdated":1673441101000}'),n={name:"plugin/hls-quality.md"},p=e(`

HLS 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-hls-quality
+
bash
yarn add artplayer-plugin-hls-quality
+
bash
pnpm add artplayer-plugin-hls-quality
+
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
+
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
+
`,7),t=[p];function i(r,o,c,d,u,b){return l(),s("div",null,t)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/plugin_hls-quality.md.92f95063.lean.js b/docs/document/assets/plugin_hls-quality.md.92f95063.lean.js new file mode 100644 index 000000000..031a2095a --- /dev/null +++ b/docs/document/assets/plugin_hls-quality.md.92f95063.lean.js @@ -0,0 +1 @@ +import{_ as a,c as s,o as l,U as e}from"./chunks/framework.75837252.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/hls-quality.md","lastUpdated":1673441101000}'),n={name:"plugin/hls-quality.md"},p=e("",7),t=[p];function i(r,o,c,d,u,b){return l(),s("div",null,t)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/plugin_hls-quality.md.d6b0ffed.js b/docs/document/assets/plugin_hls-quality.md.d6b0ffed.js deleted file mode 100644 index 059357fb2..000000000 --- a/docs/document/assets/plugin_hls-quality.md.d6b0ffed.js +++ /dev/null @@ -1,7 +0,0 @@ -import{_ as a,c as s,o as e,a as l}from"./app.77a2ba76.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]}],"relativePath":"plugin/hls-quality.md","lastUpdated":1673441101000}'),n={name:"plugin/hls-quality.md"},t=l(`

HLS 画质

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-hls-quality
-
bash
yarn add artplayer-plugin-hls-quality
-
bash
pnpm add artplayer-plugin-hls-quality
-
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
-
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
-
`,7),p=[t];function i(r,o,c,d,u,h){return e(),s("div",null,p)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/plugin_hls-quality.md.d6b0ffed.lean.js b/docs/document/assets/plugin_hls-quality.md.d6b0ffed.lean.js deleted file mode 100644 index 97d430b7a..000000000 --- a/docs/document/assets/plugin_hls-quality.md.d6b0ffed.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as s,o as e,a as l}from"./app.77a2ba76.js";const y=JSON.parse('{"title":"HLS 画质","description":"","frontmatter":{},"headers":[{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]}],"relativePath":"plugin/hls-quality.md","lastUpdated":1673441101000}'),n={name:"plugin/hls-quality.md"},t=l("",7),p=[t];function i(r,o,c,d,u,h){return e(),s("div",null,p)}const m=a(n,[["render",i]]);export{y as __pageData,m as default}; diff --git a/docs/document/assets/en_plugin_iframe.md.59ae4049.js b/docs/document/assets/plugin_iframe.md.bf3547f5.js similarity index 82% rename from docs/document/assets/en_plugin_iframe.md.59ae4049.js rename to docs/document/assets/plugin_iframe.md.bf3547f5.js index 94d105611..bfc27b4a6 100644 --- a/docs/document/assets/en_plugin_iframe.md.59ae4049.js +++ b/docs/document/assets/plugin_iframe.md.bf3547f5.js @@ -1,10 +1,10 @@ -import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{"title":"Iframe 控制","description":"","frontmatter":{},"headers":[{"level":2,"title":"说明","slug":"说明","link":"#说明","children":[]},{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]},{"level":2,"title":"index.html 接口","slug":"index-html-接口","link":"#index-html-接口","children":[{"level":3,"title":"commit","slug":"commit","link":"#commit","children":[]},{"level":3,"title":"message","slug":"message","link":"#message","children":[]},{"level":3,"title":"destroy","slug":"destroy","link":"#destroy","children":[]}]},{"level":2,"title":"iframe.html 接口","slug":"iframe-html-接口","link":"#iframe-html-接口","children":[{"level":3,"title":"inject","slug":"inject","link":"#inject","children":[]},{"level":3,"title":"postMessage","slug":"postmessage","link":"#postmessage","children":[]}]},{"level":2,"title":"例子","slug":"例子","link":"#例子","children":[]}],"relativePath":"en/plugin/iframe.md","lastUpdated":1673692792000}'),p={name:"en/plugin/iframe.md"},e=l(`

Iframe 控制

说明

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-iframe
-
bash
yarn add artplayer-plugin-iframe
-
bash
pnpm add artplayer-plugin-iframe
-
html
<script src="path/to/artplayer-plugin-iframe.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
-
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
-

使用

html
<!DOCTYPE html>
+import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const b=JSON.parse('{"title":"Iframe 控制","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/iframe.md","lastUpdated":1673665918000}'),p={name:"plugin/iframe.md"},o=l(`

Iframe 控制 ​

说明 ​

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-iframe
+
bash
yarn add artplayer-plugin-iframe
+
bash
pnpm add artplayer-plugin-iframe
+
html
<script src="path/to/artplayer-plugin-iframe.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
+
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
+

使用 ​

html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -31,7 +31,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
         </script>
     </body>
 </html>
-
html
<!DOCTYPE html>
+
html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -56,7 +56,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
         </script>
     </body>
 </html>
-

index.html 接口

commit

从 index.html 将消息推送到 iframe.html,该函数将在 iframe.html 内部运行,同时它也能用于异步获取 iframe.html 里的值

js
iframe.commit(() => {
+

index.html 接口 ​

commit ​

从 index.html 将消息推送到 iframe.html,该函数将在 iframe.html 内部运行,同时它也能用于异步获取 iframe.html 里的值

js
iframe.commit(() => {
     var art = new Artplayer({
         container: '.artplayer-app',
         url: 'path/to/video.mp4',
@@ -81,12 +81,12 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
         }, 1000);
     });
 })();
-

message

在 index.html 接收来自 iframe.html 的消息

js
iframe.message((event) => {
+

message ​

在 index.html 接收来自 iframe.html 的消息

js
iframe.message((event) => {
     console.info(event);
 });
-

destroy

销毁后 index.html 无法与 iframe.html 通信

js
iframe.destroy();
-

iframe.html 接口

提示

iframe.html 接口 只能运行在 iframe.html 里

inject

注入脚本,接收来自 index.html 的消息

js
ArtplayerPluginIframe.inject();
-

postMessage

将消息推送到 index.html

js
iframe.message((event) => {
+

destroy ​

销毁后 index.html 无法与 iframe.html 通信

js
iframe.destroy();
+

iframe.html 接口 ​

提示

iframe.html 接口 只能运行在 iframe.html 里

inject ​

注入脚本,接收来自 index.html 的消息

js
ArtplayerPluginIframe.inject();
+

postMessage ​

将消息推送到 index.html

js
iframe.message((event) => {
     console.info(event);
 });
 
@@ -96,7 +96,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
         data: art.currentTime,
     });
 });
-

例子

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html

+

例子 ​

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html

 <!DOCTYPE html>
 <html>
     <head>
@@ -119,8 +119,9 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
             }
         </style>
         <script>
+            const $iframe = document.querySelector('#iframe');
             const iframe = new ArtplayerPluginIframe({
-                iframe: document.querySelector('#iframe'),
+                iframe: $iframe,
                 url: 'path/to/iframe.html',
             });
 
@@ -155,7 +156,7 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
     </body>
 </html>
 
-
html

+
html

 <!DOCTYPE html>
 <html>
     <head>
@@ -181,4 +182,4 @@ import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{
     </body>
 </html>
 
-
`,32),o=[e];function r(t,c,F,D,y,i){return a(),n("div",null,o)}const A=s(p,[["render",r]]);export{b as __pageData,A as default}; +
`,32),e=[o];function r(t,c,F,D,y,i){return a(),n("div",null,e)}const A=s(p,[["render",r]]);export{b as __pageData,A as default}; diff --git a/docs/document/assets/plugin_iframe.md.bf3547f5.lean.js b/docs/document/assets/plugin_iframe.md.bf3547f5.lean.js new file mode 100644 index 000000000..72933bcb1 --- /dev/null +++ b/docs/document/assets/plugin_iframe.md.bf3547f5.lean.js @@ -0,0 +1 @@ +import{_ as s,c as n,o as a,U as l}from"./chunks/framework.75837252.js";const b=JSON.parse('{"title":"Iframe 控制","description":"","frontmatter":{},"headers":[],"relativePath":"plugin/iframe.md","lastUpdated":1673665918000}'),p={name:"plugin/iframe.md"},o=l("",32),e=[o];function r(t,c,F,D,y,i){return a(),n("div",null,e)}const A=s(p,[["render",r]]);export{b as __pageData,A as default}; diff --git a/docs/document/assets/plugin_iframe.md.c3122371.lean.js b/docs/document/assets/plugin_iframe.md.c3122371.lean.js deleted file mode 100644 index 484ef6127..000000000 --- a/docs/document/assets/plugin_iframe.md.c3122371.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as s,c as n,o as a,a as l}from"./app.77a2ba76.js";const b=JSON.parse('{"title":"Iframe 控制","description":"","frontmatter":{},"headers":[{"level":2,"title":"说明","slug":"说明","link":"#说明","children":[]},{"level":2,"title":"演示","slug":"演示","link":"#演示","children":[]},{"level":2,"title":"安装","slug":"安装","link":"#安装","children":[]},{"level":2,"title":"CDN","slug":"cdn","link":"#cdn","children":[]},{"level":2,"title":"使用","slug":"使用","link":"#使用","children":[]},{"level":2,"title":"index.html 接口","slug":"index-html-接口","link":"#index-html-接口","children":[{"level":3,"title":"commit","slug":"commit","link":"#commit","children":[]},{"level":3,"title":"message","slug":"message","link":"#message","children":[]},{"level":3,"title":"destroy","slug":"destroy","link":"#destroy","children":[]}]},{"level":2,"title":"iframe.html 接口","slug":"iframe-html-接口","link":"#iframe-html-接口","children":[{"level":3,"title":"inject","slug":"inject","link":"#inject","children":[]},{"level":3,"title":"postMessage","slug":"postmessage","link":"#postmessage","children":[]}]},{"level":2,"title":"例子","slug":"例子","link":"#例子","children":[]}],"relativePath":"plugin/iframe.md","lastUpdated":1673665918000}'),p={name:"plugin/iframe.md"},e=l("",32),o=[e];function r(t,c,F,D,y,i){return a(),n("div",null,o)}const A=s(p,[["render",r]]);export{b as __pageData,A as default}; diff --git a/docs/document/assets/start_component.md.72ecc8a1.lean.js b/docs/document/assets/start_component.md.72ecc8a1.lean.js deleted file mode 100644 index 690f70c8d..000000000 --- a/docs/document/assets/start_component.md.72ecc8a1.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.parse('{"title":"组件配置","description":"","frontmatter":{},"headers":[{"level":2,"title":"layers","slug":"layers","link":"#layers","children":[]},{"level":2,"title":"controls","slug":"controls","link":"#controls","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]}],"relativePath":"start/component.md","lastUpdated":1674028264000}'),o={name:"start/component.md"},e=s("",6),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",2),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",2),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s("",1),b=[e,c,r,t,D,F,y,i,A,C,d];function h(u,m,g,_,E,f){return p(),l("div",null,b)}const x=a(o,[["render",h]]);export{T as __pageData,x as default}; diff --git a/docs/document/assets/start_component.md.72ecc8a1.js b/docs/document/assets/start_component.md.dfca26b5.js similarity index 88% rename from docs/document/assets/start_component.md.72ecc8a1.js rename to docs/document/assets/start_component.md.dfca26b5.js index 42ffb9e15..747a1b87f 100644 --- a/docs/document/assets/start_component.md.72ecc8a1.js +++ b/docs/document/assets/start_component.md.dfca26b5.js @@ -1,4 +1,4 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.parse('{"title":"组件配置","description":"","frontmatter":{},"headers":[{"level":2,"title":"layers","slug":"layers","link":"#layers","children":[]},{"level":2,"title":"controls","slug":"controls","link":"#controls","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]}],"relativePath":"start/component.md","lastUpdated":1674028264000}'),o={name:"start/component.md"},e=s('

组件配置

这里所说的组件配置主要是指:layers , controls , contextmenu 这三个共用的配置:

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

提示

  • 当前组件只能添加,并没有销毁的功能
  • 通过 name 选项可以快速获取组件的 DOM 元素
  • 通过 index 选项可以控制组件出现的顺序

layers

实例化时添加一个层,例如可以添加 logo 或者 广告 等等

',6),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var img = '/assets/sample/layer.png';
+import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const T=JSON.parse('{"title":"组件配置","description":"","frontmatter":{},"headers":[],"relativePath":"start/component.md","lastUpdated":1674028264000}'),o={name:"start/component.md"},e=s('

组件配置 ​

这里所说的组件配置主要是指:layers , controls , contextmenu 这三个共用的配置:

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

提示

  • 当前组件只能添加,并没有销毁的功能
  • 通过 name 选项可以快速获取组件的 DOM 元素
  • 通过 index 选项可以控制组件出现的顺序

layers ​

实例化时添加一个层,例如可以添加 logo 或者 广告 等等

',6),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -23,7 +23,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.p
 });
 
 console.info(art.layers.potser);
-

也可以实例化之后添加一个层

`,2),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var img = '/assets/sample/layer.png';
+

也可以实例化之后添加一个层

`,2),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -47,7 +47,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.p
 });
 
 console.info(art.layers.potser);
-

controls

实例化时添加一个控制器

controls 还有三个额外的选项

  • position: left 和 right 控制控制器出现的左右位置
  • selector: 选择列表的对象数组
  • onSelect: 选择列表的元素被点击时触发的函数
`,4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
+

controls ​

实例化时添加一个控制器

controls 还有三个额外的选项

  • position: left 和 right 控制控制器出现的左右位置
  • selector: 选择列表的对象数组
  • onSelect: 选择列表的元素被点击时触发的函数
`,4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -90,7 +90,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.p
 
 console.info(art.controls['your-button']);
 console.info(art.controls.subtitle);
-

也可以实例化之后添加一个控制器

js
var art = new Artplayer({
+

也可以实例化之后添加一个控制器

js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -111,9 +111,9 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.p
         console.info('mounted', args);
     },
 });
-
+
 console.info(art.controls.button1);
-

contextmenu

实例化时添加一个右键菜单

`,5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer({
+

contextmenu ​

实例化时添加一个右键菜单

`,5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -129,7 +129,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.p
 });
 
 console.info(art.contextmenu['your-menu']);
-

也可以实例化之后添加一个右键菜单

`,2),C=n("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer({
+

也可以实例化之后添加一个右键菜单

`,2),C=n("div",{className:"run-code"},"▶ Run Code",-1),b=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -144,4 +144,4 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const T=JSON.p
 });
 
 console.info(art.contextmenu['your-menu']);
-
`,1),b=[e,c,r,t,D,F,y,i,A,C,d];function h(u,m,g,_,E,f){return p(),l("div",null,b)}const x=a(o,[["render",h]]);export{T as __pageData,x as default}; +
`,1),d=[e,c,r,t,D,F,y,i,A,C,b];function h(u,m,g,_,E,f){return p(),l("div",null,d)}const x=a(o,[["render",h]]);export{T as __pageData,x as default}; diff --git a/docs/document/assets/start_component.md.dfca26b5.lean.js b/docs/document/assets/start_component.md.dfca26b5.lean.js new file mode 100644 index 000000000..788106122 --- /dev/null +++ b/docs/document/assets/start_component.md.dfca26b5.lean.js @@ -0,0 +1 @@ +import{_ as a,c as l,o as p,U as s,x as n}from"./chunks/framework.75837252.js";const T=JSON.parse('{"title":"组件配置","description":"","frontmatter":{},"headers":[],"relativePath":"start/component.md","lastUpdated":1674028264000}'),o={name:"start/component.md"},e=s("",6),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",2),t=n("div",{className:"run-code"},"▶ Run Code",-1),D=s("",4),F=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),i=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",2),C=n("div",{className:"run-code"},"▶ Run Code",-1),b=s("",1),d=[e,c,r,t,D,F,y,i,A,C,b];function h(u,m,g,_,E,f){return p(),l("div",null,d)}const x=a(o,[["render",h]]);export{T as __pageData,x as default}; diff --git a/docs/document/assets/start_option.md.2c38c28e.lean.js b/docs/document/assets/start_option.md.2c38c28e.lean.js deleted file mode 100644 index dd1d19e16..000000000 --- a/docs/document/assets/start_option.md.2c38c28e.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.parse('{"title":"基础选项","description":"","frontmatter":{},"headers":[{"level":2,"title":"container","slug":"container","link":"#container","children":[]},{"level":2,"title":"url","slug":"url","link":"#url","children":[]},{"level":2,"title":"id","slug":"id","link":"#id","children":[]},{"level":2,"title":"onReady","slug":"onready","link":"#onready","children":[]},{"level":2,"title":"poster","slug":"poster","link":"#poster","children":[]},{"level":2,"title":"title","slug":"title","link":"#title","children":[]},{"level":2,"title":"theme","slug":"theme","link":"#theme","children":[]},{"level":2,"title":"volume","slug":"volume","link":"#volume","children":[]},{"level":2,"title":"isLive","slug":"islive","link":"#islive","children":[]},{"level":2,"title":"muted","slug":"muted","link":"#muted","children":[]},{"level":2,"title":"autoplay","slug":"autoplay","link":"#autoplay","children":[]},{"level":2,"title":"autoSize","slug":"autosize","link":"#autosize","children":[]},{"level":2,"title":"autoMini","slug":"automini","link":"#automini","children":[]},{"level":2,"title":"loop","slug":"loop","link":"#loop","children":[]},{"level":2,"title":"flip","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"playbackRate","slug":"playbackrate","link":"#playbackrate","children":[]},{"level":2,"title":"aspectRatio","slug":"aspectratio","link":"#aspectratio","children":[]},{"level":2,"title":"screenshot","slug":"screenshot","link":"#screenshot","children":[]},{"level":2,"title":"setting","slug":"setting","link":"#setting","children":[]},{"level":2,"title":"hotkey","slug":"hotkey","link":"#hotkey","children":[]},{"level":2,"title":"pip","slug":"pip","link":"#pip","children":[]},{"level":2,"title":"mutex","slug":"mutex","link":"#mutex","children":[]},{"level":2,"title":"fullscreen","slug":"fullscreen","link":"#fullscreen","children":[]},{"level":2,"title":"fullscreenWeb","slug":"fullscreenweb","link":"#fullscreenweb","children":[]},{"level":2,"title":"subtitleOffset","slug":"subtitleoffset","link":"#subtitleoffset","children":[]},{"level":2,"title":"miniProgressBar","slug":"miniprogressbar","link":"#miniprogressbar","children":[]},{"level":2,"title":"useSSR","slug":"usessr","link":"#usessr","children":[]},{"level":2,"title":"playsInline","slug":"playsinline","link":"#playsinline","children":[]},{"level":2,"title":"layers","slug":"layers","link":"#layers","children":[]},{"level":2,"title":"settings","slug":"settings","link":"#settings","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"controls","slug":"controls","link":"#controls","children":[]},{"level":2,"title":"quality","slug":"quality","link":"#quality","children":[]},{"level":2,"title":"highlight","slug":"highlight","link":"#highlight","children":[]},{"level":2,"title":"plugins","slug":"plugins","link":"#plugins","children":[]},{"level":2,"title":"whitelist","slug":"whitelist","link":"#whitelist","children":[]},{"level":2,"title":"thumbnails","slug":"thumbnails","link":"#thumbnails","children":[]},{"level":2,"title":"subtitle","slug":"subtitle","link":"#subtitle","children":[]},{"level":2,"title":"moreVideoAttr","slug":"morevideoattr","link":"#morevideoattr","children":[]},{"level":2,"title":"icons","slug":"icons","link":"#icons","children":[]},{"level":2,"title":"type","slug":"type","link":"#type","children":[]},{"level":2,"title":"customType","slug":"customtype","link":"#customtype","children":[]},{"level":2,"title":"lang","slug":"lang","link":"#lang","children":[]},{"level":2,"title":"i18n","slug":"i18n","link":"#i18n","children":[]},{"level":2,"title":"lock","slug":"lock","link":"#lock","children":[]},{"level":2,"title":"fastForward","slug":"fastforward","link":"#fastforward","children":[]},{"level":2,"title":"autoPlayback","slug":"autoplayback","link":"#autoplayback","children":[]},{"level":2,"title":"autoOrientation","slug":"autoorientation","link":"#autoorientation","children":[]},{"level":2,"title":"airplay","slug":"airplay","link":"#airplay","children":[]}],"relativePath":"start/option.md","lastUpdated":1677226299000}'),e={name:"start/option.md"},o=s("",4),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s("",9),t=n("div",{className:"run-code"},"▶ Run Code",-1),i=s("",2),D=n("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),F=n("div",{className:"run-code"},"▶ Run Code",-1),C=s("",4),d=n("div",{className:"run-code"},"▶ Run Code",-1),A=s("",7),h=n("div",{className:"run-code"},"▶ Run Code",-1),u=s("",4),b=n("div",{className:"run-code"},"▶ Run Code",-1),m=s("",4),g=n("div",{className:"run-code"},"▶ Run Code",-1),_=s("",4),v=n("div",{className:"run-code"},"▶ Run Code",-1),T=s("",5),E=n("div",{className:"run-code"},"▶ Run Code",-1),f=s("",4),S=n("div",{className:"run-code"},"▶ Run Code",-1),k=s("",4),w=n("div",{className:"run-code"},"▶ Run Code",-1),x=s("",5),P=n("div",{className:"run-code"},"▶ Run Code",-1),R=s("",4),j=n("div",{className:"run-code"},"▶ Run Code",-1),N=s("",4),I=n("div",{className:"run-code"},"▶ Run Code",-1),V=s("",4),B=n("div",{className:"run-code"},"▶ Run Code",-1),q=s("",4),O=n("div",{className:"run-code"},"▶ Run Code",-1),z=s("",4),M=n("div",{className:"run-code"},"▶ Run Code",-1),L=s("",4),$=n("div",{className:"run-code"},"▶ Run Code",-1),H=s("",5),Y=n("div",{className:"run-code"},"▶ Run Code",-1),W=s("",4),J=n("div",{className:"run-code"},"▶ Run Code",-1),U=s("",6),G=n("div",{className:"run-code"},"▶ Run Code",-1),K=s("",4),Q=n("div",{className:"run-code"},"▶ Run Code",-1),X=s("",4),Z=n("div",{className:"run-code"},"▶ Run Code",-1),ss=s("",4),ns=n("div",{className:"run-code"},"▶ Run Code",-1),as=s("",4),ls=n("div",{className:"run-code"},"▶ Run Code",-1),ps=s("",4),es=n("div",{className:"run-code"},"▶ Run Code",-1),os=s("",5),cs=n("div",{className:"run-code"},"▶ Run Code",-1),rs=s("",4),ts=n("div",{className:"run-code"},"▶ Run Code",-1),is=s("",4),Ds=n("div",{className:"run-code"},"▶ Run Code",-1),ys=s("",5),Fs=n("div",{className:"run-code"},"▶ Run Code",-1),Cs=s("",5),ds=n("div",{className:"run-code"},"▶ Run Code",-1),As=s("",5),hs=n("div",{className:"run-code"},"▶ Run Code",-1),us=s("",6),bs=n("div",{className:"run-code"},"▶ Run Code",-1),ms=s("",5),gs=n("div",{className:"run-code"},"▶ Run Code",-1),_s=s("",4),vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ts=s("",6),Es=n("div",{className:"run-code"},"▶ Run Code",-1),fs=s("",6),Ss=n("div",{className:"run-code"},"▶ Run Code",-1),ks=s("",6),ws=n("div",{className:"run-code"},"▶ Run Code",-1),xs=s("",4),Ps=n("div",{className:"run-code"},"▶ Run Code",-1),Rs=s("",4),js=n("div",{className:"run-code"},"▶ Run Code",-1),Ns=s("",5),Is=n("div",{className:"run-code"},"▶ Run Code",-1),Vs=s("",6),Bs=n("div",{className:"run-code"},"▶ Run Code",-1),qs=s("",4),Os=n("div",{className:"run-code"},"▶ Run Code",-1),zs=s("",5),Ms=n("div",{className:"run-code"},"▶ Run Code",-1),Ls=s("",2),$s=n("div",{className:"run-code"},"▶ Run Code",-1),Hs=s("",5),Ys=n("div",{className:"run-code"},"▶ Run Code",-1),Ws=s("",4),Js=n("div",{className:"run-code"},"▶ Run Code",-1),Us=s("",4),Gs=n("div",{className:"run-code"},"▶ Run Code",-1),Ks=s("",5),Qs=n("div",{className:"run-code"},"▶ Run Code",-1),Xs=s("",4),Zs=n("div",{className:"run-code"},"▶ Run Code",-1),sn=s("",1),nn=[o,c,r,t,i,D,y,F,C,d,A,h,u,b,m,g,_,v,T,E,f,S,k,w,x,P,R,j,N,I,V,B,q,O,z,M,L,$,H,Y,W,J,U,G,K,Q,X,Z,ss,ns,as,ls,ps,es,os,cs,rs,ts,is,Ds,ys,Fs,Cs,ds,As,hs,us,bs,ms,gs,_s,vs,Ts,Es,fs,Ss,ks,ws,xs,Ps,Rs,js,Ns,Is,Vs,Bs,qs,Os,zs,Ms,Ls,$s,Hs,Ys,Ws,Js,Us,Gs,Ks,Qs,Xs,Zs,sn];function an(ln,pn,en,on,cn,rn){return p(),l("div",null,nn)}const yn=a(e,[["render",an]]);export{Dn as __pageData,yn as default}; diff --git a/docs/document/assets/start_option.md.2c38c28e.js b/docs/document/assets/start_option.md.35e43089.js similarity index 78% rename from docs/document/assets/start_option.md.2c38c28e.js rename to docs/document/assets/start_option.md.35e43089.js index 589f8bc6d..80140790d 100644 --- a/docs/document/assets/start_option.md.2c38c28e.js +++ b/docs/document/assets/start_option.md.35e43089.js @@ -1,32 +1,32 @@ -import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.parse('{"title":"基础选项","description":"","frontmatter":{},"headers":[{"level":2,"title":"container","slug":"container","link":"#container","children":[]},{"level":2,"title":"url","slug":"url","link":"#url","children":[]},{"level":2,"title":"id","slug":"id","link":"#id","children":[]},{"level":2,"title":"onReady","slug":"onready","link":"#onready","children":[]},{"level":2,"title":"poster","slug":"poster","link":"#poster","children":[]},{"level":2,"title":"title","slug":"title","link":"#title","children":[]},{"level":2,"title":"theme","slug":"theme","link":"#theme","children":[]},{"level":2,"title":"volume","slug":"volume","link":"#volume","children":[]},{"level":2,"title":"isLive","slug":"islive","link":"#islive","children":[]},{"level":2,"title":"muted","slug":"muted","link":"#muted","children":[]},{"level":2,"title":"autoplay","slug":"autoplay","link":"#autoplay","children":[]},{"level":2,"title":"autoSize","slug":"autosize","link":"#autosize","children":[]},{"level":2,"title":"autoMini","slug":"automini","link":"#automini","children":[]},{"level":2,"title":"loop","slug":"loop","link":"#loop","children":[]},{"level":2,"title":"flip","slug":"flip","link":"#flip","children":[]},{"level":2,"title":"playbackRate","slug":"playbackrate","link":"#playbackrate","children":[]},{"level":2,"title":"aspectRatio","slug":"aspectratio","link":"#aspectratio","children":[]},{"level":2,"title":"screenshot","slug":"screenshot","link":"#screenshot","children":[]},{"level":2,"title":"setting","slug":"setting","link":"#setting","children":[]},{"level":2,"title":"hotkey","slug":"hotkey","link":"#hotkey","children":[]},{"level":2,"title":"pip","slug":"pip","link":"#pip","children":[]},{"level":2,"title":"mutex","slug":"mutex","link":"#mutex","children":[]},{"level":2,"title":"fullscreen","slug":"fullscreen","link":"#fullscreen","children":[]},{"level":2,"title":"fullscreenWeb","slug":"fullscreenweb","link":"#fullscreenweb","children":[]},{"level":2,"title":"subtitleOffset","slug":"subtitleoffset","link":"#subtitleoffset","children":[]},{"level":2,"title":"miniProgressBar","slug":"miniprogressbar","link":"#miniprogressbar","children":[]},{"level":2,"title":"useSSR","slug":"usessr","link":"#usessr","children":[]},{"level":2,"title":"playsInline","slug":"playsinline","link":"#playsinline","children":[]},{"level":2,"title":"layers","slug":"layers","link":"#layers","children":[]},{"level":2,"title":"settings","slug":"settings","link":"#settings","children":[]},{"level":2,"title":"contextmenu","slug":"contextmenu","link":"#contextmenu","children":[]},{"level":2,"title":"controls","slug":"controls","link":"#controls","children":[]},{"level":2,"title":"quality","slug":"quality","link":"#quality","children":[]},{"level":2,"title":"highlight","slug":"highlight","link":"#highlight","children":[]},{"level":2,"title":"plugins","slug":"plugins","link":"#plugins","children":[]},{"level":2,"title":"whitelist","slug":"whitelist","link":"#whitelist","children":[]},{"level":2,"title":"thumbnails","slug":"thumbnails","link":"#thumbnails","children":[]},{"level":2,"title":"subtitle","slug":"subtitle","link":"#subtitle","children":[]},{"level":2,"title":"moreVideoAttr","slug":"morevideoattr","link":"#morevideoattr","children":[]},{"level":2,"title":"icons","slug":"icons","link":"#icons","children":[]},{"level":2,"title":"type","slug":"type","link":"#type","children":[]},{"level":2,"title":"customType","slug":"customtype","link":"#customtype","children":[]},{"level":2,"title":"lang","slug":"lang","link":"#lang","children":[]},{"level":2,"title":"i18n","slug":"i18n","link":"#i18n","children":[]},{"level":2,"title":"lock","slug":"lock","link":"#lock","children":[]},{"level":2,"title":"fastForward","slug":"fastforward","link":"#fastforward","children":[]},{"level":2,"title":"autoPlayback","slug":"autoplayback","link":"#autoplayback","children":[]},{"level":2,"title":"autoOrientation","slug":"autoorientation","link":"#autoorientation","children":[]},{"level":2,"title":"airplay","slug":"airplay","link":"#airplay","children":[]}],"relativePath":"start/option.md","lastUpdated":1677226299000}'),e={name:"start/option.md"},o=s('

基础选项

container

  • Type: String, Element
  • Default: #artplayer

播放器挂载的 DOM 容器

',4),c=n("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
+import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const Da=JSON.parse('{"title":"基础选项","description":"","frontmatter":{},"headers":[],"relativePath":"start/option.md","lastUpdated":1677226299000}'),e={name:"start/option.md"},o=s('

基础选项 ​

container ​

  • Type: String, Element
  • Default: #artplayer

播放器挂载的 DOM 容器

',4),c=a("div",{className:"run-code"},"▶ Run Code",-1),r=s(`
js
var art = new Artplayer({
     container: '.artplayer-app', 
     // container: document.querySelector('.artplayer-app'),
     url: '/assets/sample/video.mp4',
 });
-

您可能需要初始化容器元素的大小,如:

css
.artplayer-app {
+

您可能需要初始化容器元素的大小,如:

css
.artplayer-app {
     width: 400px;
     height: 300px;
 }
-

或者使用 aspect-ratio:

css
.artplayer-app {
+

或者使用 aspect-ratio:

css
.artplayer-app {
     aspect-ratio: 16/9;
 }
-

提示

全部选项里,只有 container 是必填的

url

  • Type: String
  • Default: ''

视频源地址

`,9),t=n("div",{className:"run-code"},"▶ Run Code",-1),i=s(`
js
var art = new Artplayer({
+

提示

全部选项里,只有 container 是必填的

url ​

  • Type: String
  • Default: ''

视频源地址

`,9),t=a("div",{className:"run-code"},"▶ Run Code",-1),D=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
-

有时候 url 地址没那么快知道,这时候你可以异步设置 url

`,2),D=n("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
+

有时候 url 地址没那么快知道,这时候你可以异步设置 url

`,2),i=a("div",{className:"run-code"},"▶ Run Code",-1),y=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
 });
 
 setTimeout(() => {
     art.url = '/assets/sample/video.mp4';
 }, 1000);
-

提示

默认支持三种视频文件格式:.mp4, .ogg, .webm

如需要播放 .m3u8 或者 .flv 等其它格式,请参考左侧的 第三方库

id

  • Type: String
  • Default: ''

播放器的唯一标识,目前只用于记忆播放 autoplayback

`,5),F=n("div",{className:"run-code"},"▶ Run Code",-1),C=s(`
js
var art = new Artplayer({
+

提示

默认支持三种视频文件格式:.mp4, .ogg, .webm

如需要播放 .m3u8 或者 .flv 等其它格式,请参考左侧的 第三方库

id ​

  • Type: String
  • Default: ''

播放器的唯一标识,目前只用于记忆播放 autoplayback

`,5),F=a("div",{className:"run-code"},"▶ Run Code",-1),C=s(`
js
var art = new Artplayer({
     id: 'your-url-id',
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
-

onReady

  • Type: Function
  • Default: undefined

构造函数接受一个函数作为第二个参数,播放器初始化成功且视频可以播放时触发,和ready事件一样

`,4),d=n("div",{className:"run-code"},"▶ Run Code",-1),A=s(`
js
var art = new Artplayer(
+

onReady ​

  • Type: Function
  • Default: undefined

构造函数接受一个函数作为第二个参数,播放器初始化成功且视频可以播放时触发,和ready事件一样

`,4),A=a("div",{className:"run-code"},"▶ Run Code",-1),d=s(`
js
var art = new Artplayer(
     {
         container: '.artplayer-app',
         url: '/assets/sample/video.mp4',
@@ -36,7 +36,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         this.play()
     },
 );
-

等同于:

js
var art = new Artplayer({
+

等同于:

js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -45,112 +45,112 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
 art.on('ready', () => {
     art.play();
 });
-

提示

回调函数里的this就是播放器实例,但回调函数假如使用了箭头函数,this则不会指向播放器实例

poster

  • Type: String
  • Default: ''

视频的海报,只会出现在播放器初始化且未播放的状态下

`,7),h=n("div",{className:"run-code"},"▶ Run Code",-1),u=s(`
js
var art = new Artplayer({
+

提示

回调函数里的this就是播放器实例,但回调函数假如使用了箭头函数,this则不会指向播放器实例

poster ​

  • Type: String
  • Default: ''

视频的海报,只会出现在播放器初始化且未播放的状态下

`,7),h=a("div",{className:"run-code"},"▶ Run Code",-1),u=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     poster: '/assets/sample/poster.jpg',
 });
-

title

  • Type: String
  • Default: ''

视频标题,目前会出现在 视频截图 和 迷你模式 下

`,4),b=n("div",{className:"run-code"},"▶ Run Code",-1),m=s(`
js
var art = new Artplayer({
+

title ​

  • Type: String
  • Default: ''

视频标题,目前会出现在 视频截图 和 迷你模式 下

`,4),b=a("div",{className:"run-code"},"▶ Run Code",-1),m=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     title: 'your-video-title',
     screenshot: true,
 });
-

theme

  • Type: String
  • Default: #f00

播放器主题颜色,目前用于 进度条 和 高亮元素 上

`,4),g=n("div",{className:"run-code"},"▶ Run Code",-1),_=s(`
js
var art = new Artplayer({
+

theme ​

  • Type: String
  • Default: #f00

播放器主题颜色,目前用于 进度条 和 高亮元素 上

`,4),g=a("div",{className:"run-code"},"▶ Run Code",-1),_=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     theme: '#ffad00',
 });
-

volume

  • Type: Number
  • Default: 0.7

播放器的默认音量

`,4),v=n("div",{className:"run-code"},"▶ Run Code",-1),T=s(`
js
var art = new Artplayer({
+

volume ​

  • Type: Number
  • Default: 0.7

播放器的默认音量

`,4),v=a("div",{className:"run-code"},"▶ Run Code",-1),T=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     volume: 0.5,
 });
-

提示

播放器会缓存最后一次音量的大小,下次初始化时(如刷新页面)播放器会读取该缓存值

isLive

  • Type: Boolean
  • Default: false

使用直播模式,会隐藏进度条和播放时间

`,5),E=n("div",{className:"run-code"},"▶ Run Code",-1),f=s(`
js
var art = new Artplayer({
+

提示

播放器会缓存最后一次音量的大小,下次初始化时(如刷新页面)播放器会读取该缓存值

isLive ​

  • Type: Boolean
  • Default: false

使用直播模式,会隐藏进度条和播放时间

`,5),E=a("div",{className:"run-code"},"▶ Run Code",-1),f=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     isLive: true,
 });
-

muted

  • Type: Boolean
  • Default: false

是否默认静音

`,4),S=n("div",{className:"run-code"},"▶ Run Code",-1),k=s(`
js
var art = new Artplayer({
+

muted ​

  • Type: Boolean
  • Default: false

是否默认静音

`,4),S=a("div",{className:"run-code"},"▶ Run Code",-1),P=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
 });
-

autoplay

  • Type: Boolean
  • Default: false

是否自动播放

`,4),w=n("div",{className:"run-code"},"▶ Run Code",-1),x=s(`
js
var art = new Artplayer({
+

autoplay ​

  • Type: Boolean
  • Default: false

是否自动播放

`,4),k=a("div",{className:"run-code"},"▶ Run Code",-1),w=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoplay: true,
     muted: true,
 });
-

提示

假如希望默认进入页面就能自动播放视频,muted 必需为 true,更多信息请阅读 Autoplay Policy Changes

autoSize

  • Type: Boolean
  • Default: false

播放器的尺寸默认会填充整个 container 容器尺寸,所以经常出现黑边,该值能自动调整播放器尺寸以隐藏黑边,类似 css 的 object-fit: cover;

`,5),P=n("div",{className:"run-code"},"▶ Run Code",-1),R=s(`
js
var art = new Artplayer({
+

提示

假如希望默认进入页面就能自动播放视频,muted 必需为 true,更多信息请阅读 Autoplay Policy Changes

autoSize ​

  • Type: Boolean
  • Default: false

播放器的尺寸默认会填充整个 container 容器尺寸,所以经常出现黑边,该值能自动调整播放器尺寸以隐藏黑边,类似 css 的 object-fit: cover;

`,5),R=a("div",{className:"run-code"},"▶ Run Code",-1),q=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
 });
-

autoMini

  • Type: Boolean
  • Default: false

当播放器滚动到浏览器视口以外时,自动进入 迷你播放 模式

`,4),j=n("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
+

autoMini ​

  • Type: Boolean
  • Default: false

当播放器滚动到浏览器视口以外时,自动进入 迷你播放 模式

`,4),j=a("div",{className:"run-code"},"▶ Run Code",-1),N=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoMini: true,
 });
-

loop

  • Type: Boolean
  • Default: false

是否循环播放

`,4),I=n("div",{className:"run-code"},"▶ Run Code",-1),V=s(`
js
var art = new Artplayer({
+

loop ​

  • Type: Boolean
  • Default: false

是否循环播放

`,4),I=a("div",{className:"run-code"},"▶ Run Code",-1),V=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     loop: true,
 });
-

flip

  • Type: Boolean
  • Default: false

是否显示视频翻转功能,目前只出现在 设置面板 和 右键菜单 里

`,4),B=n("div",{className:"run-code"},"▶ Run Code",-1),q=s(`
js
var art = new Artplayer({
+

flip ​

  • Type: Boolean
  • Default: false

是否显示视频翻转功能,目前只出现在 设置面板 和 右键菜单 里

`,4),x=a("div",{className:"run-code"},"▶ Run Code",-1),B=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     flip: true,
     setting: true,
 });
-

playbackRate

  • Type: Boolean
  • Default: false

是否显示视频播放速度功能,会出现在 设置面板 和 右键菜单 里

`,4),O=n("div",{className:"run-code"},"▶ Run Code",-1),z=s(`
js
var art = new Artplayer({
+

playbackRate ​

  • Type: Boolean
  • Default: false

是否显示视频播放速度功能,会出现在 设置面板 和 右键菜单 里

`,4),O=a("div",{className:"run-code"},"▶ Run Code",-1),z=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     playbackRate: true,
     setting: true,
 });
-

aspectRatio

  • Type: Boolean
  • Default: false

是否显示视频长宽比功能,会出现在 设置面板 和 右键菜单 里

`,4),M=n("div",{className:"run-code"},"▶ Run Code",-1),L=s(`
js
var art = new Artplayer({
+

aspectRatio ​

  • Type: Boolean
  • Default: false

是否显示视频长宽比功能,会出现在 设置面板 和 右键菜单 里

`,4),M=a("div",{className:"run-code"},"▶ Run Code",-1),L=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     aspectRatio: true,
     setting: true,
 });
-

screenshot

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示 视频截图 功能

`,4),$=n("div",{className:"run-code"},"▶ Run Code",-1),H=s(`
js
var art = new Artplayer({
+

screenshot ​

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示 视频截图 功能

`,4),$=a("div",{className:"run-code"},"▶ Run Code",-1),H=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     screenshot: true,
 });
-

提示

由于浏览器安全机制,假如视频源地址和网站是跨域的,可能会出现截图失败

setting

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示 设置面板 的开关按钮

`,5),Y=n("div",{className:"run-code"},"▶ Run Code",-1),W=s(`
js
var art = new Artplayer({
+

提示

由于浏览器安全机制,假如视频源地址和网站是跨域的,可能会出现截图失败

setting ​

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示 设置面板 的开关按钮

`,5),Y=a("div",{className:"run-code"},"▶ Run Code",-1),W=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
 });
-

hotkey

  • Type: Boolean
  • Default: true

是否使用快捷键

`,4),J=n("div",{className:"run-code"},"▶ Run Code",-1),U=s(`
js
var art = new Artplayer({
+

hotkey ​

  • Type: Boolean
  • Default: true

是否使用快捷键

`,4),U=a("div",{className:"run-code"},"▶ Run Code",-1),J=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     hotkey: true,
 });
-
热键描述
↑增加音量
↓降低音量
←视频快进
→视频快退
space切换播放/暂停

提示

只在播放器获得焦点后(如点击了播放器后),这些快捷键才会生效

pip

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示 画中画 的开关按钮

`,6),G=n("div",{className:"run-code"},"▶ Run Code",-1),K=s(`
js
var art = new Artplayer({
+
热键描述
↑增加音量
↓降低音量
←视频快进
→视频快退
space切换播放/暂停

提示

只在播放器获得焦点后(如点击了播放器后),这些快捷键才会生效

pip ​

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示 画中画 的开关按钮

`,6),G=a("div",{className:"run-code"},"▶ Run Code",-1),K=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     pip: true,
 });
-

mutex

  • Type: Boolean
  • Default: true

假如页面里同时存在多个播放器,是否只能让一个播放器播放

`,4),Q=n("div",{className:"run-code"},"▶ Run Code",-1),X=s(`
js
var art = new Artplayer({
+

mutex ​

  • Type: Boolean
  • Default: true

假如页面里同时存在多个播放器,是否只能让一个播放器播放

`,4),Q=a("div",{className:"run-code"},"▶ Run Code",-1),X=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     mutex: true,
 });
-

fullscreen

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示播放器 窗口全屏 按钮

`,4),Z=n("div",{className:"run-code"},"▶ Run Code",-1),ss=s(`
js
var art = new Artplayer({
+

fullscreen ​

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示播放器 窗口全屏 按钮

`,4),Z=a("div",{className:"run-code"},"▶ Run Code",-1),ss=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
 });
-

fullscreenWeb

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示播放器 网页全屏 按钮

`,4),ns=n("div",{className:"run-code"},"▶ Run Code",-1),as=s(`
js
var art = new Artplayer({
+

fullscreenWeb ​

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示播放器 网页全屏 按钮

`,4),as=a("div",{className:"run-code"},"▶ Run Code",-1),ns=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreenWeb: true,
 });
-

subtitleOffset

  • Type: Boolean
  • Default: false

字幕时间偏移,范围在 [-5s, 5s],出现在 设置面板 里

`,4),ls=n("div",{className:"run-code"},"▶ Run Code",-1),ps=s(`
js
var art = new Artplayer({
+

subtitleOffset ​

  • Type: Boolean
  • Default: false

字幕时间偏移,范围在 [-5s, 5s],出现在 设置面板 里

`,4),ls=a("div",{className:"run-code"},"▶ Run Code",-1),ps=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitleOffset: true,
@@ -159,12 +159,12 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
     },
     setting: true,
 });
-

miniProgressBar

  • Type: Boolean
  • Default: false

迷你进度条,只在播放器失去焦点后且正在播放时出现

`,4),es=n("div",{className:"run-code"},"▶ Run Code",-1),os=s(`
js
var art = new Artplayer({
+

miniProgressBar ​

  • Type: Boolean
  • Default: false

迷你进度条,只在播放器失去焦点后且正在播放时出现

`,4),es=a("div",{className:"run-code"},"▶ Run Code",-1),os=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     miniProgressBar: true,
 });
-

useSSR

  • Type: Boolean
  • Default: false

是否使用 SSR 挂载模式,假如你希望在播放器挂载前,就提前渲染好播放器所需的 HTML 时有用

你可以通过 Artplayer.html 访问到播放器所需的 HTML

`,5),cs=n("div",{className:"run-code"},"▶ Run Code",-1),rs=s(`
js
var $container = document.querySelector('.artplayer-app');
+

useSSR ​

  • Type: Boolean
  • Default: false

是否使用 SSR 挂载模式,假如你希望在播放器挂载前,就提前渲染好播放器所需的 HTML 时有用

你可以通过 Artplayer.html 访问到播放器所需的 HTML

`,5),cs=a("div",{className:"run-code"},"▶ Run Code",-1),rs=s(`
js
var $container = document.querySelector('.artplayer-app');
 $container.innerHTML = Artplayer.html;
 
 var art = new Artplayer({
@@ -172,12 +172,12 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
     url: '/assets/sample/video.mp4',
     useSSR: true,
 });
-

playsInline

  • Type: Boolean
  • Default: true

在移动端是否使用 playsInline 模式

`,4),ts=n("div",{className:"run-code"},"▶ Run Code",-1),is=s(`
js
var art = new Artplayer({
+

playsInline ​

  • Type: Boolean
  • Default: true

在移动端是否使用 playsInline 模式

`,4),ts=a("div",{className:"run-code"},"▶ Run Code",-1),Ds=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     playsInline: true,
 });
-

layers

  • Type: Array
  • Default: []

初始化自定义的 层

`,4),Ds=n("div",{className:"run-code"},"▶ Run Code",-1),ys=s(`
js
var img = '/assets/sample/layer.png';
+

layers ​

  • Type: Array
  • Default: []

初始化自定义的 层

`,4),is=a("div",{className:"run-code"},"▶ Run Code",-1),ys=s(`
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -201,7 +201,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     ],
 });
-

组件配置 请参考以下地址:

/start/component.html

settings

  • Type: Array
  • Default: []

初始化自定义的 设置面板

`,5),Fs=n("div",{className:"run-code"},"▶ Run Code",-1),Cs=s(`
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

settings ​

  • Type: Array
  • Default: []

初始化自定义的 设置面板

`,5),Fs=a("div",{className:"run-code"},"▶ Run Code",-1),Cs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -236,7 +236,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     ],
 });
-

设置面板 请参考以下地址

/start/setting.html

contextmenu

  • Type: Array
  • Default: []

初始化自定义的 右键菜单

`,5),ds=n("div",{className:"run-code"},"▶ Run Code",-1),As=s(`
js
var art = new Artplayer({
+

设置面板 请参考以下地址

/start/setting.html

contextmenu ​

  • Type: Array
  • Default: []

初始化自定义的 右键菜单

`,5),As=a("div",{className:"run-code"},"▶ Run Code",-1),ds=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -249,7 +249,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     ],
 });
-

组件配置 请参考以下地址:

/start/component.html- Type:

controls

  • Type: Array
  • Default: []

初始化自定义的底部 控制栏

`,5),hs=n("div",{className:"run-code"},"▶ Run Code",-1),us=s(`
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html- Type:

controls ​

  • Type: Array
  • Default: []

初始化自定义的底部 控制栏

`,5),hs=a("div",{className:"run-code"},"▶ Run Code",-1),us=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -266,7 +266,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     ],
 });
-

组件配置 请参考以下地址:

/start/component.html

quality

  • Type: Array
  • Default: []

是否在底部控制栏里显示 画质选择 列表

属性类型描述
defaultBoolean默认画质
htmlString画质名字
urlString画质地址
`,6),bs=n("div",{className:"run-code"},"▶ Run Code",-1),ms=s(`
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

quality ​

  • Type: Array
  • Default: []

是否在底部控制栏里显示 画质选择 列表

属性类型描述
defaultBoolean默认画质
htmlString画质名字
urlString画质地址
`,6),bs=a("div",{className:"run-code"},"▶ Run Code",-1),ms=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     quality: [
@@ -281,7 +281,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     ],
 });
-

highlight

  • Type: Array
  • Default: []

在进度条上显示 高亮信息

属性类型描述
timeNumber高亮时间(单位秒)
textString高亮文本
`,5),gs=n("div",{className:"run-code"},"▶ Run Code",-1),_s=s(`
js
var art = new Artplayer({
+

highlight ​

  • Type: Array
  • Default: []

在进度条上显示 高亮信息

属性类型描述
timeNumber高亮时间(单位秒)
textString高亮文本
`,5),gs=a("div",{className:"run-code"},"▶ Run Code",-1),_s=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     highlight: [
@@ -307,7 +307,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     ],
 });
-

plugins

  • Type: Array
  • Default: []

初始化自定义的 插件

`,4),vs=n("div",{className:"run-code"},"▶ Run Code",-1),Ts=s(`
js
function myPlugin(art) {
+

plugins ​

  • Type: Array
  • Default: []

初始化自定义的 插件

`,4),vs=a("div",{className:"run-code"},"▶ Run Code",-1),Ts=s(`
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -323,14 +323,14 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
     url: '/assets/sample/video.mp4',
     plugins: [myPlugin],
 });
-

whitelist

  • Type: Array
  • Default: []

因为不同的移动设备存在多种差异和限制,有时候你希望在某些移动设备上不使用本播放器,而是直接使用原生的功能时,可以通过该选项控制

白名单是一个数组类型,分别与 window.navigator.userAgent 进行匹配,只要其中一项匹配成功则启用播放器

支持 字符串 匹配, 函数 匹配, 正则 匹配

`,6),Es=n("div",{className:"run-code"},"▶ Run Code",-1),fs=s(`
js
var art = new Artplayer({
+

whitelist ​

  • Type: Array
  • Default: []

因为不同的移动设备存在多种差异和限制,有时候你希望在某些移动设备上不使用本播放器,而是直接使用原生的功能时,可以通过该选项控制

白名单是一个数组类型,分别与 window.navigator.userAgent 进行匹配,只要其中一项匹配成功则启用播放器

支持 字符串 匹配, 函数 匹配, 正则 匹配

`,6),Es=a("div",{className:"run-code"},"▶ Run Code",-1),fs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     whitelist: [(ua) => /iPhone/gi.test(ua)],
     // whitelist: [/iPhone/gi],
     // whitelist: ['iPhone'],
 });
-

提示

假如该选项不填,则默认使用本播放器

thumbnails

  • Type: Object
  • Default: {}

在进度条上设置 预览图

属性类型描述
urlString预览图地址
numberNumber预览图数量
columnNumber预览图列数
widthNumber预览图宽度
heightNumber预览图高度
`,6),Ss=n("div",{className:"run-code"},"▶ Run Code",-1),ks=s(`
js
var art = new Artplayer({
+

提示

假如该选项不填,则默认使用本播放器

thumbnails ​

  • Type: Object
  • Default: {}

在进度条上设置 预览图

属性类型描述
urlString预览图地址
numberNumber预览图数量
columnNumber预览图列数
widthNumber预览图宽度
heightNumber预览图高度
`,6),Ss=a("div",{className:"run-code"},"▶ Run Code",-1),Ps=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     thumbnails: {
@@ -339,7 +339,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         column: 10,
     },
 });
-

在线生成预览图

artplayer-tool-thumbnail

subtitle

  • Type: Object
  • Default: {}

设置视频的字幕,支持字幕格式:vtt, srt, ass

属性类型描述
urlString字幕地址
typeString字幕类型,可选 vtt, srt, ass
styleObject字幕样式
encodingString字幕编码,默认 utf-8
escapeBoolean是否转义 html 标签,默认为 true
`,6),ws=n("div",{className:"run-code"},"▶ Run Code",-1),xs=s(`
js
var art = new Artplayer({
+

在线生成预览图

artplayer-tool-thumbnail

subtitle ​

  • Type: Object
  • Default: {}

设置视频的字幕,支持字幕格式:vtt, srt, ass

属性类型描述
urlString字幕地址
typeString字幕类型,可选 vtt, srt, ass
styleObject字幕样式
encodingString字幕编码,默认 utf-8
escapeBoolean是否转义 html 标签,默认为 true
`,6),ks=a("div",{className:"run-code"},"▶ Run Code",-1),ws=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -353,7 +353,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     },
 });
-

moreVideoAttr

  • Type: Object
  • Default: {'controls': false,'preload': 'metadata'}

更多视频属性,这些属性将直接写入视频元素里

`,4),Ps=n("div",{className:"run-code"},"▶ Run Code",-1),Rs=s(`
js
var art = new Artplayer({
+

moreVideoAttr ​

  • Type: Object
  • Default: {'controls': false,'preload': 'metadata'}

更多视频属性,这些属性将直接写入视频元素里

`,4),Rs=a("div",{className:"run-code"},"▶ Run Code",-1),qs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     moreVideoAttr: {
@@ -361,7 +361,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         playsInline: true,
     },
 });
-

icons

  • Type: Object
  • Default: {}

用于替换默认图标,支持 Html 字符串和 HTMLElement

`,4),js=n("div",{className:"run-code"},"▶ Run Code",-1),Ns=s(`
js
var art = new Artplayer({
+

icons ​

  • Type: Object
  • Default: {}

用于替换默认图标,支持 Html 字符串和 HTMLElement

`,4),js=a("div",{className:"run-code"},"▶ Run Code",-1),Ns=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     icons: {
@@ -369,12 +369,12 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         state: '<img src="/assets/img/state.png">',
     },
 });
-

全部图标的定义

artplayer/types/icons.d.ts

type

  • Type: String
  • Default: ''

用于指明视频的格式,需要配合 customType 一起使用,默认视频的格式就是视频地址的后缀(如 .m3u8, .mkv, .ts),但有时候视频地地址没有正确的后缀,所以需要特别指明

`,5),Is=n("div",{className:"run-code"},"▶ Run Code",-1),Vs=s(`
js
var art = new Artplayer({
+

全部图标的定义

artplayer/types/icons.d.ts

type ​

  • Type: String
  • Default: ''

用于指明视频的格式,需要配合 customType 一起使用,默认视频的格式就是视频地址的后缀(如 .m3u8, .mkv, .ts),但有时候视频地地址没有正确的后缀,所以需要特别指明

`,5),Is=a("div",{className:"run-code"},"▶ Run Code",-1),Vs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.m3u8',
     type: 'm3u8',
 });
-

后缀的识别

播放器只能解析这种后缀:/assets/sample/video.m3u8

但无法解析这种后缀:/assets/sample/video?type=m3u8

所以假如你使用了 customType,最好同时要指明 type

customType

  • Type: Object
  • Default: {}

通过视频的 type 进行匹配,把视频解码权交给第三方程序进行处理,处理的函数能接收三个参数

  • video : 视频 DOM 元素
  • url : 视频地址
  • art : 当前实例
`,6),Bs=n("div",{className:"run-code"},"▶ Run Code",-1),qs=s(`
js
var art = new Artplayer({
+

后缀的识别

播放器只能解析这种后缀:/assets/sample/video.m3u8

但无法解析这种后缀:/assets/sample/video?type=m3u8

所以假如你使用了 customType,最好同时要指明 type

customType ​

  • Type: Object
  • Default: {}

通过视频的 type 进行匹配,把视频解码权交给第三方程序进行处理,处理的函数能接收三个参数

  • video : 视频 DOM 元素
  • url : 视频地址
  • art : 当前实例
`,6),xs=a("div",{className:"run-code"},"▶ Run Code",-1),Bs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.m3u8',
     customType: {
@@ -383,12 +383,12 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     },
 });
-

lang

  • Type: String
  • Default: navigator.language.toLowerCase()

默认显示语言,目前支持:en, zh-cn, zh-tw, cs, pl, es, fa, fr, id

`,4),Os=n("div",{className:"run-code"},"▶ Run Code",-1),zs=s(`
js
var art = new Artplayer({
+

lang ​

  • Type: String
  • Default: navigator.language.toLowerCase()

默认显示语言,目前支持:en, zh-cn, zh-tw, cs, pl, es, fa, fr, id

`,4),Os=a("div",{className:"run-code"},"▶ Run Code",-1),zs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lang: 'en',
 });
-

i18n

  • Type: Object
  • Default: {}

自定义 i18n 配置,该配置会和自带的 i18n 进行深度合并

新增你的语言:

`,5),Ms=n("div",{className:"run-code"},"▶ Run Code",-1),Ls=s(`
js
var art = new Artplayer({
+

i18n ​

  • Type: Object
  • Default: {}

自定义 i18n 配置,该配置会和自带的 i18n 进行深度合并

新增你的语言:

`,5),Ms=a("div",{className:"run-code"},"▶ Run Code",-1),Ls=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lang: 'your-lang',
@@ -398,7 +398,7 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     },
 });
-

修改现有的语言

`,2),$s=n("div",{className:"run-code"},"▶ Run Code",-1),Hs=s(`
js
var art = new Artplayer({
+

修改现有的语言

`,2),$s=a("div",{className:"run-code"},"▶ Run Code",-1),Hs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     i18n: {
@@ -410,30 +410,30 @@ import{_ as a,c as l,o as p,a as s,b as n}from"./app.77a2ba76.js";const Dn=JSON.
         },
     },
 });
-

i18n 写法参考

artplayer/types/i18n.d.ts

lock

  • Type: Boolean
  • Default: false

是否在移动端显示一个 锁定按钮 ,用于隐藏底部 控制栏

`,5),Ys=n("div",{className:"run-code"},"▶ Run Code",-1),Ws=s(`
js
var art = new Artplayer({
+

i18n 写法参考

artplayer/types/i18n.d.ts

lock ​

  • Type: Boolean
  • Default: false

是否在移动端显示一个 锁定按钮 ,用于隐藏底部 控制栏

`,5),Ys=a("div",{className:"run-code"},"▶ Run Code",-1),Ws=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lock: true,
 });
-

fastForward

  • Type: Boolean
  • Default: false

是否在移动端添加长按视频快进功能

`,4),Js=n("div",{className:"run-code"},"▶ Run Code",-1),Us=s(`
js
var art = new Artplayer({
+

fastForward ​

  • Type: Boolean
  • Default: false

是否在移动端添加长按视频快进功能

`,4),Us=a("div",{className:"run-code"},"▶ Run Code",-1),Js=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fastForward: true,
 });
-

autoPlayback

  • Type: Boolean
  • Default: false

是否使用自动 回放功能

`,4),Gs=n("div",{className:"run-code"},"▶ Run Code",-1),Ks=s(`
js
var art = new Artplayer({
+

autoPlayback ​

  • Type: Boolean
  • Default: false

是否使用自动 回放功能

`,4),Gs=a("div",{className:"run-code"},"▶ Run Code",-1),Ks=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     id: 'your-url-id',
     autoPlayback: true,
 });
-

提示

因为播放器默认使用 url 作为 key 来缓存播放进度的

但假如你的同一个视频的 url 是不同的话,那么你需要使用 id 来标识视频的唯一 key

autoOrientation

  • Type: Boolean
  • Default: false

是否在移动端的网页全屏时,根据视频尺寸和视口尺寸,旋转播放器

`,5),Qs=n("div",{className:"run-code"},"▶ Run Code",-1),Xs=s(`
js
var art = new Artplayer({
+

提示

因为播放器默认使用 url 作为 key 来缓存播放进度的

但假如你的同一个视频的 url 是不同的话,那么你需要使用 id 来标识视频的唯一 key

autoOrientation ​

  • Type: Boolean
  • Default: false

是否在移动端的网页全屏时,根据视频尺寸和视口尺寸,旋转播放器

`,5),Qs=a("div",{className:"run-code"},"▶ Run Code",-1),Xs=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoOrientation: true,
 });
-

airplay

  • Type: Boolean
  • Default: false

是否显示 airplay 按钮,当前只有部分浏览器支持该功能

`,4),Zs=n("div",{className:"run-code"},"▶ Run Code",-1),sn=s(`
js
var art = new Artplayer({
+

airplay ​

  • Type: Boolean
  • Default: false

是否显示 airplay 按钮,当前只有部分浏览器支持该功能

`,4),Zs=a("div",{className:"run-code"},"▶ Run Code",-1),sa=s(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     airplay: true,
 });
-
`,1),nn=[o,c,r,t,i,D,y,F,C,d,A,h,u,b,m,g,_,v,T,E,f,S,k,w,x,P,R,j,N,I,V,B,q,O,z,M,L,$,H,Y,W,J,U,G,K,Q,X,Z,ss,ns,as,ls,ps,es,os,cs,rs,ts,is,Ds,ys,Fs,Cs,ds,As,hs,us,bs,ms,gs,_s,vs,Ts,Es,fs,Ss,ks,ws,xs,Ps,Rs,js,Ns,Is,Vs,Bs,qs,Os,zs,Ms,Ls,$s,Hs,Ys,Ws,Js,Us,Gs,Ks,Qs,Xs,Zs,sn];function an(ln,pn,en,on,cn,rn){return p(),l("div",null,nn)}const yn=a(e,[["render",an]]);export{Dn as __pageData,yn as default}; +
`,1),aa=[o,c,r,t,D,i,y,F,C,A,d,h,u,b,m,g,_,v,T,E,f,S,P,k,w,R,q,j,N,I,V,x,B,O,z,M,L,$,H,Y,W,U,J,G,K,Q,X,Z,ss,as,ns,ls,ps,es,os,cs,rs,ts,Ds,is,ys,Fs,Cs,As,ds,hs,us,bs,ms,gs,_s,vs,Ts,Es,fs,Ss,Ps,ks,ws,Rs,qs,js,Ns,Is,Vs,xs,Bs,Os,zs,Ms,Ls,$s,Hs,Ys,Ws,Us,Js,Gs,Ks,Qs,Xs,Zs,sa];function na(la,pa,ea,oa,ca,ra){return p(),l("div",null,aa)}const ia=n(e,[["render",na]]);export{Da as __pageData,ia as default}; diff --git a/docs/document/assets/start_option.md.35e43089.lean.js b/docs/document/assets/start_option.md.35e43089.lean.js new file mode 100644 index 000000000..eeedb83f4 --- /dev/null +++ b/docs/document/assets/start_option.md.35e43089.lean.js @@ -0,0 +1 @@ +import{_ as n,c as l,o as p,U as s,x as a}from"./chunks/framework.75837252.js";const Da=JSON.parse('{"title":"基础选项","description":"","frontmatter":{},"headers":[],"relativePath":"start/option.md","lastUpdated":1677226299000}'),e={name:"start/option.md"},o=s("",4),c=a("div",{className:"run-code"},"▶ Run Code",-1),r=s("",9),t=a("div",{className:"run-code"},"▶ Run Code",-1),D=s("",2),i=a("div",{className:"run-code"},"▶ Run Code",-1),y=s("",5),F=a("div",{className:"run-code"},"▶ Run Code",-1),C=s("",4),A=a("div",{className:"run-code"},"▶ Run Code",-1),d=s("",7),h=a("div",{className:"run-code"},"▶ Run Code",-1),u=s("",4),b=a("div",{className:"run-code"},"▶ Run Code",-1),m=s("",4),g=a("div",{className:"run-code"},"▶ Run Code",-1),_=s("",4),v=a("div",{className:"run-code"},"▶ Run Code",-1),T=s("",5),E=a("div",{className:"run-code"},"▶ Run Code",-1),f=s("",4),S=a("div",{className:"run-code"},"▶ Run Code",-1),P=s("",4),k=a("div",{className:"run-code"},"▶ Run Code",-1),w=s("",5),R=a("div",{className:"run-code"},"▶ Run Code",-1),q=s("",4),j=a("div",{className:"run-code"},"▶ Run Code",-1),N=s("",4),I=a("div",{className:"run-code"},"▶ Run Code",-1),V=s("",4),x=a("div",{className:"run-code"},"▶ Run Code",-1),B=s("",4),O=a("div",{className:"run-code"},"▶ Run Code",-1),z=s("",4),M=a("div",{className:"run-code"},"▶ Run Code",-1),L=s("",4),$=a("div",{className:"run-code"},"▶ Run Code",-1),H=s("",5),Y=a("div",{className:"run-code"},"▶ Run Code",-1),W=s("",4),U=a("div",{className:"run-code"},"▶ Run Code",-1),J=s("",6),G=a("div",{className:"run-code"},"▶ Run Code",-1),K=s("",4),Q=a("div",{className:"run-code"},"▶ Run Code",-1),X=s("",4),Z=a("div",{className:"run-code"},"▶ Run Code",-1),ss=s("",4),as=a("div",{className:"run-code"},"▶ Run Code",-1),ns=s("",4),ls=a("div",{className:"run-code"},"▶ Run Code",-1),ps=s("",4),es=a("div",{className:"run-code"},"▶ Run Code",-1),os=s("",5),cs=a("div",{className:"run-code"},"▶ Run Code",-1),rs=s("",4),ts=a("div",{className:"run-code"},"▶ Run Code",-1),Ds=s("",4),is=a("div",{className:"run-code"},"▶ Run Code",-1),ys=s("",5),Fs=a("div",{className:"run-code"},"▶ Run Code",-1),Cs=s("",5),As=a("div",{className:"run-code"},"▶ Run Code",-1),ds=s("",5),hs=a("div",{className:"run-code"},"▶ Run Code",-1),us=s("",6),bs=a("div",{className:"run-code"},"▶ Run Code",-1),ms=s("",5),gs=a("div",{className:"run-code"},"▶ Run Code",-1),_s=s("",4),vs=a("div",{className:"run-code"},"▶ Run Code",-1),Ts=s("",6),Es=a("div",{className:"run-code"},"▶ Run Code",-1),fs=s("",6),Ss=a("div",{className:"run-code"},"▶ Run Code",-1),Ps=s("",6),ks=a("div",{className:"run-code"},"▶ Run Code",-1),ws=s("",4),Rs=a("div",{className:"run-code"},"▶ Run Code",-1),qs=s("",4),js=a("div",{className:"run-code"},"▶ Run Code",-1),Ns=s("",5),Is=a("div",{className:"run-code"},"▶ Run Code",-1),Vs=s("",6),xs=a("div",{className:"run-code"},"▶ Run Code",-1),Bs=s("",4),Os=a("div",{className:"run-code"},"▶ Run Code",-1),zs=s("",5),Ms=a("div",{className:"run-code"},"▶ Run Code",-1),Ls=s("",2),$s=a("div",{className:"run-code"},"▶ Run Code",-1),Hs=s("",5),Ys=a("div",{className:"run-code"},"▶ Run Code",-1),Ws=s("",4),Us=a("div",{className:"run-code"},"▶ Run Code",-1),Js=s("",4),Gs=a("div",{className:"run-code"},"▶ Run Code",-1),Ks=s("",5),Qs=a("div",{className:"run-code"},"▶ Run Code",-1),Xs=s("",4),Zs=a("div",{className:"run-code"},"▶ Run Code",-1),sa=s("",1),aa=[o,c,r,t,D,i,y,F,C,A,d,h,u,b,m,g,_,v,T,E,f,S,P,k,w,R,q,j,N,I,V,x,B,O,z,M,L,$,H,Y,W,U,J,G,K,Q,X,Z,ss,as,ns,ls,ps,es,os,cs,rs,ts,Ds,is,ys,Fs,Cs,As,ds,hs,us,bs,ms,gs,_s,vs,Ts,Es,fs,Ss,Ps,ks,ws,Rs,qs,js,Ns,Is,Vs,xs,Bs,Os,zs,Ms,Ls,$s,Hs,Ys,Ws,Us,Js,Gs,Ks,Qs,Xs,Zs,sa];function na(la,pa,ea,oa,ca,ra){return p(),l("div",null,aa)}const ia=n(e,[["render",na]]);export{Da as __pageData,ia as default}; diff --git a/docs/document/assets/start_setting.md.a02c089b.js b/docs/document/assets/start_setting.md.1345f72b.js similarity index 86% rename from docs/document/assets/start_setting.md.a02c089b.js rename to docs/document/assets/start_setting.md.1345f72b.js index 597072e30..703b7b3bb 100644 --- a/docs/document/assets/start_setting.md.a02c089b.js +++ b/docs/document/assets/start_setting.md.1345f72b.js @@ -1,4 +1,4 @@ -import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[{"level":2,"title":"选择列表","slug":"选择列表","link":"#选择列表","children":[]},{"level":2,"title":"列表嵌套","slug":"列表嵌套","link":"#列表嵌套","children":[]},{"level":2,"title":"切换按钮","slug":"切换按钮","link":"#切换按钮","children":[]},{"level":2,"title":"范围滑块","slug":"范围滑块","link":"#范围滑块","children":[]}],"relativePath":"start/setting.md","lastUpdated":1674271220000}'),e={name:"start/setting.md"},t=s("h1",{id:"设置面板",tabindex:"-1"},[n("设置面板 "),s("a",{class:"header-anchor",href:"#设置面板","aria-hidden":"true"},"#")],-1),c=s("p",null,[n("需先打开设置面板,播放器默认自带四个设置项:"),s("code",null,"flip"),n(", "),s("code",null,"playbackRate"),n(", "),s("code",null,"aspectRatio"),n(", "),s("code",null,"subtitleOffset")],-1),r=s("div",{className:"run-code"},"▶ Run Code",-1),D=a(`
js
var art = new Artplayer({
+import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const w=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[],"relativePath":"start/setting.md","lastUpdated":1674271220000}'),e={name:"start/setting.md"},t=s("h1",{id:"设置面板",tabindex:"-1"},[n("设置面板 "),s("a",{class:"header-anchor",href:"#设置面板","aria-label":'Permalink to "设置面板"'},"​")],-1),c=s("p",null,[n("需先打开设置面板,播放器默认自带四个设置项:"),s("code",null,"flip"),n(", "),s("code",null,"playbackRate"),n(", "),s("code",null,"aspectRatio"),n(", "),s("code",null,"subtitleOffset")],-1),r=s("div",{className:"run-code"},"▶ Run Code",-1),D=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 	setting: true,
@@ -7,7 +7,7 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.pars
     aspectRatio: true,
     subtitleOffset: true,
 });
-

选择列表

属性类型描述
htmlString, Element元素的 DOM
iconString, Element元素的图标
selectorArray元素列表
onSelectFunction元素点击事件
widthNumber列表宽度
tooltipString提示文本
`,3),y=s("div",{className:"run-code"},"▶ Run Code",-1),F=a(`
js
var art = new Artplayer({
+

选择列表 ​

属性类型描述
htmlString, Element元素的 DOM
iconString, Element元素的图标
selectorArray元素列表
onSelectFunction元素点击事件
widthNumber列表宽度
tooltipString提示文本
`,3),y=s("div",{className:"run-code"},"▶ Run Code",-1),F=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -60,7 +60,7 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.pars
         },
     ],
 });
-

列表嵌套

`,2),C=s("div",{className:"run-code"},"▶ Run Code",-1),A=a(`
js
var art = new Artplayer({
+

列表嵌套 ​

`,2),C=s("div",{className:"run-code"},"▶ Run Code",-1),A=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -104,7 +104,7 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.pars
         },
     ],
 });
-

切换按钮

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
switchBoolean按钮默认状态
onSwitchFunction按钮切换事件
tooltipString提示文本
`,3),i=s("div",{className:"run-code"},"▶ Run Code",-1),d=a(`
js
var art = new Artplayer({
+

切换按钮 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
switchBoolean按钮默认状态
onSwitchFunction按钮切换事件
tooltipString提示文本
`,3),i=s("div",{className:"run-code"},"▶ Run Code",-1),b=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -124,12 +124,12 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.pars
         },
     ],
 });
-

范围滑块

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
rangeArray默认状态数组
onRangeFunction完成时触发的事件
onChangeFunction变化时触发的事件
tooltipString提示文本
js
const range = [5, 1, 10, 1];
+

范围滑块 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
rangeArray默认状态数组
onRangeFunction完成时触发的事件
onChangeFunction变化时触发的事件
tooltipString提示文本
js
const range = [5, 1, 10, 1];
 const value = range[0];
 const min = range[1];
 const max = range[2];
 const step = range[3];
-
`,4),b=s("div",{className:"run-code"},"▶ Run Code",-1),u=a(`
js
var art = new Artplayer({
+
`,4),d=s("div",{className:"run-code"},"▶ Run Code",-1),m=a(`
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -146,4 +146,4 @@ import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.pars
         },
     ],
 });
-
`,1),m=[t,c,r,D,y,F,C,A,i,d,b,u];function h(_,g,E,v,f,S){return o(),p("div",null,m)}const x=l(e,[["render",h]]);export{w as __pageData,x as default}; +
`,1),u=[t,c,r,D,y,F,C,A,i,b,d,m];function h(_,g,E,v,f,S){return o(),p("div",null,u)}const q=l(e,[["render",h]]);export{w as __pageData,q as default}; diff --git a/docs/document/assets/start_setting.md.1345f72b.lean.js b/docs/document/assets/start_setting.md.1345f72b.lean.js new file mode 100644 index 000000000..e25affa1d --- /dev/null +++ b/docs/document/assets/start_setting.md.1345f72b.lean.js @@ -0,0 +1 @@ +import{_ as l,c as p,o,x as s,a as n,U as a}from"./chunks/framework.75837252.js";const w=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[],"relativePath":"start/setting.md","lastUpdated":1674271220000}'),e={name:"start/setting.md"},t=s("h1",{id:"设置面板",tabindex:"-1"},[n("设置面板 "),s("a",{class:"header-anchor",href:"#设置面板","aria-label":'Permalink to "设置面板"'},"​")],-1),c=s("p",null,[n("需先打开设置面板,播放器默认自带四个设置项:"),s("code",null,"flip"),n(", "),s("code",null,"playbackRate"),n(", "),s("code",null,"aspectRatio"),n(", "),s("code",null,"subtitleOffset")],-1),r=s("div",{className:"run-code"},"▶ Run Code",-1),D=a("",3),y=s("div",{className:"run-code"},"▶ Run Code",-1),F=a("",2),C=s("div",{className:"run-code"},"▶ Run Code",-1),A=a("",3),i=s("div",{className:"run-code"},"▶ Run Code",-1),b=a("",4),d=s("div",{className:"run-code"},"▶ Run Code",-1),m=a("",1),u=[t,c,r,D,y,F,C,A,i,b,d,m];function h(_,g,E,v,f,S){return o(),p("div",null,u)}const q=l(e,[["render",h]]);export{w as __pageData,q as default}; diff --git a/docs/document/assets/start_setting.md.a02c089b.lean.js b/docs/document/assets/start_setting.md.a02c089b.lean.js deleted file mode 100644 index 89358048a..000000000 --- a/docs/document/assets/start_setting.md.a02c089b.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as l,c as p,o,b as s,d as n,a}from"./app.77a2ba76.js";const w=JSON.parse('{"title":"设置面板","description":"","frontmatter":{},"headers":[{"level":2,"title":"选择列表","slug":"选择列表","link":"#选择列表","children":[]},{"level":2,"title":"列表嵌套","slug":"列表嵌套","link":"#列表嵌套","children":[]},{"level":2,"title":"切换按钮","slug":"切换按钮","link":"#切换按钮","children":[]},{"level":2,"title":"范围滑块","slug":"范围滑块","link":"#范围滑块","children":[]}],"relativePath":"start/setting.md","lastUpdated":1674271220000}'),e={name:"start/setting.md"},t=s("h1",{id:"设置面板",tabindex:"-1"},[n("设置面板 "),s("a",{class:"header-anchor",href:"#设置面板","aria-hidden":"true"},"#")],-1),c=s("p",null,[n("需先打开设置面板,播放器默认自带四个设置项:"),s("code",null,"flip"),n(", "),s("code",null,"playbackRate"),n(", "),s("code",null,"aspectRatio"),n(", "),s("code",null,"subtitleOffset")],-1),r=s("div",{className:"run-code"},"▶ Run Code",-1),D=a("",3),y=s("div",{className:"run-code"},"▶ Run Code",-1),F=a("",2),C=s("div",{className:"run-code"},"▶ Run Code",-1),A=a("",3),i=s("div",{className:"run-code"},"▶ Run Code",-1),d=a("",4),b=s("div",{className:"run-code"},"▶ Run Code",-1),u=a("",1),m=[t,c,r,D,y,F,C,A,i,d,b,u];function h(_,g,E,v,f,S){return o(),p("div",null,m)}const x=l(e,[["render",h]]);export{w as __pageData,x as default}; diff --git a/docs/document/assets/style.1cf85f27.css b/docs/document/assets/style.1cf85f27.css deleted file mode 100644 index 6889843cf..000000000 --- a/docs/document/assets/style.1cf85f27.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-cyrillic-ext.e75737ce.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-latin.2ed14f66.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-greek.8f4463c4.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-gray: #8e8e93;--vp-c-text-light-1: rgba(60, 60, 67, .92);--vp-c-text-light-2: rgba(60, 60, 67, .7);--vp-c-text-light-3: rgba(60, 60, 67, .33);--vp-c-text-dark-1: rgba(255, 255, 245, .86);--vp-c-text-dark-2: rgba(235, 235, 245, .6);--vp-c-text-dark-3: rgba(235, 235, 245, .38);--vp-c-green: #10b981;--vp-c-green-light: #34d399;--vp-c-green-lighter: #6ee7b7;--vp-c-green-dark: #059669;--vp-c-green-darker: #047857;--vp-c-green-dimm-1: rgba(16, 185, 129, .05);--vp-c-green-dimm-2: rgba(16, 185, 129, .2);--vp-c-green-dimm-3: rgba(16, 185, 129, .5);--vp-c-yellow: #eab308;--vp-c-yellow-light: #facc15;--vp-c-yellow-lighter: #fde047;--vp-c-yellow-dark: #ca8a04;--vp-c-yellow-darker: #a16207;--vp-c-yellow-dimm-1: rgba(234, 179, 8, .05);--vp-c-yellow-dimm-2: rgba(234, 179, 8, .2);--vp-c-yellow-dimm-3: rgba(234, 179, 8, .5);--vp-c-red: #f43f5e;--vp-c-red-light: #fb7185;--vp-c-red-lighter: #fda4af;--vp-c-red-dark: #e11d48;--vp-c-red-darker: #be123c;--vp-c-red-dimm-1: rgba(244, 63, 94, .05);--vp-c-red-dimm-2: rgba(244, 63, 94, .2);--vp-c-red-dimm-3: rgba(244, 63, 94, .5);--vp-c-sponsor: #db2777}:root{--vp-c-bg: #ffffff;--vp-c-bg-elv: #ffffff;--vp-c-bg-elv-up: #ffffff;--vp-c-bg-elv-down: #f6f6f7;--vp-c-bg-elv-mute: #f6f6f7;--vp-c-bg-soft: #f6f6f7;--vp-c-bg-soft-up: #ffffff;--vp-c-bg-soft-down: #e3e3e5;--vp-c-bg-soft-mute: #e3e3e5;--vp-c-bg-alt: #f6f6f7;--vp-c-border: rgba(60, 60, 67, .29);--vp-c-divider: rgba(60, 60, 67, .12);--vp-c-gutter: rgba(60, 60, 67, .12);--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white);--vp-c-text-1: var(--vp-c-text-light-1);--vp-c-text-2: var(--vp-c-text-light-2);--vp-c-text-3: var(--vp-c-text-light-3);--vp-c-text-inverse-1: var(--vp-c-text-dark-1);--vp-c-text-inverse-2: var(--vp-c-text-dark-2);--vp-c-text-inverse-3: var(--vp-c-text-dark-3);--vp-c-text-code: #476582;--vp-c-brand: var(--vp-c-green);--vp-c-brand-light: var(--vp-c-green-light);--vp-c-brand-lighter: var(--vp-c-green-lighter);--vp-c-brand-dark: var(--vp-c-green-dark);--vp-c-brand-darker: var(--vp-c-green-darker);--vp-c-mute: #f6f6f7;--vp-c-mute-light: #f9f9fc;--vp-c-mute-lighter: #ffffff;--vp-c-mute-dark: #e3e3e5;--vp-c-mute-darker: #d7d7d9}.dark{--vp-c-bg: #1e1e20;--vp-c-bg-elv: #252529;--vp-c-bg-elv-up: #313136;--vp-c-bg-elv-down: #1e1e20;--vp-c-bg-elv-mute: #313136;--vp-c-bg-soft: #252529;--vp-c-bg-soft-up: #313136;--vp-c-bg-soft-down: #1e1e20;--vp-c-bg-soft-mute: #313136;--vp-c-bg-alt: #161618;--vp-c-border: rgba(82, 82, 89, .68);--vp-c-divider: rgba(82, 82, 89, .32);--vp-c-gutter: #000000;--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black);--vp-c-text-1: var(--vp-c-text-dark-1);--vp-c-text-2: var(--vp-c-text-dark-2);--vp-c-text-3: var(--vp-c-text-dark-3);--vp-c-text-inverse-1: var(--vp-c-text-light-1);--vp-c-text-inverse-2: var(--vp-c-text-light-2);--vp-c-text-inverse-3: var(--vp-c-text-light-3);--vp-c-text-code: #c9def1;--vp-c-mute: #313136;--vp-c-mute-light: #3a3a3c;--vp-c-mute-lighter: #505053;--vp-c-mute-dark: #2c2c30;--vp-c-mute-darker: #252529}:root{--vp-font-family-base: "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-local-nav: 10;--vp-z-index-nav: 20;--vp-z-index-layout-top: 30;--vp-z-index-backdrop: 40;--vp-z-index-sidebar: 50;--vp-z-index-footer: 60}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-block-color: var(--vp-c-text-dark-1);--vp-code-block-bg: #292b30;--vp-code-block-divider-color: #000000;--vp-code-line-highlight-color: rgba(0, 0, 0, .5);--vp-code-line-number-color: var(--vp-c-text-dark-3);--vp-code-line-diff-add-color: var(--vp-c-green-dimm-2);--vp-code-line-diff-add-symbol-color: var(--vp-c-green);--vp-code-line-diff-remove-color: var(--vp-c-red-dimm-2);--vp-code-line-diff-remove-symbol-color: var(--vp-c-red);--vp-code-line-warning-color: var(--vp-c-yellow-dimm-2);--vp-code-line-error-color: var(--vp-c-red-dimm-2);--vp-code-copy-code-hover-bg: rgba(255, 255, 255, .05);--vp-code-copy-code-active-text: var(--vp-c-text-dark-2);--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-dark-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-bar-color: var(--vp-c-brand)}.dark{--vp-code-block-bg: #161618}:root{--vp-button-brand-border: var(--vp-c-brand-lighter);--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand);--vp-button-brand-hover-border: var(--vp-c-brand-lighter);--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-dark);--vp-button-brand-active-border: var(--vp-c-brand-lighter);--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-darker);--vp-button-alt-border: var(--vp-c-border);--vp-button-alt-text: var(--vp-c-neutral);--vp-button-alt-bg: var(--vp-c-mute);--vp-button-alt-hover-border: var(--vp-c-border);--vp-button-alt-hover-text: var(--vp-c-neutral);--vp-button-alt-hover-bg: var(--vp-c-mute-dark);--vp-button-alt-active-border: var(--vp-c-border);--vp-button-alt-active-text: var(--vp-c-neutral);--vp-button-alt-active-bg: var(--vp-c-mute-darker);--vp-button-sponsor-border: var(--vp-c-gray-light-3);--vp-button-sponsor-text: var(--vp-c-text-light-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}.dark{--vp-button-sponsor-border: var(--vp-c-gray-dark-1);--vp-button-sponsor-text: var(--vp-c-text-dark-2)}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: var(--vp-c-border);--vp-custom-block-info-text: var(--vp-c-text-2);--vp-custom-block-info-bg: var(--vp-c-bg-soft);--vp-custom-block-info-code-bg: var(--vp-c-mute);--vp-custom-block-tip-border: var(--vp-c-green-dimm-3);--vp-custom-block-tip-text: var(--vp-c-green);--vp-custom-block-tip-bg: var(--vp-c-green-dimm-1);--vp-custom-block-tip-code-bg: var(--vp-custom-block-tip-bg);--vp-custom-block-warning-border: var(--vp-c-yellow-dimm-3);--vp-custom-block-warning-text: var(--vp-c-yellow);--vp-custom-block-warning-bg: var(--vp-c-yellow-dimm-1);--vp-custom-block-warning-code-bg: var(--vp-custom-block-warning-bg);--vp-custom-block-danger-border: var(--vp-c-red-dimm-3);--vp-custom-block-danger-text: var(--vp-c-red);--vp-custom-block-danger-bg: var(--vp-c-red-dimm-1);--vp-custom-block-danger-code-bg: var(--vp-custom-block-danger-bg);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-hover-border-color: var(--vp-c-gray);--vp-input-switch-bg-color: var(--vp-c-mute)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg)}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: var(--vp-c-border);--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-bg-soft);--vp-badge-tip-border: var(--vp-c-green-dark);--vp-badge-tip-text: var(--vp-c-green);--vp-badge-tip-bg: var(--vp-c-green-dimm-1);--vp-badge-warning-border: var(--vp-c-yellow-dark);--vp-badge-warning-text: var(--vp-c-yellow);--vp-badge-warning-bg: var(--vp-c-yellow-dimm-1);--vp-badge-danger-border: var(--vp-c-red-dark);--vp-badge-danger-text: var(--vp-c-red);--vp-badge-danger-bg: var(--vp-c-red-dimm-1)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);direction:ltr;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:700}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;transition:opacity .25s}.custom-block a:hover{opacity:.6}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.dark .vp-code-light{display:none}html:not(.dark) .vp-code-dark{display:none}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden}.vp-code-group .tabs:after{position:absolute;right:0;bottom:0;left:0;height:1px;background-color:var(--vp-code-tab-divider);content:""}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:absolute;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);background-color:var(--vp-code-tab-bg);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:10;height:1px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-]{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active{display:block}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{float:left;margin-left:-.87em;padding-right:.23em;font-weight:500;user-select:none;opacity:0;transition:color .25s,opacity .25s}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.vp-doc a:hover{color:var(--vp-c-brand-dark)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block a{color:inherit;font-weight:600;text-decoration:underline;transition:opacity .25s}.vp-doc .custom-block a:hover{opacity:.6}.vp-doc .custom-block code{font-size:var(--vp-custom-block-code-font-size);font-weight:700;color:inherit}.vp-doc .custom-block div[class*=language-]{margin:8px 0}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;color:var(--vp-c-text-code);background-color:var(--vp-c-mute);transition:color .5s,background-color .5s}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc a>code{color:var(--vp-c-brand);transition:color .25s}.vp-doc a:hover>code{color:var(--vp-c-brand-dark)}.vp-doc div[class*=language-]{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-]{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:16px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:16px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:8px;right:8px;z-index:3;display:block;justify-content:center;align-items:center;border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-block-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:opacity .4s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover{background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;left:-65px;display:flex;justify-content:center;align-items:center;border-radius:4px 0 0 4px;width:64px;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:"Copied"}.vp-doc [class*=language-]>span.lang{position:absolute;top:6px;right:12px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-c-text-dark-3);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-bg-soft-down)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge[data-v-e233384c]{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:10px;padding:0 8px;line-height:18px;font-size:12px;font-weight:600;transform:translateY(-2px)}h1 .VPBadge[data-v-e233384c],h2 .VPBadge[data-v-e233384c],h3 .VPBadge[data-v-e233384c],h4 .VPBadge[data-v-e233384c],h5 .VPBadge[data-v-e233384c],h6 .VPBadge[data-v-e233384c]{vertical-align:top}h2 .VPBadge[data-v-e233384c]{border-radius:11px;line-height:20px}.VPBadge.info[data-v-e233384c]{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip[data-v-e233384c]{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning[data-v-e233384c]{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger[data-v-e233384c]{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPSkipLink[data-v-8ab7c6af]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-8ab7c6af]:focus{height:auto;width:auto;clip:auto;clip-path:none}.dark .VPSkipLink[data-v-8ab7c6af]{color:var(--vp-c-green)}@media (min-width: 1280px){.VPSkipLink[data-v-8ab7c6af]{top:14px;left:16px}}.VPBackdrop[data-v-b2600058]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-b2600058],.VPBackdrop.fade-leave-to[data-v-b2600058]{opacity:0}.VPBackdrop.fade-leave-active[data-v-b2600058]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-b2600058]{display:none}}html:not(.dark) .VPImage.dark[data-v-74766fef]{display:none}.dark .VPImage.light[data-v-74766fef]{display:none}.title[data-v-2f3d65eb]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}.title[data-v-2f3d65eb]:hover{opacity:.6}@media (min-width: 960px){.title[data-v-2f3d65eb]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-2f3d65eb]{border-bottom-color:var(--vp-c-divider)}}[data-v-2f3d65eb] .logo{margin-right:8px;height:24px}.flex-logo{width:80px;margin-left:calc(100% - 90px);padding-bottom:10px}.search-list{padding:1rem;max-height:calc(100vh - 230px);overflow-x:auto}.search-item-icon{font-family:none;align-self:center;padding:0 1rem 0 0;font-size:x-large}.search-list>div{color:var(--vp-c-brand-dark);font-weight:700}.search-item{padding:.25rem 1rem;margin:8px 0 0;border:solid 1px;border-radius:6px;display:flex;border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.search-item p{margin:0;font-size:smaller;color:var(--c-text-light-3)}.search-item:hover{color:#fff;background:var(--vp-c-brand-dark)}.search-item:hover>p{color:#fff}.VPNavBarSearch{display:flex;align-items:center;padding-left:16px}.DocSearch-MagnifierLabel{margin:16px;color:var(--c-brand-light);stroke-width:2px}.DocSearch-Input{appearance:none;background:#58565636;border:solid 1px var(--c-brand-light);color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;width:80%;margin:8px;padding:8px;border-radius:6px}.dark .DocSearch-Input{color:var(--vp-c-text-1)}.modal-back{left:0;right:0;top:0;bottom:0;background:#545454b3;position:fixed;z-index:65}.dark .modal{background-color:#242424}.modal{background-color:#f9f9f9;border-radius:6px;box-shadow:none;flex-direction:column;margin:80px auto auto;max-width:560px;position:relative}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}@media (max-width: 768px){.modal{max-width:100%;border-radius:0}}.dark .DocSearch-Form{background-color:var(--vt-c-bg-mute)}.DocSearch-Form{background-color:#fff;border:1px solid var(--vt-c-brand);padding:6px}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Button-Key{align-items:center;background:var(--c-brand-light);border-radius:3px;box-shadow:var(--c-brand);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding-bottom:2px;position:relative;top:-1px;width:20px}body.dark .DocSearch-Button:hover{box-shadow:none}.DocSearch{--docsearch-primary-color: var(--vt-c-brand);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vt-c-text-1);--docsearch-muted-color: #ebebeb99;--docsearch-searchbox-shadow: none;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vt-c-bg-soft);--docsearch-footer-background: var(--vt-c-bg)}.dark .DocSearch{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: #ebebeb99;--docsearch-hit-background: #2f2f2f;--docsearch-hit-color: #ebebeb99;--docsearch-hit-shadow: none}.dark .DocSearch-Footer{border-top:1px solid var(--vt-c-divider)}.DocSearch-Form{background-color:#fff;border:1px solid var(--vt-c-brand)}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;width:48px;height:55px;background:transparent;border:none}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;width:100%}}.DocSearch-MagnifierLabel{color:var(--vp-c-brand-dark)}.DocSearch-Button .DocSearch-Search-Icon{transition:color .5s;fill:currentColor;width:18px;height:18px;position:relative}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:10px;width:15px;height:15px}}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vt-c-text-1)}.DocSearch-Button-Placeholder{transition:color .5s;font-size:13px;font-weight:500;color:#6669;display:none;padding:0 10px 0 0}@media (min-width: 960px){.DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vt-c-text-1)}.DocSearch-Button .DocSearch-Button-Key{margin-top:2px;border:1px solid var(--vt-c-divider);border-right:none;border-radius:4px 0 0 4px;display:none;padding-left:6px;height:22px;line-height:22px;transition:color .5s,border-color .5s;min-width:0}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vt-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button:hover .DocSearch-Button-Key{color:var(--vt-c-brand-light)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Key{display:inline-block}}.DocSearch-Button-Key{font-size:12px;font-weight:500;height:20px;margin:0;width:auto;color:var(--vt-c-text-3);transition:color .5s;display:inline-block;padding:0 1px}.icon[data-v-7cc39089]{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;fill:var(--vp-c-text-3);transition:fill .25s}.VPNavBarMenuLink[data-v-2d894c10]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-2d894c10],.VPNavBarMenuLink[data-v-2d894c10]:hover{color:var(--vp-c-brand)}.VPMenuGroup+.VPMenuLink[data-v-6e851226]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-6e851226]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-6e851226]:hover{color:var(--vp-c-brand);background-color:var(--vp-c-bg-elv-mute)}.link.active[data-v-6e851226]{color:var(--vp-c-brand)}.VPMenuGroup[data-v-e245600e]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-e245600e]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-e245600e]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-e245600e]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);transition:color .25s}.VPMenu[data-v-7bffa9cd]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-7bffa9cd] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-7bffa9cd] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-7bffa9cd] .group:last-child{padding-bottom:0}.VPMenu[data-v-7bffa9cd] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-7bffa9cd] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-7bffa9cd] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-7bffa9cd] .action{padding-left:24px}.VPFlyout[data-v-b0ce3d84]{position:relative}.VPFlyout[data-v-b0ce3d84]:hover{color:var(--vp-c-brand);transition:color .25s}.VPFlyout:hover .text[data-v-b0ce3d84]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-b0ce3d84]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-b0ce3d84]{color:var(--vp-c-brand)}.VPFlyout.active:hover .text[data-v-b0ce3d84]{color:var(--vp-c-brand-dark)}.VPFlyout:hover .menu[data-v-b0ce3d84],.button[aria-expanded=true]+.menu[data-v-b0ce3d84]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-b0ce3d84]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-b0ce3d84]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-b0ce3d84]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-b0ce3d84]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-b0ce3d84]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-b0ce3d84]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPNavBarMenu[data-v-78eb315b]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-78eb315b]{display:flex}}.VPNavBarTranslations[data-v-750e2fc2]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-750e2fc2]{display:flex;align-items:center}}.title[data-v-750e2fc2]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPSwitch[data-v-0a2eba70]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s}.VPSwitch[data-v-0a2eba70]:hover{border-color:var(--vp-input-hover-border-color)}.check[data-v-0a2eba70]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s}.icon[data-v-0a2eba70]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-0a2eba70] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-0a2eba70] svg{fill:var(--vp-c-text-1);transition:opacity .25s}.sun[data-v-79763c0a]{opacity:1}.moon[data-v-79763c0a],.dark .sun[data-v-79763c0a]{opacity:0}.dark .moon[data-v-79763c0a]{opacity:1}.dark .VPSwitchAppearance[data-v-79763c0a] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-b203cd40]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-b203cd40]{display:flex;align-items:center}}.VPSocialLink[data-v-af939139]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-af939139]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-af939139]>svg{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-de2bf516]{display:flex;flex-wrap:wrap;justify-content:center}.VPNavBarSocialLinks[data-v-db7c17db]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-db7c17db]{display:flex;align-items:center}}.VPNavBarExtra[data-v-edd480f6]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-edd480f6]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-edd480f6]{display:none}}.trans-title[data-v-edd480f6]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-edd480f6],.item.social-links[data-v-edd480f6]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-edd480f6]{min-width:176px}.appearance-action[data-v-edd480f6]{margin-right:-2px}.social-links-list[data-v-edd480f6]{margin:-4px -8px}.VPNavBarHamburger[data-v-670493dd]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-670493dd]{display:none}}.container[data-v-670493dd]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-670493dd]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-670493dd]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-670493dd]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-670493dd]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-670493dd]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-670493dd]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-670493dd],.VPNavBarHamburger.active:hover .middle[data-v-670493dd],.VPNavBarHamburger.active:hover .bottom[data-v-670493dd]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-670493dd],.middle[data-v-670493dd],.bottom[data-v-670493dd]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-670493dd]{top:0;left:0;transform:translate(0)}.middle[data-v-670493dd]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-670493dd]{top:12px;left:0;transform:translate(4px)}.VPNavBar[data-v-37d41a43]{position:relative;border-bottom:1px solid transparent;padding:0 8px 0 24px;height:var(--vp-nav-height);transition:border-color .5s,background-color .5s;pointer-events:none}.VPNavBar.has-sidebar[data-v-37d41a43]{border-bottom-color:var(--vp-c-gutter)}@media (min-width: 768px){.VPNavBar[data-v-37d41a43]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar[data-v-37d41a43]{border-bottom-color:transparent;padding:0}.VPNavBar.fill[data-v-37d41a43]:not(.has-sidebar){border-bottom-color:var(--vp-c-gutter);background-color:var(--vp-nav-bg-color)}}.container[data-v-37d41a43]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container[data-v-37d41a43] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-37d41a43]{max-width:100%}}.title[data-v-37d41a43]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-37d41a43]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-37d41a43]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-37d41a43]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-37d41a43]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-37d41a43]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-37d41a43]{display:flex;justify-content:flex-end;align-items:center;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .content-body[data-v-37d41a43],.VPNavBar.fill .content-body[data-v-37d41a43]{position:relative;background-color:var(--vp-nav-bg-color)}}.menu+.translations[data-v-37d41a43]:before,.menu+.appearance[data-v-37d41a43]:before,.menu+.social-links[data-v-37d41a43]:before,.translations+.appearance[data-v-37d41a43]:before,.appearance+.social-links[data-v-37d41a43]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-37d41a43]:before,.translations+.appearance[data-v-37d41a43]:before{margin-right:16px}.appearance+.social-links[data-v-37d41a43]:before{margin-left:16px}.social-links[data-v-37d41a43]{margin-right:-8px}@media (min-width: 960px){.VPNavBar.has-sidebar .curtain[data-v-37d41a43]{position:absolute;right:0;bottom:-31px;width:calc(100% - var(--vp-sidebar-width));height:32px}.VPNavBar.has-sidebar .curtain[data-v-37d41a43]:before{display:block;width:100%;height:32px;background:linear-gradient(var(--vp-c-bg),transparent 70%);content:""}}@media (min-width: 1440px){.VPNavBar.has-sidebar .curtain[data-v-37d41a43]{width:calc(100% - ((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width)))}}.VPNavScreenMenuLink[data-v-0162d08e]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-0162d08e]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupLink[data-v-7fd086c3]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-7fd086c3]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupSection[data-v-eb049aaa]{display:block}.title[data-v-eb049aaa]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-48a8b068]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-48a8b068]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-48a8b068]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-48a8b068]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-48a8b068]{padding-bottom:6px;color:var(--vp-c-brand)}.VPNavScreenMenuGroup.open .button-icon[data-v-48a8b068]{transform:rotate(45deg)}.button[data-v-48a8b068]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-48a8b068]:hover{color:var(--vp-c-brand)}.button-icon[data-v-48a8b068]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-48a8b068]:first-child{padding-top:0}.group+.group[data-v-48a8b068],.group+.item[data-v-48a8b068]{padding-top:4px}.VPNavScreenAppearance[data-v-7c28cbe2]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-7c28cbe2]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenTranslations[data-v-ebb3a0b5]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-ebb3a0b5]{height:auto}.title[data-v-ebb3a0b5]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-ebb3a0b5]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-ebb3a0b5]{margin-right:8px}.icon.chevron[data-v-ebb3a0b5]{margin-left:4px}.list[data-v-ebb3a0b5]{padding:4px 0 0 24px}.link[data-v-ebb3a0b5]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-ea8d6f65]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-ea8d6f65],.VPNavScreen.fade-leave-active[data-v-ea8d6f65]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-ea8d6f65],.VPNavScreen.fade-leave-active .container[data-v-ea8d6f65]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-ea8d6f65],.VPNavScreen.fade-leave-to[data-v-ea8d6f65]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-ea8d6f65],.VPNavScreen.fade-leave-to .container[data-v-ea8d6f65]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-ea8d6f65]{display:none}}.container[data-v-ea8d6f65]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-ea8d6f65],.menu+.appearance[data-v-ea8d6f65],.translations+.appearance[data-v-ea8d6f65]{margin-top:24px}.menu+.social-links[data-v-ea8d6f65]{margin-top:16px}.appearance+.social-links[data-v-ea8d6f65]{margin-top:16px}.VPNav[data-v-66446b03]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-66446b03]{position:fixed}}.VPLocalNav[data-v-6226d912]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color);transition:border-color .5s,background-color .5s}@media (min-width: 960px){.VPLocalNav[data-v-6226d912]{display:none}}.menu[data-v-6226d912]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-6226d912]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-6226d912]{padding:0 32px}}.menu-icon[data-v-6226d912]{margin-right:8px;width:16px;height:16px;fill:currentColor}.top-link[data-v-6226d912]{display:block;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.top-link[data-v-6226d912]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.top-link[data-v-6226d912]{padding:12px 32px 11px}}.VPSidebarItem.level-0[data-v-9e9ac16f]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-9e9ac16f]{padding-bottom:10px}.item[data-v-9e9ac16f]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-9e9ac16f]{cursor:pointer}.indicator[data-v-9e9ac16f]{position:absolute;top:6px;bottom:6px;left:-17px;width:1px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-9e9ac16f],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-9e9ac16f],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-9e9ac16f],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-9e9ac16f]{background-color:var(--vp-c-brand)}.link[data-v-9e9ac16f]{display:block;flex-grow:1}.text[data-v-9e9ac16f]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-9e9ac16f]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-9e9ac16f],.VPSidebarItem.level-2 .text[data-v-9e9ac16f],.VPSidebarItem.level-3 .text[data-v-9e9ac16f],.VPSidebarItem.level-4 .text[data-v-9e9ac16f],.VPSidebarItem.level-5 .text[data-v-9e9ac16f]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-9e9ac16f],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-9e9ac16f],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-9e9ac16f],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-9e9ac16f],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-9e9ac16f],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-9e9ac16f]{color:var(--vp-c-brand)}.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-9e9ac16f],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-9e9ac16f],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-9e9ac16f],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-9e9ac16f],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-9e9ac16f],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-9e9ac16f]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-9e9ac16f],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-9e9ac16f],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-9e9ac16f],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-9e9ac16f],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-9e9ac16f],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-9e9ac16f]{color:var(--vp-c-brand)}.caret[data-v-9e9ac16f]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s}.item:hover .caret[data-v-9e9ac16f]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-9e9ac16f]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-9e9ac16f]{width:18px;height:18px;fill:currentColor;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-9e9ac16f]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-9e9ac16f],.VPSidebarItem.level-2 .items[data-v-9e9ac16f],.VPSidebarItem.level-3 .items[data-v-9e9ac16f],.VPSidebarItem.level-4 .items[data-v-9e9ac16f],.VPSidebarItem.level-5 .items[data-v-9e9ac16f]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-9e9ac16f]{display:none}.VPSidebar[data-v-f125b138]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease}.VPSidebar.open[data-v-f125b138]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-f125b138]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-f125b138]{z-index:1;padding-top:var(--vp-nav-height);padding-bottom:128px;width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-f125b138]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-f125b138]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-f125b138]{outline:0}.group+.group[data-v-f125b138]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-f125b138]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPButton[data-v-aea69b24]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-aea69b24]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-aea69b24]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-aea69b24]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-aea69b24]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-aea69b24]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-aea69b24]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-aea69b24]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-aea69b24]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-aea69b24]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-aea69b24]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-aea69b24]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-aea69b24]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}.VPHero[data-v-34a19025]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-34a19025]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-34a19025]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-34a19025]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-34a19025]{flex-direction:row}}.main[data-v-34a19025]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-34a19025]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-34a19025]{text-align:left}}@media (min-width: 960px){.main[data-v-34a19025]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-34a19025]{max-width:592px}}.name[data-v-34a19025],.text[data-v-34a19025]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-34a19025],.VPHero.has-image .text[data-v-34a19025]{margin:0 auto}.name[data-v-34a19025]{color:var(--vp-home-hero-name-color)}.clip[data-v-34a19025]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-34a19025],.text[data-v-34a19025]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-34a19025],.text[data-v-34a19025]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-34a19025],.VPHero.has-image .text[data-v-34a19025]{margin:0}}.tagline[data-v-34a19025]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-34a19025]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-34a19025]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-34a19025]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-34a19025]{margin:0}}.actions[data-v-34a19025]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-34a19025]{justify-content:center}@media (min-width: 640px){.actions[data-v-34a19025]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-34a19025]{justify-content:flex-start}}.action[data-v-34a19025]{flex-shrink:0;padding:6px}.image[data-v-34a19025]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-34a19025]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-34a19025]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-34a19025]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-34a19025]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-34a19025]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-34a19025]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-34a19025]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-34a19025]{width:320px;height:320px}}[data-v-34a19025] .image-src{position:absolute;top:50%;left:50%;max-width:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-34a19025] .image-src{max-width:256px}}@media (min-width: 960px){[data-v-34a19025] .image-src{max-width:320px}}.VPFeature[data-v-d8821566]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-d8821566]:hover{border-color:var(--vp-c-brand);background-color:var(--vp-c-bg-soft-up)}.box[data-v-d8821566]{display:flex;flex-direction:column;padding:24px;height:100%}.VPFeature[data-v-d8821566] .VPImage{width:fit-content;margin-bottom:20px}.icon[data-v-d8821566]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-bg-soft-down);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-d8821566]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-d8821566]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-d8821566]{padding-top:8px}.link-text-value[data-v-d8821566]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand)}.link-text-icon[data-v-d8821566]{display:inline-block;margin-left:6px;width:14px;height:14px;fill:currentColor}.VPFeatures[data-v-5e2470ab]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-5e2470ab]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-5e2470ab]{padding:0 64px}}.container[data-v-5e2470ab]{margin:0 auto;max-width:1152px}.items[data-v-5e2470ab]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-5e2470ab]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-5e2470ab],.item.grid-4[data-v-5e2470ab],.item.grid-6[data-v-5e2470ab]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-5e2470ab],.item.grid-4[data-v-5e2470ab]{width:50%}.item.grid-3[data-v-5e2470ab],.item.grid-6[data-v-5e2470ab]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-5e2470ab]{width:25%}}.VPHome[data-v-a6ccdea8]{padding-bottom:96px}.VPHome[data-v-a6ccdea8] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-a6ccdea8]{padding-bottom:128px}}.root[data-v-0eba5460]{position:relative;z-index:1}.nested[data-v-0eba5460]{padding-left:13px}.outline-link[data-v-0eba5460]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s}.outline-link[data-v-0eba5460]:hover,.outline-link.active[data-v-0eba5460]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-0eba5460]{padding-left:13px}.VPDocAsideOutline[data-v-8ecbaa97]{display:none}.VPDocAsideOutline.has-outline[data-v-8ecbaa97]{display:block}.content[data-v-8ecbaa97]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-8ecbaa97]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:1px;height:18px;background-color:var(--vp-c-brand);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-8ecbaa97]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.VPDocAside[data-v-a69aa6fb]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-a69aa6fb]{flex-grow:1}.VPDocAside[data-v-a69aa6fb] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-a69aa6fb] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-a69aa6fb] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-d1ad48b7]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-d1ad48b7]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-193f9e2f]{margin-top:64px}.edit-info[data-v-193f9e2f]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-193f9e2f]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-193f9e2f]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.edit-link-button[data-v-193f9e2f]:hover{color:var(--vp-c-brand-dark)}.edit-link-icon[data-v-193f9e2f]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-193f9e2f]{border-top:1px solid var(--vp-c-divider);padding-top:24px}@media (min-width: 640px){.prev-next[data-v-193f9e2f]{display:flex}}.pager.has-prev[data-v-193f9e2f]{padding-top:8px}@media (min-width: 640px){.pager[data-v-193f9e2f]{display:flex;flex-direction:column;flex-shrink:0;width:50%}.pager.has-prev[data-v-193f9e2f]{padding-top:0;padding-left:16px}}.pager-link[data-v-193f9e2f]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-193f9e2f]:hover{border-color:var(--vp-c-brand)}.pager-link.next[data-v-193f9e2f]{margin-left:auto;text-align:right}.desc[data-v-193f9e2f]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-193f9e2f]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.VPDoc[data-v-fca53d57]{padding:32px 24px 96px;width:100%}@media (min-width: 768px){.VPDoc[data-v-fca53d57]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-fca53d57]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-fca53d57]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-fca53d57]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-fca53d57]{display:flex;justify-content:center}.VPDoc .aside[data-v-fca53d57]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-fca53d57]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-fca53d57]{max-width:1104px}}.container[data-v-fca53d57]{margin:0 auto;width:100%}.aside[data-v-fca53d57]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.aside-container[data-v-fca53d57]{position:sticky;top:0;margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1 - 32px);padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 32px);height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-fca53d57]::-webkit-scrollbar{display:none}.aside-curtain[data-v-fca53d57]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-fca53d57]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 32px));padding-bottom:32px}.content[data-v-fca53d57]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-fca53d57]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-fca53d57]{order:1;margin:0;min-width:640px}}.content-container[data-v-fca53d57]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-fca53d57]{max-width:688px}.VPContent[data-v-defa13ac]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-defa13ac]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-defa13ac]{margin:0}@media (min-width: 960px){.VPContent[data-v-defa13ac]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-defa13ac]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-defa13ac]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-131f6713]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-131f6713]{display:none}@media (min-width: 768px){.VPFooter[data-v-131f6713]{padding:32px}}.container[data-v-131f6713]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-131f6713],.copyright[data-v-131f6713]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.message[data-v-131f6713]{order:2}.copyright[data-v-131f6713]{order:1}.Layout[data-v-609f66fb]{display:flex;flex-direction:column;min-height:100vh}.NotFound[data-v-0a507fb2]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-0a507fb2]{padding:96px 32px 168px}}.code[data-v-0a507fb2]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-0a507fb2]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-0a507fb2]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-0a507fb2]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-0a507fb2]{padding-top:20px}.link[data-v-0a507fb2]{display:inline-block;border:1px solid var(--vp-c-brand);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:border-color .25s,color .25s}.link[data-v-0a507fb2]:hover{border-color:var(--vp-c-brand-dark);color:var(--vp-c-brand-dark)}.VPHomeSponsors[data-v-a4b81f3b]{border-top:1px solid var(--vp-c-gutter);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-a4b81f3b]{margin:0 auto;max-width:1152px}.love[data-v-a4b81f3b]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-a4b81f3b]{width:28px;height:28px;fill:currentColor}.message[data-v-a4b81f3b]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-a4b81f3b]{padding-top:32px}.action[data-v-a4b81f3b]{padding-top:40px;text-align:center}.VPTeamPage[data-v-05fecbf1]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-05fecbf1]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-05fecbf1-s],.VPTeamMembers+.VPTeamPageSection[data-v-05fecbf1-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-05fecbf1-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-05fecbf1-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-05fecbf1-s],.VPTeamMembers+.VPTeamPageSection[data-v-05fecbf1-s]{margin-top:96px}}.VPTeamMembers[data-v-05fecbf1-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-05fecbf1-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-05fecbf1-s]{padding:0 64px}}.VPTeamPageTitle[data-v-6ce551d6]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-6ce551d6]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-6ce551d6]{padding:80px 64px 48px}}.title[data-v-6ce551d6]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-6ce551d6]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-6ce551d6]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-6ce551d6]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-1ac32f26]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-1ac32f26]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-1ac32f26]{padding:0 64px}}.title[data-v-1ac32f26]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-1ac32f26]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-1ac32f26]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-1ac32f26]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-1ac32f26]{padding-top:40px}.VPTeamMembersItem[data-v-8691674a]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-8691674a]{padding:32px}.VPTeamMembersItem.small .data[data-v-8691674a]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-8691674a]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-8691674a]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-8691674a]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-8691674a]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-8691674a]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-8691674a]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-8691674a]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-8691674a]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-8691674a]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-8691674a]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-8691674a]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-8691674a]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-8691674a]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-8691674a]{text-align:center}.avatar[data-v-8691674a]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-8691674a]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-8691674a]{margin:0;font-weight:600}.affiliation[data-v-8691674a]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-8691674a]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-8691674a]:hover{color:var(--vp-c-brand)}.desc[data-v-8691674a]{margin:0 auto}.links[data-v-8691674a]{display:flex;justify-content:center;height:56px}.sp-link[data-v-8691674a]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-8691674a]:hover,.sp .sp-link.link[data-v-8691674a]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-8691674a]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-ed08c3d1]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-ed08c3d1]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-ed08c3d1]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-ed08c3d1]{max-width:876px}.VPTeamMembers.medium .container[data-v-ed08c3d1]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-ed08c3d1]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-ed08c3d1]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-ed08c3d1]{max-width:760px}.container[data-v-ed08c3d1]{display:grid;gap:24px;margin:0 auto;max-width:1152px} diff --git a/docs/document/assets/style.f38f6d83.css b/docs/document/assets/style.f38f6d83.css new file mode 100644 index 000000000..2f6f83afa --- /dev/null +++ b/docs/document/assets/style.f38f6d83.css @@ -0,0 +1 @@ +@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-cyrillic.5f2c6c8c.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-cyrillic-ext.e75737ce.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-greek.d5a6d92a.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-greek-ext.ab0619bc.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-latin.2ed14f66.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-latin-ext.0030eebd.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/document/assets/inter-roman-vietnamese.14ce25a6.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-cyrillic.ea42a392.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-cyrillic-ext.33bd5a8e.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-greek.8f4463c4.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-greek-ext.4fbe9427.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-latin.bd3b6f56.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-latin-ext.bd8920cc.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/document/assets/inter-italic-vietnamese.6ce511fb.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chinese Quotes;src:local("PingFang SC Regular"),local("PingFang SC"),local("SimHei"),local("Source Han Sans SC");unicode-range:U+2018,U+2019,U+201C,U+201D}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-gray: #8e8e93;--vp-c-text-light-1: rgba(60, 60, 67);--vp-c-text-light-2: rgba(60, 60, 67, .75);--vp-c-text-light-3: rgba(60, 60, 67, .33);--vp-c-text-dark-1: rgba(255, 255, 245, .86);--vp-c-text-dark-2: rgba(235, 235, 245, .6);--vp-c-text-dark-3: rgba(235, 235, 245, .38);--vp-c-green: #10b981;--vp-c-green-light: #34d399;--vp-c-green-lighter: #6ee7b7;--vp-c-green-dark: #059669;--vp-c-green-darker: #047857;--vp-c-green-dimm-1: rgba(16, 185, 129, .05);--vp-c-green-dimm-2: rgba(16, 185, 129, .2);--vp-c-green-dimm-3: rgba(16, 185, 129, .5);--vp-c-yellow: #d97706;--vp-c-yellow-light: #f59e0b;--vp-c-yellow-lighter: #fbbf24;--vp-c-yellow-dark: #b45309;--vp-c-yellow-darker: #92400e;--vp-c-yellow-dimm-1: rgba(234, 179, 8, .05);--vp-c-yellow-dimm-2: rgba(234, 179, 8, .2);--vp-c-yellow-dimm-3: rgba(234, 179, 8, .5);--vp-c-red: #f43f5e;--vp-c-red-light: #fb7185;--vp-c-red-lighter: #fda4af;--vp-c-red-dark: #e11d48;--vp-c-red-darker: #be123c;--vp-c-red-dimm-1: rgba(244, 63, 94, .05);--vp-c-red-dimm-2: rgba(244, 63, 94, .2);--vp-c-red-dimm-3: rgba(244, 63, 94, .5);--vp-c-sponsor: #db2777}:root{--vp-c-bg: #ffffff;--vp-c-bg-elv: #ffffff;--vp-c-bg-elv-up: #ffffff;--vp-c-bg-elv-down: #f6f6f7;--vp-c-bg-elv-mute: #f6f6f7;--vp-c-bg-soft: #f6f6f7;--vp-c-bg-soft-up: #f9f9fa;--vp-c-bg-soft-down: #e3e3e5;--vp-c-bg-soft-mute: #e3e3e5;--vp-c-bg-alt: #f6f6f7;--vp-c-border: rgba(60, 60, 67, .29);--vp-c-divider: rgba(60, 60, 67, .12);--vp-c-gutter: rgba(60, 60, 67, .12);--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white);--vp-c-text-1: var(--vp-c-text-light-1);--vp-c-text-2: var(--vp-c-text-light-2);--vp-c-text-3: var(--vp-c-text-light-3);--vp-c-text-inverse-1: var(--vp-c-text-dark-1);--vp-c-text-inverse-2: var(--vp-c-text-dark-2);--vp-c-text-inverse-3: var(--vp-c-text-dark-3);--vp-c-text-code: #476582;--vp-c-brand: var(--vp-c-green);--vp-c-brand-light: var(--vp-c-green-light);--vp-c-brand-lighter: var(--vp-c-green-lighter);--vp-c-brand-dark: var(--vp-c-green-dark);--vp-c-brand-darker: var(--vp-c-green-darker);--vp-c-mute: #f6f6f7;--vp-c-mute-light: #f9f9fc;--vp-c-mute-lighter: #ffffff;--vp-c-mute-dark: #e3e3e5;--vp-c-mute-darker: #d7d7d9}.dark{--vp-c-bg: #1e1e20;--vp-c-bg-elv: #252529;--vp-c-bg-elv-up: #313136;--vp-c-bg-elv-down: #1e1e20;--vp-c-bg-elv-mute: #313136;--vp-c-bg-soft: #252529;--vp-c-bg-soft-up: #313136;--vp-c-bg-soft-down: #1e1e20;--vp-c-bg-soft-mute: #313136;--vp-c-bg-alt: #161618;--vp-c-border: rgba(82, 82, 89, .68);--vp-c-divider: rgba(82, 82, 89, .32);--vp-c-gutter: #000000;--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black);--vp-c-text-1: var(--vp-c-text-dark-1);--vp-c-text-2: var(--vp-c-text-dark-2);--vp-c-text-3: var(--vp-c-text-dark-3);--vp-c-text-inverse-1: var(--vp-c-text-light-1);--vp-c-text-inverse-2: var(--vp-c-text-light-2);--vp-c-text-inverse-3: var(--vp-c-text-light-3);--vp-c-text-code: #c9def1;--vp-c-mute: #313136;--vp-c-mute-light: #3a3a3c;--vp-c-mute-lighter: #505053;--vp-c-mute-dark: #2c2c30;--vp-c-mute-darker: #252529}:root{--vp-font-family-base: "Chinese Quotes", "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-local-nav: 10;--vp-z-index-nav: 20;--vp-z-index-layout-top: 30;--vp-z-index-backdrop: 40;--vp-z-index-sidebar: 50;--vp-z-index-footer: 60}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-block-color: var(--vp-c-text-dark-1);--vp-code-block-bg: #292b30;--vp-code-block-bg-light: #1e1e20;--vp-code-block-divider-color: #000000;--vp-code-line-highlight-color: rgba(0, 0, 0, .5);--vp-code-line-number-color: var(--vp-c-text-dark-3);--vp-code-line-diff-add-color: var(--vp-c-green-dimm-2);--vp-code-line-diff-add-symbol-color: var(--vp-c-green);--vp-code-line-diff-remove-color: var(--vp-c-red-dimm-2);--vp-code-line-diff-remove-symbol-color: var(--vp-c-red);--vp-code-line-warning-color: var(--vp-c-yellow-dimm-2);--vp-code-line-error-color: var(--vp-c-red-dimm-2);--vp-code-copy-code-border-color: transparent;--vp-code-copy-code-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-code-block-bg-light);--vp-code-copy-code-active-text: var(--vp-c-text-dark-2);--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-dark-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-text-color: var(--vp-c-text-dark-1);--vp-code-tab-active-bar-color: var(--vp-c-brand)}.dark{--vp-code-block-bg: #161618}:root{--vp-button-brand-border: var(--vp-c-brand-lighter);--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand);--vp-button-brand-hover-border: var(--vp-c-brand-lighter);--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-dark);--vp-button-brand-active-border: var(--vp-c-brand-lighter);--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-darker);--vp-button-alt-border: var(--vp-c-border);--vp-button-alt-text: var(--vp-c-neutral);--vp-button-alt-bg: var(--vp-c-mute);--vp-button-alt-hover-border: var(--vp-c-border);--vp-button-alt-hover-text: var(--vp-c-neutral);--vp-button-alt-hover-bg: var(--vp-c-mute-dark);--vp-button-alt-active-border: var(--vp-c-border);--vp-button-alt-active-text: var(--vp-c-neutral);--vp-button-alt-active-bg: var(--vp-c-mute-darker);--vp-button-sponsor-border: var(--vp-c-gray-light-3);--vp-button-sponsor-text: var(--vp-c-text-light-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}.dark{--vp-button-sponsor-border: var(--vp-c-gray-dark-1);--vp-button-sponsor-text: var(--vp-c-text-dark-2)}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: var(--vp-c-border);--vp-custom-block-info-text: var(--vp-c-text-2);--vp-custom-block-info-bg: var(--vp-c-bg-soft-up);--vp-custom-block-info-code-bg: var(--vp-c-bg-soft);--vp-custom-block-tip-border: var(--vp-c-green);--vp-custom-block-tip-text: var(--vp-c-green-dark);--vp-custom-block-tip-bg: var(--vp-c-bg-soft-up);--vp-custom-block-tip-code-bg: var(--vp-c-bg-soft);--vp-custom-block-warning-border: var(--vp-c-yellow);--vp-custom-block-warning-text: var(--vp-c-yellow);--vp-custom-block-warning-bg: var(--vp-c-bg-soft-up);--vp-custom-block-warning-code-bg: var(--vp-c-bg-soft);--vp-custom-block-danger-border: var(--vp-c-red);--vp-custom-block-danger-text: var(--vp-c-red);--vp-custom-block-danger-bg: var(--vp-c-bg-soft-up);--vp-custom-block-danger-code-bg: var(--vp-c-bg-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-details-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-hover-border-color: var(--vp-c-gray);--vp-input-switch-bg-color: var(--vp-c-mute)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg)}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: var(--vp-c-border);--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-bg-soft-up);--vp-badge-tip-border: var(--vp-c-green-dark);--vp-badge-tip-text: var(--vp-c-green);--vp-badge-tip-bg: var(--vp-c-green-dimm-1);--vp-badge-warning-border: var(--vp-c-yellow-dark);--vp-badge-warning-text: var(--vp-c-yellow);--vp-badge-warning-bg: var(--vp-c-yellow-dimm-1);--vp-badge-danger-border: var(--vp-c-red-dark);--vp-badge-danger-text: var(--vp-c-red);--vp-badge-danger-bg: var(--vp-c-red-dimm-1)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);direction:ltr;font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info th{color:var(--vp-custom-block-info-text)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip th{color:var(--vp-custom-block-tip-text)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning th{color:var(--vp-custom-block-warning-text)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger th{color:var(--vp-custom-block-danger-text)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details th{color:var(--vp-custom-block-details-text)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600}.custom-block a:hover{text-decoration:underline}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.dark .vp-code-light{display:none}html:not(.dark) .vp-code-dark{display:none}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden}.vp-code-group .tabs:after{position:absolute;right:0;bottom:0;left:0;height:1px;background-color:var(--vp-code-tab-divider);content:""}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:absolute;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:10;height:1px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-]{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active{display:block}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{float:left;margin-left:-.87em;padding-right:.23em;font-weight:500;user-select:none;opacity:0;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand);text-decoration-style:dotted;transition:color .25s}.vp-doc a:hover{text-decoration:underline}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block a{color:inherit;font-weight:600}.vp-doc .custom-block a:hover{text-decoration:underline}.vp-doc .custom-block code{font-size:var(--vp-custom-block-code-font-size);font-weight:700;color:inherit}.vp-doc .custom-block div[class*=language-]{margin:8px 0}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;color:var(--vp-c-text-code);background-color:var(--vp-c-mute);transition:color .5s,background-color .5s}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc a>code{color:var(--vp-c-brand);transition:color .25s}.vp-doc a:hover>code{color:var(--vp-c-brand-dark)}.vp-doc div[class*=language-]{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-]{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;display:block;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;left:-65px;display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;width:64px;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:"Copied"}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-c-text-dark-3);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-bg-soft-down)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge[data-v-e233384c]{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:10px;padding:0 8px;line-height:18px;font-size:12px;font-weight:600;transform:translateY(-2px)}h1 .VPBadge[data-v-e233384c],h2 .VPBadge[data-v-e233384c],h3 .VPBadge[data-v-e233384c],h4 .VPBadge[data-v-e233384c],h5 .VPBadge[data-v-e233384c],h6 .VPBadge[data-v-e233384c]{vertical-align:top}h2 .VPBadge[data-v-e233384c]{border-radius:11px;line-height:20px}.VPBadge.info[data-v-e233384c]{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip[data-v-e233384c]{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning[data-v-e233384c]{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger[data-v-e233384c]{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPSkipLink[data-v-994b33bc]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-994b33bc]:focus{height:auto;width:auto;clip:auto;clip-path:none}.dark .VPSkipLink[data-v-994b33bc]{color:var(--vp-c-green)}@media (min-width: 1280px){.VPSkipLink[data-v-994b33bc]{top:14px;left:16px}}.VPBackdrop[data-v-b2600058]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-b2600058],.VPBackdrop.fade-leave-to[data-v-b2600058]{opacity:0}.VPBackdrop.fade-leave-active[data-v-b2600058]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-b2600058]{display:none}}html:not(.dark) .VPImage.dark[data-v-74766fef]{display:none}.dark .VPImage.light[data-v-74766fef]{display:none}.title[data-v-bd15f18e]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}.title[data-v-bd15f18e]:hover{opacity:.6}@media (min-width: 960px){.title[data-v-bd15f18e]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-bd15f18e]{border-bottom-color:var(--vp-c-divider)}}[data-v-bd15f18e] .logo{margin-right:8px;height:24px}.flex-logo{width:80px;margin-left:calc(100% - 90px);padding-bottom:10px}.search-list{padding:1rem;max-height:calc(100vh - 230px);overflow-x:auto}.search-item-icon{font-family:none;align-self:center;padding:0 1rem 0 0;font-size:x-large}.search-list>div{color:var(--vp-c-brand-dark);font-weight:700}.search-item{padding:.25rem 1rem;margin:8px 0 0;border:solid 1px;border-radius:6px;display:flex;border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.search-item p{margin:0;font-size:smaller;color:var(--c-text-light-3)}.search-item:hover{color:#fff;background:var(--vp-c-brand-dark)}.search-item:hover>p{color:#fff}.VPNavBarSearch{display:flex;align-items:center;padding-left:16px}.DocSearch-MagnifierLabel{margin:16px;color:var(--c-brand-light);stroke-width:2px}.DocSearch-Input{appearance:none;background:#58565636;border:solid 1px var(--c-brand-light);color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;width:80%;margin:8px;padding:8px;border-radius:6px}.dark .DocSearch-Input{color:var(--vp-c-text-1)}.modal-back{left:0;right:0;top:0;bottom:0;background:#545454b3;position:fixed;z-index:65}.dark .modal{background-color:#242424}.modal{background-color:#f9f9f9;border-radius:6px;box-shadow:none;flex-direction:column;margin:80px auto auto;max-width:560px;position:relative}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}@media (max-width: 768px){.modal{max-width:100%;border-radius:0}}.dark .DocSearch-Form{background-color:var(--vt-c-bg-mute)}.DocSearch-Form{background-color:#fff;border:1px solid var(--vt-c-brand);padding:6px}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Button-Key{align-items:center;background:var(--c-brand-light);border-radius:3px;box-shadow:var(--c-brand);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding-bottom:2px;position:relative;top:-1px;width:20px}body.dark .DocSearch-Button:hover{box-shadow:none}.DocSearch{--docsearch-primary-color: var(--vt-c-brand);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vt-c-text-1);--docsearch-muted-color: #ebebeb99;--docsearch-searchbox-shadow: none;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vt-c-bg-soft);--docsearch-footer-background: var(--vt-c-bg)}.dark .DocSearch{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: #ebebeb99;--docsearch-hit-background: #2f2f2f;--docsearch-hit-color: #ebebeb99;--docsearch-hit-shadow: none}.dark .DocSearch-Footer{border-top:1px solid var(--vt-c-divider)}.DocSearch-Form{background-color:#fff;border:1px solid var(--vt-c-brand)}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;width:48px;height:55px;background:transparent;border:none}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;width:100%}}.DocSearch-MagnifierLabel{color:var(--vp-c-brand-dark)}.DocSearch-Button .DocSearch-Search-Icon{transition:color .5s;fill:currentColor;width:18px;height:18px;position:relative}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:10px;width:15px;height:15px}}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vt-c-text-1)}.DocSearch-Button-Placeholder{transition:color .5s;font-size:13px;font-weight:500;color:#6669;display:none;padding:0 10px 0 0}@media (min-width: 960px){.DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vt-c-text-1)}.DocSearch-Button .DocSearch-Button-Key{margin-top:2px;border:1px solid var(--vt-c-divider);border-right:none;border-radius:4px 0 0 4px;display:none;padding-left:6px;height:22px;line-height:22px;transition:color .5s,border-color .5s;min-width:0}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vt-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button:hover .DocSearch-Button-Key{color:var(--vt-c-brand-light)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Key{display:inline-block}}.DocSearch-Button-Key{font-size:12px;font-weight:500;height:20px;margin:0;width:auto;color:var(--vt-c-text-3);transition:color .5s;display:inline-block;padding:0 1px}.icon[data-v-87683ad2]{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;fill:var(--vp-c-text-3);transition:fill .25s;flex-shrink:0}.VPNavBarMenuLink[data-v-6dd6d312]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-6dd6d312],.VPNavBarMenuLink[data-v-6dd6d312]:hover{color:var(--vp-c-brand)}.VPMenuGroup+.VPMenuLink[data-v-b9520bf2]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-b9520bf2]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-b9520bf2]:hover{color:var(--vp-c-brand);background-color:var(--vp-c-bg-elv-mute)}.link.active[data-v-b9520bf2]{color:var(--vp-c-brand)}.VPMenuGroup[data-v-2bec9359]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-2bec9359]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-2bec9359]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-2bec9359]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-7bffa9cd]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-7bffa9cd] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-7bffa9cd] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-7bffa9cd] .group:last-child{padding-bottom:0}.VPMenu[data-v-7bffa9cd] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-7bffa9cd] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-7bffa9cd] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-7bffa9cd] .action{padding-left:24px}.VPFlyout[data-v-64c29883]{position:relative}.VPFlyout[data-v-64c29883]:hover{color:var(--vp-c-brand);transition:color .25s}.VPFlyout:hover .text[data-v-64c29883]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-64c29883]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-64c29883]{color:var(--vp-c-brand)}.VPFlyout.active:hover .text[data-v-64c29883]{color:var(--vp-c-brand-dark)}.VPFlyout:hover .menu[data-v-64c29883],.button[aria-expanded=true]+.menu[data-v-64c29883]{opacity:1;visibility:visible;transform:translateY(0)}.button[data-v-64c29883]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-64c29883]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-64c29883]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-64c29883]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-64c29883]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-64c29883]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPNavBarMenu[data-v-c6c3e6d4]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-c6c3e6d4]{display:flex}}.VPNavBarTranslations[data-v-3bf1c934]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-3bf1c934]{display:flex;align-items:center}}.title[data-v-3bf1c934]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPSwitch[data-v-0a2eba70]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s}.VPSwitch[data-v-0a2eba70]:hover{border-color:var(--vp-input-hover-border-color)}.check[data-v-0a2eba70]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s}.icon[data-v-0a2eba70]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-0a2eba70] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-0a2eba70] svg{fill:var(--vp-c-text-1);transition:opacity .25s}.sun[data-v-f37e294f]{opacity:1}.moon[data-v-f37e294f],.dark .sun[data-v-f37e294f]{opacity:0}.dark .moon[data-v-f37e294f]{opacity:1}.dark .VPSwitchAppearance[data-v-f37e294f] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-88042fc7]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-88042fc7]{display:flex;align-items:center}}.VPSocialLink[data-v-ca994af5]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-ca994af5]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-ca994af5]>svg{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-de2bf516]{display:flex;flex-wrap:wrap;justify-content:center}.VPNavBarSocialLinks[data-v-08b35e6f]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-08b35e6f]{display:flex;align-items:center}}.VPNavBarExtra[data-v-47bb42ad]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-47bb42ad]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-47bb42ad]{display:none}}.trans-title[data-v-47bb42ad]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-47bb42ad],.item.social-links[data-v-47bb42ad]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-47bb42ad]{min-width:176px}.appearance-action[data-v-47bb42ad]{margin-right:-2px}.social-links-list[data-v-47bb42ad]{margin:-4px -8px}.VPNavBarHamburger[data-v-670493dd]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-670493dd]{display:none}}.container[data-v-670493dd]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-670493dd]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-670493dd]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-670493dd]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-670493dd]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-670493dd]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-670493dd]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-670493dd],.VPNavBarHamburger.active:hover .middle[data-v-670493dd],.VPNavBarHamburger.active:hover .bottom[data-v-670493dd]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-670493dd],.middle[data-v-670493dd],.bottom[data-v-670493dd]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-670493dd]{top:0;left:0;transform:translate(0)}.middle[data-v-670493dd]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-670493dd]{top:12px;left:0;transform:translate(4px)}.VPNavBar[data-v-ddff7d0b]{position:relative;border-bottom:1px solid transparent;padding:0 8px 0 24px;height:var(--vp-nav-height);transition:border-color .5s,background-color .5s;pointer-events:none}.VPNavBar.has-sidebar[data-v-ddff7d0b]{border-bottom-color:var(--vp-c-gutter)}@media (min-width: 768px){.VPNavBar[data-v-ddff7d0b]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar[data-v-ddff7d0b]{border-bottom-color:transparent;padding:0}.VPNavBar.fill[data-v-ddff7d0b]:not(.has-sidebar){border-bottom-color:var(--vp-c-gutter);background-color:var(--vp-nav-bg-color)}}.container[data-v-ddff7d0b]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container[data-v-ddff7d0b] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-ddff7d0b]{max-width:100%}}.title[data-v-ddff7d0b]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-ddff7d0b]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-ddff7d0b]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-ddff7d0b]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-ddff7d0b]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-ddff7d0b]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-ddff7d0b]{display:flex;justify-content:flex-end;align-items:center;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .content-body[data-v-ddff7d0b],.VPNavBar.fill .content-body[data-v-ddff7d0b]{position:relative;background-color:var(--vp-nav-bg-color)}}.menu+.translations[data-v-ddff7d0b]:before,.menu+.appearance[data-v-ddff7d0b]:before,.menu+.social-links[data-v-ddff7d0b]:before,.translations+.appearance[data-v-ddff7d0b]:before,.appearance+.social-links[data-v-ddff7d0b]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-ddff7d0b]:before,.translations+.appearance[data-v-ddff7d0b]:before{margin-right:16px}.appearance+.social-links[data-v-ddff7d0b]:before{margin-left:16px}.social-links[data-v-ddff7d0b]{margin-right:-8px}@media (min-width: 960px){.VPNavBar.has-sidebar .curtain[data-v-ddff7d0b]{position:absolute;right:0;bottom:-31px;width:calc(100% - var(--vp-sidebar-width));height:32px}.VPNavBar.has-sidebar .curtain[data-v-ddff7d0b]:before{display:block;width:100%;height:32px;background:linear-gradient(var(--vp-c-bg),transparent 70%);content:""}}@media (min-width: 1440px){.VPNavBar.has-sidebar .curtain[data-v-ddff7d0b]{width:calc(100% - ((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width)))}}.VPNavScreenMenuLink[data-v-0162d08e]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-0162d08e]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupLink[data-v-7fd086c3]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-7fd086c3]:hover{color:var(--vp-c-brand)}.VPNavScreenMenuGroupSection[data-v-eb049aaa]{display:block}.title[data-v-eb049aaa]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-48a8b068]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-48a8b068]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-48a8b068]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-48a8b068]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-48a8b068]{padding-bottom:6px;color:var(--vp-c-brand)}.VPNavScreenMenuGroup.open .button-icon[data-v-48a8b068]{transform:rotate(45deg)}.button[data-v-48a8b068]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-48a8b068]:hover{color:var(--vp-c-brand)}.button-icon[data-v-48a8b068]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-48a8b068]:first-child{padding-top:0}.group+.group[data-v-48a8b068],.group+.item[data-v-48a8b068]{padding-top:4px}.VPNavScreenAppearance[data-v-8d2d8cf1]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-8d2d8cf1]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenTranslations[data-v-b72581fd]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-b72581fd]{height:auto}.title[data-v-b72581fd]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-b72581fd]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-b72581fd]{margin-right:8px}.icon.chevron[data-v-b72581fd]{margin-left:4px}.list[data-v-b72581fd]{padding:4px 0 0 24px}.link[data-v-b72581fd]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-ea8d6f65]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-ea8d6f65],.VPNavScreen.fade-leave-active[data-v-ea8d6f65]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-ea8d6f65],.VPNavScreen.fade-leave-active .container[data-v-ea8d6f65]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-ea8d6f65],.VPNavScreen.fade-leave-to[data-v-ea8d6f65]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-ea8d6f65],.VPNavScreen.fade-leave-to .container[data-v-ea8d6f65]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-ea8d6f65]{display:none}}.container[data-v-ea8d6f65]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-ea8d6f65],.menu+.appearance[data-v-ea8d6f65],.translations+.appearance[data-v-ea8d6f65]{margin-top:24px}.menu+.social-links[data-v-ea8d6f65]{margin-top:16px}.appearance+.social-links[data-v-ea8d6f65]{margin-top:16px}.VPNav[data-v-b1949460]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-b1949460]{position:fixed}}.root[data-v-2889e185]{position:relative;z-index:1}.nested[data-v-2889e185]{padding-left:13px}.outline-link[data-v-2889e185]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s;font-weight:500}.outline-link[data-v-2889e185]:hover,.outline-link.active[data-v-2889e185]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-2889e185]{padding-left:13px}.VPLocalNavOutlineDropdown[data-v-07aca99e]{padding:12px 20px 11px}.VPLocalNavOutlineDropdown button[data-v-07aca99e]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-07aca99e]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-07aca99e]{color:var(--vp-c-text-1)}.icon[data-v-07aca99e]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-07aca99e] .outline-link{font-size:14px;padding:2px 0}.open>.icon[data-v-07aca99e]{transform:rotate(90deg)}.items[data-v-07aca99e]{position:absolute;left:20px;right:20px;top:64px;background-color:var(--vp-local-nav-bg-color);padding:4px 10px 16px;border:1px solid var(--vp-c-divider);border-radius:8px;max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}.top-link[data-v-07aca99e]{display:block;color:var(--vp-c-brand);font-size:13px;font-weight:500;padding:6px 0;margin:0 13px 10px;border-bottom:1px solid var(--vp-c-divider)}.flyout-enter-active[data-v-07aca99e]{transition:all .2s ease-out}.flyout-leave-active[data-v-07aca99e]{transition:all .15s ease-in}.flyout-enter-from[data-v-07aca99e],.flyout-leave-to[data-v-07aca99e]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-018d8a44]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color);transition:border-color .5s,background-color .5s}@media (min-width: 960px){.VPLocalNav[data-v-018d8a44]{display:none}}.menu[data-v-018d8a44]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-018d8a44]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-018d8a44]{padding:0 32px}}.menu-icon[data-v-018d8a44]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPOutlineDropdown[data-v-018d8a44]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-018d8a44]{padding:12px 32px 11px}}.VPSidebarItem.level-0[data-v-77d7a963]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-77d7a963]{padding-bottom:10px}.item[data-v-77d7a963]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-77d7a963]{cursor:pointer}.indicator[data-v-77d7a963]{position:absolute;top:6px;bottom:6px;left:-17px;width:1px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-77d7a963],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-77d7a963],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-77d7a963],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-77d7a963]{background-color:var(--vp-c-brand)}.link[data-v-77d7a963]{display:flex;align-items:center;flex-grow:1}.text[data-v-77d7a963]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-77d7a963]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-77d7a963],.VPSidebarItem.level-2 .text[data-v-77d7a963],.VPSidebarItem.level-3 .text[data-v-77d7a963],.VPSidebarItem.level-4 .text[data-v-77d7a963],.VPSidebarItem.level-5 .text[data-v-77d7a963]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-77d7a963],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-77d7a963],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-77d7a963],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-77d7a963],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-77d7a963],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-77d7a963]{color:var(--vp-c-brand)}.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-77d7a963],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-77d7a963],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-77d7a963],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-77d7a963],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-77d7a963],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-77d7a963]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-77d7a963],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-77d7a963],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-77d7a963],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-77d7a963],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-77d7a963],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-77d7a963]{color:var(--vp-c-brand)}.caret[data-v-77d7a963]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s}.item:hover .caret[data-v-77d7a963]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-77d7a963]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-77d7a963]{width:18px;height:18px;fill:currentColor;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-77d7a963]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-77d7a963],.VPSidebarItem.level-2 .items[data-v-77d7a963],.VPSidebarItem.level-3 .items[data-v-77d7a963],.VPSidebarItem.level-4 .items[data-v-77d7a963],.VPSidebarItem.level-5 .items[data-v-77d7a963]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-77d7a963]{display:none}.VPSidebar[data-v-0bf46da5]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease}.VPSidebar.open[data-v-0bf46da5]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-0bf46da5]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-0bf46da5]{z-index:1;padding-top:var(--vp-nav-height);padding-bottom:128px;width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-0bf46da5]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-0bf46da5]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-0bf46da5]{outline:0}.group+.group[data-v-0bf46da5]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-0bf46da5]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPButton[data-v-a4b757f0]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-a4b757f0]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-a4b757f0]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-a4b757f0]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-a4b757f0]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-a4b757f0]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-a4b757f0]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-a4b757f0]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-a4b757f0]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-a4b757f0]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-a4b757f0]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-a4b757f0]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-a4b757f0]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}.VPHero[data-v-3b95c4f3]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-3b95c4f3]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-3b95c4f3]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-3b95c4f3]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-3b95c4f3]{flex-direction:row}}.main[data-v-3b95c4f3]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-3b95c4f3]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-3b95c4f3]{text-align:left}}@media (min-width: 960px){.main[data-v-3b95c4f3]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-3b95c4f3]{max-width:592px}}.name[data-v-3b95c4f3],.text[data-v-3b95c4f3]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-3b95c4f3],.VPHero.has-image .text[data-v-3b95c4f3]{margin:0 auto}.name[data-v-3b95c4f3]{color:var(--vp-home-hero-name-color)}.clip[data-v-3b95c4f3]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-3b95c4f3],.text[data-v-3b95c4f3]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-3b95c4f3],.text[data-v-3b95c4f3]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-3b95c4f3],.VPHero.has-image .text[data-v-3b95c4f3]{margin:0}}.tagline[data-v-3b95c4f3]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-3b95c4f3]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-3b95c4f3]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-3b95c4f3]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-3b95c4f3]{margin:0}}.actions[data-v-3b95c4f3]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-3b95c4f3]{justify-content:center}@media (min-width: 640px){.actions[data-v-3b95c4f3]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-3b95c4f3]{justify-content:flex-start}}.action[data-v-3b95c4f3]{flex-shrink:0;padding:6px}.image[data-v-3b95c4f3]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-3b95c4f3]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-3b95c4f3]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-3b95c4f3]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-3b95c4f3]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-3b95c4f3]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-3b95c4f3]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-3b95c4f3]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-3b95c4f3]{width:320px;height:320px}}[data-v-3b95c4f3] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-3b95c4f3] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-3b95c4f3] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-fdb307a3]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-fdb307a3]:hover{border-color:var(--vp-c-brand);background-color:var(--vp-c-bg-soft-up)}.box[data-v-fdb307a3]{display:flex;flex-direction:column;padding:24px;height:100%}.VPFeature[data-v-fdb307a3] .VPImage{width:48px;height:48px;margin-bottom:20px}.icon[data-v-fdb307a3]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-bg-soft-down);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-fdb307a3]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-fdb307a3]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-fdb307a3]{padding-top:8px}.link-text-value[data-v-fdb307a3]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand)}.link-text-icon[data-v-fdb307a3]{display:inline-block;margin-left:6px;width:14px;height:14px;fill:currentColor}.VPFeatures[data-v-5e2470ab]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-5e2470ab]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-5e2470ab]{padding:0 64px}}.container[data-v-5e2470ab]{margin:0 auto;max-width:1152px}.items[data-v-5e2470ab]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-5e2470ab]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-5e2470ab],.item.grid-4[data-v-5e2470ab],.item.grid-6[data-v-5e2470ab]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-5e2470ab],.item.grid-4[data-v-5e2470ab]{width:50%}.item.grid-3[data-v-5e2470ab],.item.grid-6[data-v-5e2470ab]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-5e2470ab]{width:25%}}.VPHome[data-v-8ebac4ee]{padding-bottom:96px}.VPHome[data-v-8ebac4ee] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-8ebac4ee]{padding-bottom:128px}}.VPDocAsideOutline[data-v-c3ff47cc]{display:none}.VPDocAsideOutline.has-outline[data-v-c3ff47cc]{display:block}.content[data-v-c3ff47cc]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-c3ff47cc]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:1px;height:18px;background-color:var(--vp-c-brand);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-c3ff47cc]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.VPDocAside[data-v-79cae1a0]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-79cae1a0]{flex-grow:1}.VPDocAside[data-v-79cae1a0] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-79cae1a0] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-79cae1a0] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-f00606ba]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-f00606ba]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-31cb5067]{margin-top:64px}.edit-info[data-v-31cb5067]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-31cb5067]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-31cb5067]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.edit-link-button[data-v-31cb5067]:hover{color:var(--vp-c-brand-dark)}.edit-link-icon[data-v-31cb5067]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-31cb5067]{border-top:1px solid var(--vp-c-divider);padding-top:24px}@media (min-width: 640px){.prev-next[data-v-31cb5067]{display:flex}}.pager.has-prev[data-v-31cb5067]{padding-top:8px}@media (min-width: 640px){.pager[data-v-31cb5067]{display:flex;flex-direction:column;flex-shrink:0;width:50%}.pager.has-prev[data-v-31cb5067]{padding-top:0;padding-left:16px}}.pager-link[data-v-31cb5067]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-31cb5067]:hover{border-color:var(--vp-c-brand)}.pager-link.next[data-v-31cb5067]{margin-left:auto;text-align:right}.desc[data-v-31cb5067]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-31cb5067]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:color .25s}.VPDocOutlineDropdown[data-v-f751778e]{margin-bottom:42px}.VPDocOutlineDropdown button[data-v-f751778e]{display:block;font-size:14px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;border:1px solid var(--vp-c-border);padding:4px 12px;border-radius:8px}.VPDocOutlineDropdown button[data-v-f751778e]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPDocOutlineDropdown button.open[data-v-f751778e]{color:var(--vp-c-text-1)}.icon[data-v-f751778e]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-f751778e] .outline-link{font-size:13px}.open>.icon[data-v-f751778e]{transform:rotate(90deg)}.items[data-v-f751778e]{margin-top:10px;border-left:1px solid var(--vp-c-divider)}.VPDoc[data-v-5aafa2ac]{padding:32px 24px 96px;width:100%}.VPDoc .VPDocOutlineDropdown[data-v-5aafa2ac]{display:none}@media (min-width: 960px) and (max-width: 1280px){.VPDoc .VPDocOutlineDropdown[data-v-5aafa2ac]{display:block}}@media (min-width: 768px){.VPDoc[data-v-5aafa2ac]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-5aafa2ac]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-5aafa2ac]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-5aafa2ac]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-5aafa2ac]{display:flex;justify-content:center}.VPDoc .aside[data-v-5aafa2ac]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-5aafa2ac]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-5aafa2ac]{max-width:1104px}}.container[data-v-5aafa2ac]{margin:0 auto;width:100%}.aside[data-v-5aafa2ac]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-5aafa2ac]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-5aafa2ac]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 32px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-5aafa2ac]::-webkit-scrollbar{display:none}.aside-curtain[data-v-5aafa2ac]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-5aafa2ac]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 32px));padding-bottom:32px}.content[data-v-5aafa2ac]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-5aafa2ac]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-5aafa2ac]{order:1;margin:0;min-width:640px}}.content-container[data-v-5aafa2ac]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-5aafa2ac]{max-width:688px}.NotFound[data-v-42c0c3ae]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-42c0c3ae]{padding:96px 32px 168px}}.code[data-v-42c0c3ae]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-42c0c3ae]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-42c0c3ae]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-42c0c3ae]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-42c0c3ae]{padding-top:20px}.link[data-v-42c0c3ae]{display:inline-block;border:1px solid var(--vp-c-brand);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand);transition:border-color .25s,color .25s}.link[data-v-42c0c3ae]:hover{border-color:var(--vp-c-brand-dark);color:var(--vp-c-brand-dark)}.VPContent[data-v-7f38fbbe]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-7f38fbbe]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-7f38fbbe]{margin:0}@media (min-width: 960px){.VPContent[data-v-7f38fbbe]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-7f38fbbe]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-7f38fbbe]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-2425ede7]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-2425ede7]{display:none}@media (min-width: 768px){.VPFooter[data-v-2425ede7]{padding:32px}}.container[data-v-2425ede7]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-2425ede7],.copyright[data-v-2425ede7]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.message[data-v-2425ede7]{order:2}.copyright[data-v-2425ede7]{order:1}.Layout[data-v-bd8710d4]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-a4b81f3b]{border-top:1px solid var(--vp-c-gutter);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-a4b81f3b]{margin:0 auto;max-width:1152px}.love[data-v-a4b81f3b]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-a4b81f3b]{width:28px;height:28px;fill:currentColor}.message[data-v-a4b81f3b]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-a4b81f3b]{padding-top:32px}.action[data-v-a4b81f3b]{padding-top:40px;text-align:center}.VPTeamPage[data-v-05fecbf1]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-05fecbf1]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-05fecbf1-s],.VPTeamMembers+.VPTeamPageSection[data-v-05fecbf1-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-05fecbf1-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-05fecbf1-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-05fecbf1-s],.VPTeamMembers+.VPTeamPageSection[data-v-05fecbf1-s]{margin-top:96px}}.VPTeamMembers[data-v-05fecbf1-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-05fecbf1-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-05fecbf1-s]{padding:0 64px}}.VPTeamPageTitle[data-v-6ce551d6]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-6ce551d6]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-6ce551d6]{padding:80px 64px 48px}}.title[data-v-6ce551d6]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-6ce551d6]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-6ce551d6]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-6ce551d6]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-1ac32f26]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-1ac32f26]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-1ac32f26]{padding:0 64px}}.title[data-v-1ac32f26]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-1ac32f26]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-1ac32f26]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-1ac32f26]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-1ac32f26]{padding-top:40px}.VPTeamMembersItem[data-v-8691674a]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-8691674a]{padding:32px}.VPTeamMembersItem.small .data[data-v-8691674a]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-8691674a]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-8691674a]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-8691674a]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-8691674a]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-8691674a]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-8691674a]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-8691674a]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-8691674a]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-8691674a]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-8691674a]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-8691674a]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-8691674a]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-8691674a]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-8691674a]{text-align:center}.avatar[data-v-8691674a]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-8691674a]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-8691674a]{margin:0;font-weight:600}.affiliation[data-v-8691674a]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-8691674a]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-8691674a]:hover{color:var(--vp-c-brand)}.desc[data-v-8691674a]{margin:0 auto}.links[data-v-8691674a]{display:flex;justify-content:center;height:56px}.sp-link[data-v-8691674a]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-8691674a]:hover,.sp .sp-link.link[data-v-8691674a]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-8691674a]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-ed08c3d1]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-ed08c3d1]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-ed08c3d1]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-ed08c3d1]{max-width:876px}.VPTeamMembers.medium .container[data-v-ed08c3d1]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-ed08c3d1]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-ed08c3d1]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-ed08c3d1]{max-width:760px}.container[data-v-ed08c3d1]{display:grid;gap:24px;margin:0 auto;max-width:1152px} diff --git a/docs/document/en/advanced/built-in.html b/docs/document/en/advanced/built-in.html index c41513a9b..2544b0ce0 100644 --- a/docs/document/en/advanced/built-in.html +++ b/docs/document/en/advanced/built-in.html @@ -5,38 +5,39 @@ 高级属性 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

高级属性

这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用

option

播放器的选项

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

高级属性 ​

这里的 高级属性 是指挂载在 实例 的 二级属性,比较少用

option ​

播放器的选项

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 console.info(art.option);
-

提示

假如直接修改这个 option 对象,播放器不会马上做出响应

whitelist

管理移动设备的白名单功能,只有一个属性 state 返回是否启用播放器功能

▶ Run Code
js
var art = new Artplayer({
+

提示

假如直接修改这个 option 对象,播放器不会马上做出响应

whitelist ​

管理移动设备的白名单功能,只有一个属性 state 返回是否启用播放器功能

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     whitelist: [(ua) => /iPhone/gi.test(ua)],
 });
 
 console.info(art.whitelist.state);
-

提示

在上面这个例子中,当使用 iPhone 访问播放器时,art.whitelist.state 会返回 false,即使用原生的播放器,而不是 Artplayer 播放器

template

管理播放器所有的 DOM 元素

▶ Run Code
js
var art = new Artplayer({
+

提示

在上面这个例子中,当使用 iPhone 访问播放器时,art.whitelist.state 会返回 false,即使用原生的播放器,而不是 Artplayer 播放器

template ​

管理播放器所有的 DOM 元素

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 console.info(art.template);
 console.info(art.template.$video);
-

提示

为了方便区别 DOM 元素和普通对象,播放器里的所有 DOM 元素都是以 $ 开头命名的

这是所有 DOM 元素的定义:artplayer/types/template.d.ts

events

管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener, 当使用以下方法来处理事件,播放器销毁时也会自动销毁该事件

  • proxy 方法用于代理 DOM 事件
  • hover 方法用于代理自定义的 hover 事件
  • loadImg 方法用于监听图片的 load 加载事件
▶ Run Code
js
var container = document.querySelector('.artplayer-app');
+

提示

为了方便区别 DOM 元素和普通对象,播放器里的所有 DOM 元素都是以 $ 开头命名的

这是所有 DOM 元素的定义:artplayer/types/template.d.ts

events ​

管理播放器所有的 DOM 事件,实质上是代理了 addEventListener 和 removeEventListener, 当使用以下方法来处理事件,播放器销毁时也会自动销毁该事件

  • proxy 方法用于代理 DOM 事件
  • hover 方法用于代理自定义的 hover 事件
  • loadImg 方法用于监听图片的 load 加载事件
▶ Run Code
js
var container = document.querySelector('.artplayer-app');
 
 var art = new Artplayer({
     container: container,
@@ -56,7 +57,7 @@
 art.events.loadImg('/assets/sample/poster.jpg').then(img => {
     console.info('loadImg', img);
 });
-

提示

假如你需要一些 DOM 事件只存在于播放器的生命周期上时,强烈建议使用这些函数,以避免造成内存泄漏

storage

管理播放器的本地存储

  • name 属性用于设置缓存的 key
  • set 方法用于设置缓存
  • get 方法用于获取缓存
  • del 方法用于删除缓存
  • clear 方法用于清空缓存
▶ Run Code
js
var art = new Artplayer({
+

提示

假如你需要一些 DOM 事件只存在于播放器的生命周期上时,强烈建议使用这些函数,以避免造成内存泄漏

storage ​

管理播放器的本地存储

  • name 属性用于设置缓存的 key
  • set 方法用于设置缓存
  • get 方法用于获取缓存
  • del 方法用于删除缓存
  • clear 方法用于清空缓存
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -66,20 +67,20 @@
 console.info(test);
 art.storage.del('test');
 art.storage.clear();
-

提示

默认所有播放器实例都是共享同一个 localStorage 的,而且默认的 key 是 artplayer_settings

如果你想不同的播放器使用不同的 localStorage,你可以修改 art.storage.name 即可

▶ Run Code
js
var art = new Artplayer({
+

提示

默认所有播放器实例都是共享同一个 localStorage 的,而且默认的 key 是 artplayer_settings

如果你想不同的播放器使用不同的 localStorage,你可以修改 art.storage.name 即可

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 art.storage.name = 'your-storage-key';
 art.storage.set('test', { foo: 'bar' });
-

icons

管理播放器所有的 svg 图标

▶ Run Code
js
var art = new Artplayer({
+

icons ​

管理播放器所有的 svg 图标

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 console.info(art.icons.loading);
-

这是所有图标的定义:

artplayer/types/icons.d.ts

i18n

管理播放器的 i18n

  • get 方法用于获取 i18n 的值
  • update 方法用于更新 i18n 对象
▶ Run Code
js
var art = new Artplayer({
+

这是所有图标的定义:

artplayer/types/icons.d.ts

i18n ​

管理播放器的 i18n

  • get 方法用于获取 i18n 的值
  • update 方法用于更新 i18n 对象
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -91,7 +92,7 @@
         Play: 'Your Play'
     }
 });
-

WARNING

使用 art.i18n.update 只能更新实例化之后的 i18n,假如想在实例化之前更新 i18n,请使用基础选项的 i18n 来更新

notice

管理播放器的提示语,只有一个 show 属性用于显示提示语

▶ Run Code
js
var art = new Artplayer({
+

WARNING

使用 art.i18n.update 只能更新实例化之后的 i18n,假如想在实例化之前更新 i18n,请使用基础选项的 i18n 来更新

notice ​

管理播放器的提示语,只有一个 show 属性用于显示提示语

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -99,7 +100,7 @@
 art.on('ready', () => {
     art.notice.show = 'Video Ready To Play';
 })
-

WARNING

如果想马上隐藏 notice 的显示:art.notice.show = '';

layers

管理播放器的层

  • add 方法用于动态添加层
  • show 属性用于设置是否显示全部层
  • toggle 属性用于切换是否显示全部层
▶ Run Code
js
var art = new Artplayer({
+

WARNING

如果想马上隐藏 notice 的显示:art.notice.show = '';

layers ​

管理播放器的层

  • add 方法用于动态添加层
  • show 属性用于设置是否显示全部层
  • toggle 属性用于切换是否显示全部层
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -113,7 +114,7 @@
 		art.layers.show = false;
 	}, 1000);
 });
-

组件配置 请参考以下地址:

/start/component.html

controls

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
▶ Run Code
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

controls ​

管理播放器的控制器

  • add 方法用于动态添加控制器
  • show 属性用于设置是否显示全部控制器
  • toggle 属性用于切换是否显示全部控制器
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -128,7 +129,7 @@
 		art.controls.show = false;
 	}, 1000);
 });
-

组件配置 请参考以下地址:

/start/component.html

contextmenu

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
▶ Run Code
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

contextmenu ​

管理播放器的右键菜单

  • add 方法用于动态添加菜单
  • show 属性用于设置是否显示全部菜单
  • toggle 属性用于切换是否显示全部菜单
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -143,7 +144,7 @@
 		art.contextmenu.show = false;
 	}, 1000);
 });
-

组件配置 请参考以下地址:

/start/component.html

subtitle

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
▶ Run Code
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

subtitle ​

管理播放器的字幕功能

  • url 属性设置和返回当前字幕地址
  • style 方法设置当前字幕的样式
  • switch 方法设置当前字幕地址和选项
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -154,7 +155,7 @@
         color: 'red',
     });
 });
-

loading

管理播放器的加载层

  • show 属性用于设置是否显示加载层
  • toggle 属性用于切换是否显示加载层
▶ Run Code
js
var art = new Artplayer({
+

loading ​

管理播放器的加载层

  • show 属性用于设置是否显示加载层
  • toggle 属性用于切换是否显示加载层
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -165,7 +166,7 @@
 		art.loading.show = false;
 	}, 1000);
 });
-

hotkey

管理播放器的快捷键功能

  • add 方法用于添加快捷键
  • remove 方法用于删除快捷键
▶ Run Code
js
var art = new Artplayer({
+

hotkey ​

管理播放器的快捷键功能

  • add 方法用于添加快捷键
  • remove 方法用于删除快捷键
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -180,7 +181,7 @@
 		art.hotkey.remove(32, hotkeyEvent);
 	}, 5000);
 });
-

提示

只在播放器获得焦点后(如点击了播放器后),这些快捷键才会生效

mask

管理播放器的遮罩层

  • show 属性用于设置是否显示遮罩层
  • toggle 属性用于切换是否显示遮罩层
▶ Run Code
js
var art = new Artplayer({
+

提示

只在播放器获得焦点后(如点击了播放器后),这些快捷键才会生效

mask ​

管理播放器的遮罩层

  • show 属性用于设置是否显示遮罩层
  • toggle 属性用于切换是否显示遮罩层
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -191,7 +192,7 @@
 		art.mask.show = true;
 	}, 1000);
 });
-

setting

管理播放器的设置面板

  • add 方法用于动态添加设置项
  • show 属性用于设置是否显示全部设置项
  • toggle 属性用于切换是否显示全部设置项
  • update 方法动态更新设置项
▶ Run Code
js
var art = new Artplayer({
+

setting ​

管理播放器的设置面板

  • add 方法用于动态添加设置项
  • show 属性用于设置是否显示全部设置项
  • toggle 属性用于切换是否显示全部设置项
  • update 方法动态更新设置项
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -207,7 +208,7 @@
 		art.setting.show = false;
 	}, 1000);
 });
-

设置面板 请参考以下地址

/start/setting.html

plugins

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

▶ Run Code
js
var art = new Artplayer({
+

设置面板 请参考以下地址

/start/setting.html

plugins ​

管理播放器的插件功能,只有一个方法 add 用于动态添加插件

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -226,9 +227,9 @@
 art.on('ready', () => {
     art.plugins.add(myPlugin);
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/en/advanced/class.html b/docs/document/en/advanced/class.html index 9326e02d7..490598deb 100644 --- a/docs/document/en/advanced/class.html +++ b/docs/document/en/advanced/class.html @@ -5,18 +5,19 @@ 静态属性 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

静态属性

这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用

提示

有些属性是全大写的,说明这些属性是不稳定的,可能会在将来被更改

instances

返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性

▶ Run Code
js
console.info([...Artplayer.instances]);
+    
Skip to content
On this page

静态属性 ​

这里的 静态属性 是指挂载在 构造函数 的 一级属性,非常少使用

提示

有些属性是全大写的,说明这些属性是不稳定的,可能会在将来被更改

instances ​

返回全部播放器实例的数组,假如你想同时管理多个播放器的时候,可以用到该属性

▶ Run Code
js
console.info([...Artplayer.instances]);
 
 var art = new Artplayer({
     container: '.artplayer-app',
@@ -24,20 +25,20 @@
 });
 
 console.info([...Artplayer.instances]);
-

version

返回播放器的版本信息

▶ Run Code
js
console.info(Artplayer.version);
-

env

返回播放器的环境变量

▶ Run Code
js
console.info(Artplayer.env);
-

build

返回播放器的打包时间

▶ Run Code
js
console.info(Artplayer.build);
-

config

返回视频的默认配置

▶ Run Code
js
console.info(Artplayer.config);
-

utils

返回播放器的工具函数集合

▶ Run Code
js
console.info(Artplayer.utils);
-

全部工具函数请参考以下地址:

artplayer/types/utils.d.ts

scheme

返回播放器选项的校验方案

▶ Run Code
js
console.info(Artplayer.scheme);
-

Emitter

返回事件分发器的构造函数

▶ Run Code
js
console.info(Artplayer.Emitter);
-

validator

返回选项的校验函数

▶ Run Code
js
console.info(Artplayer.validator);
-

kindOf

返回类型检测的函数工具

▶ Run Code
js
console.info(Artplayer.kindOf);
-

html

返回播放器所需的 html 字符串

▶ Run Code
js
console.info(Artplayer.html);
-

option

返回播放器的默认选项

▶ Run Code
js
console.info(Artplayer.option);
-

DEBUG

CONTEXTMENU

NOTICE_TIME

SETTING_WIDTH

SETTING_ITEM_WIDTH

SETTING_ITEM_HEIGHT

INDICATOR_SIZE

INDICATOR_SIZE_ICON

INDICATOR_SIZE_MOBILE

INDICATOR_SIZE_MOBILE_ICON

VOLUME_PANEL_WIDTH

VOLUME_HANDLE_WIDTH

RESIZE_TIME

SCROLL_TIME

SCROLL_GAP

AUTO_PLAYBACK_MAX

AUTO_PLAYBACK_MIN

AUTO_PLAYBACK_TIMEOUT

RECONNECT_TIME_MAX

RECONNECT_SLEEP_TIME

CONTROL_HIDE_TIME

DB_CLICE_TIME

MOBILE_AUTO_PLAYBACKRATE

MOBILE_AUTO_PLAYBACKRATE_TIME

MOBILE_AUTO_ORIENTATION_TIME

INFO_LOOP_TIME

FAST_FORWARD_VALUE

FAST_FORWARD_TIME

TOUCH_MOVE_RATIO

VOLUME_STEP

SEEK_STEP

PROGRESS_HEIGHT

PLAYBACK_RATE

ASPECT_RATIO

FLIP

FULLSCREEN_WEB_IN_BODY

- - +

version ​

返回播放器的版本信息

▶ Run Code
js
console.info(Artplayer.version);
+

env ​

返回播放器的环境变量

▶ Run Code
js
console.info(Artplayer.env);
+

build ​

返回播放器的打包时间

▶ Run Code
js
console.info(Artplayer.build);
+

config ​

返回视频的默认配置

▶ Run Code
js
console.info(Artplayer.config);
+

utils ​

返回播放器的工具函数集合

▶ Run Code
js
console.info(Artplayer.utils);
+

全部工具函数请参考以下地址:

artplayer/types/utils.d.ts

scheme ​

返回播放器选项的校验方案

▶ Run Code
js
console.info(Artplayer.scheme);
+

Emitter ​

返回事件分发器的构造函数

▶ Run Code
js
console.info(Artplayer.Emitter);
+

validator ​

返回选项的校验函数

▶ Run Code
js
console.info(Artplayer.validator);
+

kindOf ​

返回类型检测的函数工具

▶ Run Code
js
console.info(Artplayer.kindOf);
+

html ​

返回播放器所需的 html 字符串

▶ Run Code
js
console.info(Artplayer.html);
+

option ​

返回播放器的默认选项

▶ Run Code
js
console.info(Artplayer.option);
+

DEBUG ​

CONTEXTMENU ​

NOTICE_TIME ​

SETTING_WIDTH ​

SETTING_ITEM_WIDTH ​

SETTING_ITEM_HEIGHT ​

INDICATOR_SIZE ​

INDICATOR_SIZE_ICON ​

INDICATOR_SIZE_MOBILE ​

INDICATOR_SIZE_MOBILE_ICON ​

VOLUME_PANEL_WIDTH ​

VOLUME_HANDLE_WIDTH ​

RESIZE_TIME ​

SCROLL_TIME ​

SCROLL_GAP ​

AUTO_PLAYBACK_MAX ​

AUTO_PLAYBACK_MIN ​

AUTO_PLAYBACK_TIMEOUT ​

RECONNECT_TIME_MAX ​

RECONNECT_SLEEP_TIME ​

CONTROL_HIDE_TIME ​

DB_CLICE_TIME ​

MOBILE_AUTO_PLAYBACKRATE ​

MOBILE_AUTO_PLAYBACKRATE_TIME ​

MOBILE_AUTO_ORIENTATION_TIME ​

INFO_LOOP_TIME ​

FAST_FORWARD_VALUE ​

FAST_FORWARD_TIME ​

TOUCH_MOVE_RATIO ​

VOLUME_STEP ​

SEEK_STEP ​

PROGRESS_HEIGHT ​

PLAYBACK_RATE ​

ASPECT_RATIO ​

FLIP ​

FULLSCREEN_WEB_IN_BODY ​

+ \ No newline at end of file diff --git a/docs/document/en/advanced/event.html b/docs/document/en/advanced/event.html index d73b3b1b3..66b2564f0 100644 --- a/docs/document/en/advanced/event.html +++ b/docs/document/en/advanced/event.html @@ -5,18 +5,19 @@ 实例事件 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

实例事件

播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件

监听事件:

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

实例事件 ​

播放器的事件分为两种,一种视频的 原生事件 (前缀 video:),另外一种是 自定义事件

监听事件:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -24,7 +25,7 @@
 art.on('video:canplay', () => {
     console.info('video:canplay');
 });
-

只监听一次事件:

▶ Run Code
js
var art = new Artplayer({
+

只监听一次事件:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -32,13 +33,13 @@
 art.once('video:canplay', () => {
     console.info('video:canplay');
 });
-

手动触发事件:

▶ Run Code
js
var art = new Artplayer({
+

手动触发事件:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
 
 art.emit('focus');
-

移除事件:

▶ Run Code
js
var art = new Artplayer({
+

移除事件:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -49,7 +50,7 @@
 }
 
 art.on('ready', onReady);
-

全部事件请参考以下地址:

artplayer/types/events.d.ts

ready

当播放器首次可以播放器时触发

▶ Run Code
js
var art = new Artplayer({
+

全部事件请参考以下地址:

artplayer/types/events.d.ts

ready ​

当播放器首次可以播放器时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -57,7 +58,7 @@
 art.on('ready', () => {
     console.info('ready');
 });
-

restart

当播放器切换地址后并可以播放时触发

▶ Run Code
js
var art = new Artplayer({
+

restart ​

当播放器切换地址后并可以播放时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -69,7 +70,7 @@
 art.on('restart', () => {
     console.info('restart');
 });
-

pause

当播放器暂停时触发

▶ Run Code
js
var art = new Artplayer({
+

pause ​

当播放器暂停时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -77,7 +78,7 @@
 art.on('pause', () => {
     console.info('pause');
 });
-

play

当播放器播放时触发

▶ Run Code
js
var art = new Artplayer({
+

play ​

当播放器播放时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -85,7 +86,7 @@
 art.on('play', () => {
     console.info('play');
 });
-

hotkey

当播放器热键被按下时触发

▶ Run Code
js
var art = new Artplayer({
+

hotkey ​

当播放器热键被按下时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -93,7 +94,7 @@
 art.on('hotkey', (event) => {
     console.info('hotkey', event);
 });
-

destroy

当播放器销毁时触发

▶ Run Code
js
var art = new Artplayer({
+

destroy ​

当播放器销毁时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -105,7 +106,7 @@
 art.on('destroy', () => {
     console.info('destroy');
 });
-

url

当视频地址变化时触发

▶ Run Code
js
var art = new Artplayer({
+

url ​

当视频地址变化时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -117,7 +118,7 @@
 art.on('url', (url) => {
     console.info('url', url);
 });
-

focus

当播放器获得焦点时触发

▶ Run Code
js
var art = new Artplayer({
+

focus ​

当播放器获得焦点时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -125,7 +126,7 @@
 art.on('focus', () => {
     console.info('focus');
 });
-

blur

当播放器失去焦点时触发

▶ Run Code
js
var art = new Artplayer({
+

blur ​

当播放器失去焦点时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -133,7 +134,7 @@
 art.on('blur', () => {
     console.info('blur');
 });
-

dblclick

当播放器被双击时触发

▶ Run Code
js
var art = new Artplayer({
+

dblclick ​

当播放器被双击时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -141,7 +142,7 @@
 art.on('dblclick', () => {
     console.info('dblclick');
 });
-

click

当播放器被单击时触发

▶ Run Code
js
var art = new Artplayer({
+

click ​

当播放器被单击时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -149,7 +150,7 @@
 art.on('click', () => {
     console.info('click');
 });
-

error

当播放器加载视频发生错误时触发

▶ Run Code
js
var art = new Artplayer({
+

error ​

当播放器加载视频发生错误时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/404.mp4',
 });
@@ -157,7 +158,7 @@
 art.on('error', (error, reconnectTime) => {
     console.info(error, reconnectTime);
 });
-

hover

当播放器被鼠标移出或者移入时触发

▶ Run Code
js
var art = new Artplayer({
+

hover ​

当播放器被鼠标移出或者移入时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -165,7 +166,7 @@
 art.on('hover', (state) => {
     console.info('hover', state);
 });
-

mousemove

当播放器被鼠标经过时触发

▶ Run Code
js
var art = new Artplayer({
+

mousemove ​

当播放器被鼠标经过时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -173,7 +174,7 @@
 art.on('mousemove', (event) => {
     console.info('mousemove', event);
 });
-

resize

当播放器尺寸变化时触发

▶ Run Code
js
var art = new Artplayer({
+

resize ​

当播放器尺寸变化时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -181,7 +182,7 @@
 art.on('resize', () => {
     console.info('resize');
 });
-

view

当播放器出现在视口时触发

▶ Run Code
js
var art = new Artplayer({
+

view ​

当播放器出现在视口时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -189,7 +190,7 @@
 art.on('view', (state) => {
     console.info('view', state);
 });
-

aspectRatio

当播放器长宽比变化时触发

▶ Run Code
js
var art = new Artplayer({
+

aspectRatio ​

当播放器长宽比变化时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     aspectRatio: true,
@@ -199,7 +200,7 @@
 art.on('aspectRatio', (aspectRatio) => {
     console.info('aspectRatio', aspectRatio);
 });
-

autoHeight

当播放器自动设置高度时触发

▶ Run Code
js
var art = new Artplayer({
+

autoHeight ​

当播放器自动设置高度时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -211,7 +212,7 @@
 art.on('autoHeight', (height) => {
     console.info('autoHeight', height);
 });
-

autoSize

当播放器自动设置尺寸时触发

▶ Run Code
js
var art = new Artplayer({
+

autoSize ​

当播放器自动设置尺寸时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
@@ -220,7 +221,7 @@
 art.on('autoSize', () => {
     console.info('autoSize');
 });
-

flip

当播放器发生翻转时触发

▶ Run Code
js
var art = new Artplayer({
+

flip ​

当播放器发生翻转时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     flip: true,
@@ -230,7 +231,7 @@
 art.on('flip', (flip) => {
     console.info('flip', flip);
 });
-

fullscreen

当播放器发生窗口全屏时触发

▶ Run Code
js
var art = new Artplayer({
+

fullscreen ​

当播放器发生窗口全屏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -239,7 +240,7 @@
 art.on('fullscreen', (state) => {
     console.info('fullscreen', state);
 });
-

fullscreenWeb

当播放器发生网页全屏时触发

▶ Run Code
js
var art = new Artplayer({
+

fullscreenWeb ​

当播放器发生网页全屏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreenWeb: true,
@@ -248,7 +249,7 @@
 art.on('fullscreenWeb', (state) => {
     console.info('fullscreenWeb', state);
 });
-

mini

当播放器进入迷你模式时触发

▶ Run Code
js
var art = new Artplayer({
+

mini ​

当播放器进入迷你模式时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -260,7 +261,7 @@
 art.on('mini', (state) => {
     console.info('mini', state);
 });
-

pip

当播放器进入画中画时触发

▶ Run Code
js
var art = new Artplayer({
+

pip ​

当播放器进入画中画时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     pip: true,
@@ -269,7 +270,7 @@
 art.on('pip', (state) => {
     console.info('pip', state);
 });
-

screenshot

当播放器被截图时触发

▶ Run Code
js
var art = new Artplayer({
+

screenshot ​

当播放器被截图时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     screenshot: true,
@@ -278,7 +279,7 @@
 art.on('screenshot', (dataUri) => {
     console.info('screenshot', dataUri);
 });
-

seek

当播放器发生时间跳转时触发

▶ Run Code
js
var art = new Artplayer({
+

seek ​

当播放器发生时间跳转时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -286,7 +287,7 @@
 art.on('seek', (currentTime) => {
     console.info('seek', currentTime);
 });
-

subtitleOffset

当播放器发生字幕偏移时触发

▶ Run Code
js
var art = new Artplayer({
+

subtitleOffset ​

当播放器发生字幕偏移时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitleOffset: true,
@@ -299,7 +300,7 @@
 art.on('subtitleOffset', (offset) => {
     console.info('subtitleOffset', offset);
 });
-

subtitleUpdate

当字幕更新时触发

▶ Run Code
js
var art = new Artplayer({
+

subtitleUpdate ​

当字幕更新时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -310,7 +311,7 @@
 art.on('subtitleUpdate', (text) => {
     console.info('subtitleUpdate', text);
 });
-

subtitleLoad

当字幕加载时触发

▶ Run Code
js
var art = new Artplayer({
+

subtitleLoad ​

当字幕加载时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -321,7 +322,7 @@
 art.on('subtitleLoad', (url) => {
     console.info('subtitleLoad', url);
 });
-

subtitleSwitch

当字幕切换时触发

▶ Run Code
js
var art = new Artplayer({
+

subtitleSwitch ​

当字幕切换时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -336,7 +337,7 @@
 art.on('subtitleSwitch', (url) => {
     console.info('subtitleSwitch', url);
 });
-

info

当信息面板显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

info ​

当信息面板显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -344,7 +345,7 @@
 art.on('info', (state) => {
     console.log(state);
 });
-

layer

当自定义层显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

layer ​

当自定义层显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -352,7 +353,7 @@
 art.on('layer', (state) => {
     console.log(state);
 });
-

loading

当加载器显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

loading ​

当加载器显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -360,7 +361,7 @@
 art.on('loading', (state) => {
     console.log(state);
 });
-

mask

当遮罩层显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

mask ​

当遮罩层显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -368,7 +369,7 @@
 art.on('mask', (state) => {
     console.log(state);
 });
-

subtitle

当字幕层显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

subtitle ​

当字幕层显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -376,7 +377,7 @@
 art.on('subtitle', (state) => {
     console.log(state);
 });
-

contextmenu

当右键菜单显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

contextmenu ​

当右键菜单显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -384,7 +385,7 @@
 art.on('contextmenu', (state) => {
     console.log(state);
 });
-

control

当控制器显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

control ​

当控制器显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -392,18 +393,18 @@
 art.on('control', (state) => {
     console.log(state);
 });
-

setting

当设置面板显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
+

setting ​

当设置面板显示或隐藏时触发

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
 });
-
+
 art.on('setting', (state) => {
     console.log(state);
 });
-

video:canplay

浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容

video:canplaythrough

浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束

video:complete

OfflineAudioContext 渲染完成

video:durationchange

duration 属性的值改变时触发

video:emptied

媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载它

video:ended

视频停止播放,因为 media 已经到达结束点

video:error

获取媒体数据时出错,或者资源类型不是受支持的媒体格式

video:loadeddata

media 中的首帧已经完成加载

video:loadedmetadata

已加载元数据

video:pause

播放已暂停

video:play

播放已开始

video:playing

由于缺乏数据而暂停或延迟后,播放准备开始

video:progress

在浏览器加载资源时周期性触发

video:ratechange

播放速率发生变化

video:seeked

跳帧(seek)操作完成

video:seeking

跳帧(seek)操作开始

video:stalled

用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现

video:suspend

媒体数据加载已暂停

video:timeupdate

currentTime 属性指定的时间发生变化

video:volumechange

音量发生变化

video:waiting

由于暂时缺少数据,播放已停止

- - +

video:canplay ​

浏览器可以播放媒体文件了,但估计没有足够的数据来支撑播放到结束,不必停下来进一步缓冲内容

video:canplaythrough ​

浏览器估计它可以在不停止内容缓冲的情况下播放媒体直到结束

video:complete ​

OfflineAudioContext 渲染完成

video:durationchange ​

duration 属性的值改变时触发

video:emptied ​

媒体内容变为空;例如,当这个 media 已经加载完成(或者部分加载完成),则发送此事件,并调用 load() 方法重新加载它

video:ended ​

视频停止播放,因为 media 已经到达结束点

video:error ​

获取媒体数据时出错,或者资源类型不是受支持的媒体格式

video:loadeddata ​

media 中的首帧已经完成加载

video:loadedmetadata ​

已加载元数据

video:pause ​

播放已暂停

video:play ​

播放已开始

video:playing ​

由于缺乏数据而暂停或延迟后,播放准备开始

video:progress ​

在浏览器加载资源时周期性触发

video:ratechange ​

播放速率发生变化

video:seeked ​

跳帧(seek)操作完成

video:seeking ​

跳帧(seek)操作开始

video:stalled ​

用户代理(user agent)正在尝试获取媒体数据,但数据意外未出现

video:suspend ​

媒体数据加载已暂停

video:timeupdate ​

currentTime 属性指定的时间发生变化

video:volumechange ​

音量发生变化

video:waiting ​

由于暂时缺少数据,播放已停止

+ \ No newline at end of file diff --git a/docs/document/en/advanced/plugin.html b/docs/document/en/advanced/plugin.html index 52c1f5568..df1e5d801 100644 --- a/docs/document/en/advanced/plugin.html +++ b/docs/document/en/advanced/plugin.html @@ -5,18 +5,19 @@ 编写插件 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

编写插件

但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事

可以在实例化的时候加载插件的函数

▶ Run Code
js
function myPlugin(art) {
+    
Skip to content
On this page

编写插件 ​

但你已经知道播放器的属性, 方法和事件后,再编写插件是非常简单的事

可以在实例化的时候加载插件的函数

▶ Run Code
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -36,7 +37,7 @@
 art.on('ready', () => {
     console.info(art.plugins.myPlugin);
 });
-

可以在实例化之后再加载插件的函数

▶ Run Code
js
function myPlugin(art) {
+

可以在实例化之后再加载插件的函数

▶ Run Code
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -57,7 +58,7 @@
 art.on('ready', () => {
     console.info(art.plugins.myPlugin);
 });
-

例如我想写一个在视频暂停后,显示一个图片广告的插件

▶ Run Code
js
function adsPlugin(option) {
+

例如我想写一个在视频暂停后,显示一个图片广告的插件

▶ Run Code
js
function adsPlugin(option) {
     return (art) => {
         art.layers.add({
             name: 'ads',
@@ -117,9 +118,9 @@
         })
     ],
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/en/advanced/property.html b/docs/document/en/advanced/property.html index a63eb83b8..771eeb537 100644 --- a/docs/document/en/advanced/property.html +++ b/docs/document/en/advanced/property.html @@ -5,18 +5,19 @@ Instance Property | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

Instance Property

The Instance Property here refers to the Primary Property attached to the Instance, which is more commonly used

play

  • Type: Function

Play video

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

Instance Property ​

The Instance Property here refers to the Primary Property attached to the Instance, which is more commonly used

play ​

  • Type: Function

Play video

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -25,7 +26,7 @@
 art.on('ready', () => {
     art.play();
 });
-

pause

  • Type: Function

Pause video

▶ Run Code
js
var art = new Artplayer({
+

pause ​

  • Type: Function

Pause video

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -38,7 +39,7 @@
         art.pause();
     }, 3000);
 });
-

toggle

  • Type: Function

Toggle video playback and pause

▶ Run Code
js
var art = new Artplayer({
+

toggle ​

  • Type: Function

Toggle video playback and pause

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -51,7 +52,7 @@
         art.toggle();
     }, 3000);
 });
-

destroy

  • Type: Function
  • Parameter: Boolean

To destroy the player, accept a parameter indicating whether to remove the player's html after destruction. The default value is true

▶ Run Code
js
var art = new Artplayer({
+

destroy ​

  • Type: Function
  • Parameter: Boolean

To destroy the player, accept a parameter indicating whether to remove the player's html after destruction. The default value is true

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -59,7 +60,7 @@
 art.on('ready', () => {
     art.destroy();
 });
-

seek

  • Type: Setter
  • Parameter: Number

Video time jump in seconds

▶ Run Code
js
var art = new Artplayer({
+

seek ​

  • Type: Setter
  • Parameter: Number

Video time jump in seconds

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -67,7 +68,7 @@
 art.on('ready', () => {
     art.seek = 5;
 });
-

forward

  • Type: Setter
  • Parameter: Number

Video time fast forward in seconds

▶ Run Code
js
var art = new Artplayer({
+

forward ​

  • Type: Setter
  • Parameter: Number

Video time fast forward in seconds

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -75,7 +76,7 @@
 art.on('ready', () => {
     art.forward = 5;
 });
-

backward

  • Type: Setter
  • Parameter: Number

Video time rewind in seconds

▶ Run Code
js
var art = new Artplayer({
+

backward ​

  • Type: Setter
  • Parameter: Number

Video time rewind in seconds

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -87,7 +88,7 @@
         art.backward = 2;
     }, 3000);
 });
-

volume

  • Type: Setter/Getter
  • Parameter: Number

Set and get video volume, range: [0, 1]

▶ Run Code
js
var art = new Artplayer({
+

volume ​

  • Type: Setter/Getter
  • Parameter: Number

Set and get video volume, range: [0, 1]

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -97,7 +98,7 @@
     art.volume = 0.5;
     console.info(art.volume);
 });
-

url

  • Type: Setter/Getter
  • Parameter: String

Set and get video url

▶ Run Code
js
var art = new Artplayer({
+

url ​

  • Type: Setter/Getter
  • Parameter: String

Set and get video url

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -105,7 +106,7 @@
 art.on('ready', () => {
     art.url = '/assets/sample/video.mp4?t=0';
 });
-

switchUrl

  • Type: Function
  • Parameter: String

Setting the video url is similar to that of url, but some optimization operations will be performed

The function supports two parameters, the first is the new video url, and the second is the optional new video name

▶ Run Code
js
var art = new Artplayer({
+

switchUrl ​

  • Type: Function
  • Parameter: String

Setting the video url is similar to that of url, but some optimization operations will be performed

The function supports two parameters, the first is the new video url, and the second is the optional new video name

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -116,7 +117,7 @@
         art.switchUrl('/assets/sample/video.mp4?t=0', 'New Video Name');
     }, 3000);
 });
-

switchQuality

  • Type: Function
  • Parameter: String

Set the video quality address, similar to switchUrl, but with the previous playback progress

The function supports two parameters, the first is the new video url, and the second is the optional new video name

▶ Run Code
js
var art = new Artplayer({
+

switchQuality ​

  • Type: Function
  • Parameter: String

Set the video quality address, similar to switchUrl, but with the previous playback progress

The function supports two parameters, the first is the new video url, and the second is the optional new video name

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -127,7 +128,7 @@
         art.switchQuality('/assets/sample/video.mp4?t=0', 'New Video Name');
     }, 3000);
 });
-

muted

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get whether the video is muted

▶ Run Code
js
var art = new Artplayer({
+

muted ​

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get whether the video is muted

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -137,7 +138,7 @@
     art.muted = true;
     console.info(art.muted);
 });
-

currentTime

  • Type: Setter/Getter
  • Parameter: Number

Set and get the current time of the video. Setting the time is similar to seek, but it will not trigger additional events

▶ Run Code
js
var art = new Artplayer({
+

currentTime ​

  • Type: Setter/Getter
  • Parameter: Number

Set and get the current time of the video. Setting the time is similar to seek, but it will not trigger additional events

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -147,7 +148,7 @@
     art.currentTime = 5;
     console.info(art.currentTime);
 });
-

duration

  • Type: Getter

Get video duration

▶ Run Code
js
var art = new Artplayer({
+

duration ​

  • Type: Getter

Get video duration

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -155,7 +156,7 @@
 art.on('ready', () => {
     console.info(art.duration);
 });
-

Tip

Some videos have no duration, such as live videos or videos that have not been decoded. The duration obtained at this time will be 0

screenshot

  • Type: Function

Download a screenshot of the current video frame

▶ Run Code
js
var art = new Artplayer({
+

Tip

Some videos have no duration, such as live videos or videos that have not been decoded. The duration obtained at this time will be 0

screenshot ​

  • Type: Function

Download a screenshot of the current video frame

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -163,7 +164,7 @@
 art.on('ready', () => {
     art.screenshot();
 });
-

getDataURL

  • Type: Function

Get the base64 address of the screenshot of the current video frame, and return a Promise

▶ Run Code
js
var art = new Artplayer({
+

getDataURL ​

  • Type: Function

Get the base64 address of the screenshot of the current video frame, and return a Promise

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -172,7 +173,7 @@
     const url = await art.getDataURL();
 	console.info(url)
 });
-

getBlobUrl

  • Type: Function

Get the blob address of the screenshot of the current video frame, and return a Promise

▶ Run Code
js
var art = new Artplayer({
+

getBlobUrl ​

  • Type: Function

Get the blob address of the screenshot of the current video frame, and return a Promise

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -181,7 +182,7 @@
     const url = await art.getBlobUrl();
     console.info(url);
 });
-

fullscreen

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get full screen of player window

▶ Run Code
js
var art = new Artplayer({
+

fullscreen ​

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get full screen of player window

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -194,7 +195,7 @@
         },
     ],
 });
-

Tip

Due to the browser security mechanism, the page must have interaction before triggering the full screen of the window (for example, the user has clicked on the page)

fullscreenWeb

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get full screen of player web page

▶ Run Code
js
var art = new Artplayer({
+

Tip

Due to the browser security mechanism, the page must have interaction before triggering the full screen of the window (for example, the user has clicked on the page)

fullscreenWeb ​

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get full screen of player web page

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreenWeb: true,
@@ -207,7 +208,7 @@
         art.fullscreenWeb = false;
     }, 3000);
 });
-

pip

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get the picture-in-picture mode of the player

▶ Run Code
js
var art = new Artplayer({
+

pip ​

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get the picture-in-picture mode of the player

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -220,7 +221,7 @@
         },
     ],
 });
-

Tip

Due to the browser security mechanism, before triggering picture-in-picture, the page must have interaction (for example, the user has clicked on the page)

poster

  • Type: Setter/Getter
  • Parameter: String

Set and obtain video posters. You can only see the poster effect before the video is played

▶ Run Code
js
var art = new Artplayer({
+

Tip

Due to the browser security mechanism, before triggering picture-in-picture, the page must have interaction (for example, the user has clicked on the page)

poster ​

  • Type: Setter/Getter
  • Parameter: String

Set and obtain video posters. You can only see the poster effect before the video is played

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     poster: '/assets/sample/poster.jpg',
@@ -231,7 +232,7 @@
     art.poster = '/assets/sample/poster.jpg?t=0';
     console.info(art.poster);
 });
-

mini

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get player mini mode

▶ Run Code
js
var art = new Artplayer({
+

mini ​

  • Type: Setter/Getter
  • Parameter: Boolean

Set and get player mini mode

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -239,7 +240,7 @@
 art.on('ready', () => {
     art.mini = true;
 });
-

playing

  • Type: Getter
  • Parameter: Boolean

Get whether the video is playing

▶ Run Code
js
var art = new Artplayer({
+

playing ​

  • Type: Getter
  • Parameter: Boolean

Get whether the video is playing

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -248,7 +249,7 @@
 art.on('ready', () => {
     console.info(art.playing);
 });
-

autoSize

  • Type: Setter/Getter
  • Parameter: Boolean

Set whether the video is adaptive size. After setting it to true, it will only be executed once

▶ Run Code
js
var art = new Artplayer({
+

autoSize ​

  • Type: Setter/Getter
  • Parameter: Boolean

Set whether the video is adaptive size. After setting it to true, it will only be executed once

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -258,7 +259,7 @@
     art.autoSize = true;
     console.info(art.autoSize);
 });
-

rect

  • Type: Getter

Get the size and coordinate information of the player

▶ Run Code
js
var art = new Artplayer({
+

rect ​

  • Type: Getter

Get the size and coordinate information of the player

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -266,7 +267,7 @@
 art.on('ready', () => {
     console.info(JSON.stringify(art.rect));
 });
-

Tip

Dimension and coordinate information are obtained through getBoundingClientRect

flip

  • Type: Setter/Getter
  • Parameter: String

Set and get player rollover, support normal, horizontal, vertical

▶ Run Code
js
var art = new Artplayer({
+

Tip

Dimension and coordinate information are obtained through getBoundingClientRect

flip ​

  • Type: Setter/Getter
  • Parameter: String

Set and get player rollover, support normal, horizontal, vertical

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -276,7 +277,7 @@
     art.flip = 'horizontal';
     console.info(art.flip);
 });
-

playbackRate

  • Type: Setter/Getter
  • Parameter: Number

Set and get player playback speed

▶ Run Code
js
var art = new Artplayer({
+

playbackRate ​

  • Type: Setter/Getter
  • Parameter: Number

Set and get player playback speed

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -286,7 +287,7 @@
     art.playbackRate = 2;
     console.info(art.playbackRate);
 });
-

aspectRatio

  • Type: Setter/Getter
  • Parameter: String

Set and obtain the player aspect ratio

▶ Run Code
js
var art = new Artplayer({
+

aspectRatio ​

  • Type: Setter/Getter
  • Parameter: String

Set and obtain the player aspect ratio

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -296,7 +297,7 @@
     art.aspectRatio = '16:9';
     console.info(art.aspectRatio);
 });
-

loop

  • Type: Setter/Getter
  • Parameter: Array

Set and obtain interval sequential playback in seconds

▶ Run Code
js
var art = new Artplayer({
+

loop ​

  • Type: Setter/Getter
  • Parameter: Array

Set and obtain interval sequential playback in seconds

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -306,7 +307,7 @@
     art.loop = [5, 10];
     console.info(art.loop);
 });
-

Tip

To delete interval looping, just set loop to []

art.loop and art.option.loop aer two different things, please don't mix them up

autoHeight

  • Type: Setter/Getter
  • Parameter: Boolean

When the container has only width, this attribute can automatically calculate and set the height of the video. After it is set to true, it will only be executed once

▶ Run Code
js
var art = new Artplayer({
+

Tip

To delete interval looping, just set loop to []

art.loop and art.option.loop aer two different things, please don't mix them up

autoHeight ​

  • Type: Setter/Getter
  • Parameter: Boolean

When the container has only width, this attribute can automatically calculate and set the height of the video. After it is set to true, it will only be executed once

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -318,7 +319,7 @@
 art.on('resize', () => {
     art.autoHeight = true;
 });
-

提示

This attribute is useful when your container has only width but does not know the specific height. It can automatically calculate the height of the video, but you need to determine the time to set this attribute

attr

  • Type: Function
  • Parameter: String

Get and set the attributes of the video element dynamically

▶ Run Code
js
var art = new Artplayer({
+

提示

This attribute is useful when your container has only width but does not know the specific height. It can automatically calculate the height of the video, but you need to determine the time to set this attribute

attr ​

  • Type: Function
  • Parameter: String

Get and set the attributes of the video element dynamically

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -328,7 +329,7 @@
     art.attr('playsInline', true);
     console.info(art.attr('playsInline'));
 });
-

title

  • Type: Setter/Getter
  • Parameter: String

Get and set player titles dynamically

▶ Run Code
js
var art = new Artplayer({
+

title ​

  • Type: Setter/Getter
  • Parameter: String

Get and set player titles dynamically

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -338,7 +339,7 @@
     art.title = 'New Title';
     console.info(art.title);
 });
-

type

  • Type: Setter/Getter
  • Parameter: String

Get and set video types dynamically

▶ Run Code
js
var art = new Artplayer({
+

type ​

  • Type: Setter/Getter
  • Parameter: String

Get and set video types dynamically

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -348,7 +349,7 @@
     art.type = 'm3u8';
     console.info(art.type);
 });
-

theme

  • Type: Setter/Getter
  • Parameter: String

Get and set player theme color dynamically

▶ Run Code
js
var art = new Artplayer({
+

theme ​

  • Type: Setter/Getter
  • Parameter: String

Get and set player theme color dynamically

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -358,7 +359,7 @@
     art.theme = '#000';
     console.info(art.theme);
 });
-

airplay

  • Type: Function

Enable airplay

▶ Run Code
js
var art = new Artplayer({
+

airplay ​

  • Type: Function

Enable airplay

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -371,7 +372,7 @@
         },
     ],
 });
-

loaded

  • Type: Getter

The proportion of video cache, with the range of [0, 1], is often used in conjunction with the video:timeupdate event

▶ Run Code
js
var art = new Artplayer({
+

loaded ​

  • Type: Getter

The proportion of video cache, with the range of [0, 1], is often used in conjunction with the video:timeupdate event

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -379,7 +380,7 @@
 art.on('video:timeupdate', () => {
     console.info(art.loaded);
 });
-

played

  • Type: Getter

The proportion of video playback, with the range of [0, 1], is often used in conjunction with the video:timeupdate event

▶ Run Code
js
var art = new Artplayer({
+

played ​

  • Type: Getter

The proportion of video playback, with the range of [0, 1], is often used in conjunction with the video:timeupdate event

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -387,31 +388,31 @@
 art.on('video:timeupdate', () => {
     console.info(art.played);
 });
-

proxy

  • Type: Function

The proxy function of DOM event essentially proxies addEventListener and removeEventListener. When proxy is used to process the event, the player will also automatically destroy the event when it is destroyed

▶ Run Code
js
var container = document.querySelector('.artplayer-app');
+

proxy ​

  • Type: Function

The proxy function of DOM event essentially proxies addEventListener and removeEventListener. When proxy is used to process the event, the player will also automatically destroy the event when it is destroyed

▶ Run Code
js
var container = document.querySelector('.artplayer-app');
 
 var art = new Artplayer({
 	container: container,
 	url: '/assets/sample/video.mp4',
 });
-
+
 art.proxy(container, 'click', event => {
 	console.info(event);
 });
-

Tip

If you need some DOM events only exist in the life cycle of the player, we strongly recommend using this function to avoid memory leakage

query

  • Type: Function

The query function of DOM is similar to document.querySelector, but the queried object is limited to the current player, which can avoid errors of the same class name

▶ Run Code
js
var art = new Artplayer({
+

Tip

If you need some DOM events only exist in the life cycle of the player, we strongly recommend using this function to avoid memory leakage

query ​

  • Type: Function

The query function of DOM is similar to document.querySelector, but the queried object is limited to the current player, which can avoid errors of the same class name

▶ Run Code
js
var art = new Artplayer({
 	container: '.artplayer-app',
 	url: '/assets/sample/video.mp4',
 });
 
 console.info(art.query('.art-video'));
-

video

  • Type: Element

Return the video element of the player

▶ Run Code
js
var art = new Artplayer({
+

video ​

  • Type: Element

Return the video element of the player

▶ Run Code
js
var art = new Artplayer({
 	container: '.artplayer-app',
 	url: '/assets/sample/video.mp4',
 });
 
 console.info(art.video);
-
- - +
+ \ No newline at end of file diff --git a/docs/document/en/index.html b/docs/document/en/index.html index 0e2c25cb1..c046eaf07 100644 --- a/docs/document/en/index.html +++ b/docs/document/en/index.html @@ -5,30 +5,31 @@ Install | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

Install

Install

bash
npm install artplayer
-
bash
yarn add artplayer
-
bash
pnpm add artplayer
-
html
<script src="path/to/artplayer.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
-
bash
https://unpkg.com/artplayer/dist/artplayer.js
-

Use

js
import Artplayer from 'artplayer';
+    
Skip to content
On this page

Install ​

Install ​

bash
npm install artplayer
+
bash
yarn add artplayer
+
bash
pnpm add artplayer
+
html
<script src="path/to/artplayer.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
+
bash
https://unpkg.com/artplayer/dist/artplayer.js
+

Use ​

js
import Artplayer from 'artplayer';
 
 const art = new Artplayer({
     container: '.artplayer-app',
     url: 'path/to/video.mp4',
 });
-
html
<html>
+
html
<html>
     <head>
         <title>ArtPlayer Demo</title>
         <meta charset="UTF-8" />
@@ -43,7 +44,7 @@
         <div class="artplayer-app"></div>
     </body>
 </html>
-

Tip

The size of the player depends on the size of the container, so your container must have a size

The following links can see more use examples

/packages/artplayer-template

Vue.js

vue
<template>
+

Tip

The size of the player depends on the size of the container, so your container must have a size

The following links can see more use examples

/packages/artplayer-template

Vue.js ​

vue
<template>
   <div ref="artRef"></div>
 </template>
 
@@ -79,7 +80,7 @@
   },
 };
 </script>
-
vue
<template>
+
vue
<template>
   <Artplayer @get-instance="getInstance" :option="option" :style="style" />
 </template>
 
@@ -109,7 +110,7 @@
   },
 };
 </script>
-

Tip

Modifying option directly in Vue.js will not change the player

React.js

jsx
import { useEffect, useRef } from 'react';
+

Tip

Modifying option directly in Vue.js will not change the player

React.js ​

jsx
import { useEffect, useRef } from 'react';
 import Artplayer from 'artplayer';
 
 export default function Player({ option, getInstance, ...rest }) {
@@ -134,7 +135,7 @@
 
     return <div ref={artRef} {...rest}></div>;
 }
-
jsx
import React from 'react';
+
jsx
import React from 'react';
 import Artplayer from './ArtPlayer.jsx';
 
 function App() {
@@ -156,17 +157,17 @@
 }
 
 export default App;
-

Tip

Modifying option directly in React.js will not change the player

Syntax hint

Sometimes your js file will lose the type prompt of TypeScript. At this time, you can manually import the type

Variable:

js
/**
+

Tip

Modifying option directly in React.js will not change the player

Syntax hint ​

Sometimes your js file will lose the type prompt of TypeScript. At this time, you can manually import the type

Variable:

js
/**
  * @type {import("artplayer")}
  */
 let art = null;
-

Parameters:

js
/**
+

Parameters:

js
/**
  * @param {import("artplayer")} art
  */
 function getInstance(art) {
   //
 }
-

Properties:

js
export default {
+

Properties:

js
export default {
   data() {
     return {
       /**
@@ -176,9 +177,9 @@
     }
   }
 }
-
- - +
+ \ No newline at end of file diff --git a/docs/document/en/library/dash.html b/docs/document/en/library/dash.html index 4e4849824..8a2202c17 100644 --- a/docs/document/en/library/dash.html +++ b/docs/document/en/library/dash.html @@ -5,18 +5,19 @@ dash.js | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

dash.js

👉 https://github.com/Dash-Industry-Forum/dash.js

▶ Run Code
js
function playMpd(video, url, art) {
+    
Skip to content
On this page

dash.js ​

👉 https://github.com/Dash-Industry-Forum/dash.js

▶ Run Code
js
function playMpd(video, url, art) {
     if (dashjs.supportsMediaSource()) {
         const dash = dashjs.MediaPlayer().create();
         dash.initialize(video, url, art.option.autoplay);
@@ -42,9 +43,9 @@
 art.on('ready', () => {
     console.info(art.dash);
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/en/library/flv.html b/docs/document/en/library/flv.html index 5247cbccf..c9c9fa6e4 100644 --- a/docs/document/en/library/flv.html +++ b/docs/document/en/library/flv.html @@ -5,18 +5,19 @@ flv.js | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

flv.js

👉 https://github.com/Bilibili/flv.js

▶ Run Code
js
function playFlv(video, url, art) {
+    
Skip to content
On this page

flv.js ​

👉 https://github.com/Bilibili/flv.js

▶ Run Code
js
function playFlv(video, url, art) {
     if (flvjs.isSupported()) {
         const flv = flvjs.createPlayer({ type: 'flv', url });
         flv.attachMediaElement(video);
@@ -43,9 +44,9 @@
 art.on('ready', () => {
     console.info(art.flv);
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/en/library/hls.html b/docs/document/en/library/hls.html index 0cd4af0e1..1b9599fdf 100644 --- a/docs/document/en/library/hls.html +++ b/docs/document/en/library/hls.html @@ -5,18 +5,19 @@ hls.js | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

hls.js

👉 https://github.com/video-dev/hls.js

▶ Run Code
js
function playM3u8(video, url, art) {
+    
Skip to content
On this page

hls.js ​

👉 https://github.com/video-dev/hls.js

▶ Run Code
js
function playM3u8(video, url, art) {
     if (Hls.isSupported()) {
         const hls = new Hls();
         hls.loadSource(url);
@@ -45,9 +46,9 @@
 art.on('ready', () => {
     console.info(art.hls);
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/en/library/webtorrent.html b/docs/document/en/library/webtorrent.html index 5dd300989..c7f6b42f6 100644 --- a/docs/document/en/library/webtorrent.html +++ b/docs/document/en/library/webtorrent.html @@ -5,18 +5,19 @@ webtorrent.js | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

webtorrent.js

👉 https://github.com/webtorrent/webtorrent

▶ Run Code
js
function playTorrent(video, url, art) {
+    
Skip to content
On this page

webtorrent.js ​

👉 https://github.com/webtorrent/webtorrent

▶ Run Code
js
function playTorrent(video, url, art) {
     const torrent = new WebTorrent();
     torrent.add(url, function (torrent) {
         var file = torrent.files[0];
@@ -39,14 +40,14 @@
         torrent: playTorrent,
     },
 });
-
+
 art.on('ready', () => {
     art.video.controls = false;
     console.info(art.torrent);
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/en/plugin/ads.html b/docs/document/en/plugin/ads.html index c61df4307..12b85b922 100644 --- a/docs/document/en/plugin/ads.html +++ b/docs/document/en/plugin/ads.html @@ -5,24 +5,25 @@ 视频广告 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

视频广告

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-ads
-
bash
yarn add artplayer-plugin-ads
-
bash
pnpm add artplayer-plugin-ads
-
html
<script src="path/to/artplayer-plugin-ads.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
-
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
-

使用

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

视频广告 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-ads
+
bash
yarn add artplayer-plugin-ads
+
bash
pnpm add artplayer-plugin-ads
+
html
<script src="path/to/artplayer-plugin-ads.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
+
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
+

使用 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
@@ -70,9 +71,9 @@
 art.on('artplayerPluginAds:skip', (ads) => {
     console.info(ads);
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/en/plugin/control-ui.html b/docs/document/en/plugin/control-ui.html index 1d106f8aa..8eb93608a 100644 --- a/docs/document/en/plugin/control-ui.html +++ b/docs/document/en/plugin/control-ui.html @@ -5,24 +5,25 @@ 控制器皮肤 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

控制器皮肤

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-control
-
bash
yarn add artplayer-plugin-control
-
bash
pnpm add artplayer-plugin-control
-
html
<script src="path/to/artplayer-plugin-control.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
-
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js
-

使用

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

控制器皮肤 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-control
+
bash
yarn add artplayer-plugin-control
+
bash
pnpm add artplayer-plugin-control
+
html
<script src="path/to/artplayer-plugin-control.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
+
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js
+

使用 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -31,7 +32,7 @@
         artplayerPluginControl(),
     ],
 });
-

enable

  • Type: Getter/Setter
  • Parameter: Boolean

是否启用新的控制器皮肤

▶ Run Code
js
var art = new Artplayer({
+

enable ​

  • Type: Getter/Setter
  • Parameter: Boolean

是否启用新的控制器皮肤

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -50,9 +51,9 @@
         artplayerPluginControl(),
     ],
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/en/plugin/dash-quality.html b/docs/document/en/plugin/dash-quality.html index 49bd3337f..1bed8a9be 100644 --- a/docs/document/en/plugin/dash-quality.html +++ b/docs/document/en/plugin/dash-quality.html @@ -5,26 +5,27 @@ Dash 画质 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

Dash 画质

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-dash-quality
-
bash
yarn add artplayer-plugin-dash-quality
-
bash
pnpm add artplayer-plugin-dash-quality
-
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
-
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
-
- - +
Skip to content
On this page

Dash 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-dash-quality
+
bash
yarn add artplayer-plugin-dash-quality
+
bash
pnpm add artplayer-plugin-dash-quality
+
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
+
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
+
+ \ No newline at end of file diff --git a/docs/document/en/plugin/hls-quality.html b/docs/document/en/plugin/hls-quality.html index 998a14acb..b4dc70831 100644 --- a/docs/document/en/plugin/hls-quality.html +++ b/docs/document/en/plugin/hls-quality.html @@ -5,26 +5,27 @@ HLS 画质 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

HLS 画质

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-hls-quality
-
bash
yarn add artplayer-plugin-hls-quality
-
bash
pnpm add artplayer-plugin-hls-quality
-
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
-
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
-
- - +
Skip to content
On this page

HLS 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-hls-quality
+
bash
yarn add artplayer-plugin-hls-quality
+
bash
pnpm add artplayer-plugin-hls-quality
+
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
+
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
+
+ \ No newline at end of file diff --git a/docs/document/en/plugin/iframe.html b/docs/document/en/plugin/iframe.html index ed11291f9..1b29e9ee9 100644 --- a/docs/document/en/plugin/iframe.html +++ b/docs/document/en/plugin/iframe.html @@ -5,24 +5,25 @@ Iframe 控制 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

Iframe 控制

说明

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-iframe
-
bash
yarn add artplayer-plugin-iframe
-
bash
pnpm add artplayer-plugin-iframe
-
html
<script src="path/to/artplayer-plugin-iframe.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
-
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
-

使用

html
<!DOCTYPE html>
+    
Skip to content
On this page

Iframe 控制 ​

说明 ​

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-iframe
+
bash
yarn add artplayer-plugin-iframe
+
bash
pnpm add artplayer-plugin-iframe
+
html
<script src="path/to/artplayer-plugin-iframe.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
+
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
+

使用 ​

html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -49,7 +50,7 @@
         </script>
     </body>
 </html>
-
html
<!DOCTYPE html>
+
html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -74,7 +75,7 @@
         </script>
     </body>
 </html>
-

index.html 接口

commit

从 index.html 将消息推送到 iframe.html,该函数将在 iframe.html 内部运行,同时它也能用于异步获取 iframe.html 里的值

js
iframe.commit(() => {
+

index.html 接口 ​

commit ​

从 index.html 将消息推送到 iframe.html,该函数将在 iframe.html 内部运行,同时它也能用于异步获取 iframe.html 里的值

js
iframe.commit(() => {
     var art = new Artplayer({
         container: '.artplayer-app',
         url: 'path/to/video.mp4',
@@ -99,12 +100,12 @@
         }, 1000);
     });
 })();
-

message

在 index.html 接收来自 iframe.html 的消息

js
iframe.message((event) => {
+

message ​

在 index.html 接收来自 iframe.html 的消息

js
iframe.message((event) => {
     console.info(event);
 });
-

destroy

销毁后 index.html 无法与 iframe.html 通信

js
iframe.destroy();
-

iframe.html 接口

提示

iframe.html 接口 只能运行在 iframe.html 里

inject

注入脚本,接收来自 index.html 的消息

js
ArtplayerPluginIframe.inject();
-

postMessage

将消息推送到 index.html

js
iframe.message((event) => {
+

destroy ​

销毁后 index.html 无法与 iframe.html 通信

js
iframe.destroy();
+

iframe.html 接口 ​

提示

iframe.html 接口 只能运行在 iframe.html 里

inject ​

注入脚本,接收来自 index.html 的消息

js
ArtplayerPluginIframe.inject();
+

postMessage ​

将消息推送到 index.html

js
iframe.message((event) => {
     console.info(event);
 });
 
@@ -114,7 +115,7 @@
         data: art.currentTime,
     });
 });
-

例子

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html

+

例子 ​

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html

 <!DOCTYPE html>
 <html>
     <head>
@@ -137,8 +138,9 @@
             }
         </style>
         <script>
+            const $iframe = document.querySelector('#iframe');
             const iframe = new ArtplayerPluginIframe({
-                iframe: document.querySelector('#iframe'),
+                iframe: $iframe,
                 url: 'path/to/iframe.html',
             });
 
@@ -173,7 +175,7 @@
     </body>
 </html>
 
-
html

+
html

 <!DOCTYPE html>
 <html>
     <head>
@@ -199,9 +201,9 @@
     </body>
 </html>
 
-
- - +
+ \ No newline at end of file diff --git a/docs/document/en/start/component.html b/docs/document/en/start/component.html index 735dd1373..e585fc5c5 100644 --- a/docs/document/en/start/component.html +++ b/docs/document/en/start/component.html @@ -5,18 +5,19 @@ Component | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

Component

The component configuration mentioned here mainly refers to three common configurations: layers, controls and contextmenu:

PropertyTypeDescribe
disableBooleanWhether to disable components
nameStringComponent unique name, used to mark the class name
indexNumberComponent index, used to display the priority of
htmlString, ElementDOM element of component
styleObjectComponent Style Object
clickFunctionComponent click event
mountedFunctionTriggered after the component is mounted
tooltipStringPrompt text for component

Tip

  • The current component can only be added, not destroyed
  • Use the 'name' option to quickly obtain the 'DOM' element of a component
  • The order in which components appear can be controlled through the 'index' option

layers

Add a layer during instantiation, such as logo or advertisement

▶ Run Code
js
var img = '/assets/sample/layer.png';
+    
Skip to content
On this page

Component ​

The component configuration mentioned here mainly refers to three common configurations: layers, controls and contextmenu:

PropertyTypeDescribe
disableBooleanWhether to disable components
nameStringComponent unique name, used to mark the class name
indexNumberComponent index, used to display the priority of
htmlString, ElementDOM element of component
styleObjectComponent Style Object
clickFunctionComponent click event
mountedFunctionTriggered after the component is mounted
tooltipStringPrompt text for component

Tip

  • The current component can only be added, not destroyed
  • Use the 'name' option to quickly obtain the 'DOM' element of a component
  • The order in which components appear can be controlled through the 'index' option

layers ​

Add a layer during instantiation, such as logo or advertisement

▶ Run Code
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -41,7 +42,7 @@
 });
 
 console.info(art.layers.potser);
-

You can also add a layer after instantiation

▶ Run Code
js
var img = '/assets/sample/layer.png';
+

You can also add a layer after instantiation

▶ Run Code
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -65,7 +66,7 @@
 });
 
 console.info(art.layers.potser);
-

controls

Add a control during instantiation

There are three additional options for controls

  • position: left and right positions of control controller
  • selector: Object array of selection list
  • onSelect: Function triggered when an element of the selection list is clicked
▶ Run Code
js
var art = new Artplayer({
+

controls ​

Add a control during instantiation

There are three additional options for controls

  • position: left and right positions of control controller
  • selector: Object array of selection list
  • onSelect: Function triggered when an element of the selection list is clicked
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -108,7 +109,7 @@
 
 console.info(art.controls['your-button']);
 console.info(art.controls.subtitle);
-

You can also add a control after instantiation

js
var art = new Artplayer({
+

You can also add a control after instantiation

js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -129,9 +130,9 @@
         console.info('mounted', args);
     },
 });
-
+
 console.info(art.controls.button1);
-

contextmenu

Add a contextmenu during instantiation

▶ Run Code
js
var art = new Artplayer({
+

contextmenu ​

Add a contextmenu during instantiation

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -147,7 +148,7 @@
 });
 
 console.info(art.contextmenu['your-menu']);
-

You can also add a contextmenu after instantiation

▶ Run Code
js
var art = new Artplayer({
+

You can also add a contextmenu after instantiation

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -162,9 +163,9 @@
 });
 
 console.info(art.contextmenu['your-menu']);
-
- - +
+ \ No newline at end of file diff --git a/docs/document/en/start/option.html b/docs/document/en/start/option.html index b8ee49ff6..d0aa04d78 100644 --- a/docs/document/en/start/option.html +++ b/docs/document/en/start/option.html @@ -5,46 +5,47 @@ Option | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

Option

container

  • Type: String, Element
  • Default: #artplayer

The DOM container attached to the player

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

Option ​

container ​

  • Type: String, Element
  • Default: #artplayer

The DOM container attached to the player

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app', 
     // container: document.querySelector('.artplayer-app'),
     url: '/assets/sample/video.mp4',
 });
-

You may need to initialize the size of container elements, such as:

css
.artplayer-app {
+

You may need to initialize the size of container elements, such as:

css
.artplayer-app {
     width: 400px;
     height: 300px;
 }
-

Or use aspect-ratio:

css
.artplayer-app {
+

Or use aspect-ratio:

css
.artplayer-app {
     aspect-ratio: 16/9;
 }
-

Tip

Of all options, only container is required

url

  • Type: String
  • Default: ''

Video source address

▶ Run Code
js
var art = new Artplayer({
+

Tip

Of all options, only container is required

url ​

  • Type: String
  • Default: ''

Video source address

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
-

Sometimes the url address is not known so quickly. At this time, you can set the url asynchronously

▶ Run Code
js
var art = new Artplayer({
+

Sometimes the url address is not known so quickly. At this time, you can set the url asynchronously

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
 });
 
 setTimeout(() => {
     art.url = '/assets/sample/video.mp4';
 }, 1000);
-

Tip

Three video file formats are supported by default: .mp4, .ogg, and .webm

If you need to play .m3u8 or .flv or other formats, please refer to the Libraries on the left

id

  • Type: String
  • Default: ''

The unique identifier of the player, currently only used for autoplayback

▶ Run Code
js
var art = new Artplayer({
+

Tip

Three video file formats are supported by default: .mp4, .ogg, and .webm

If you need to play .m3u8 or .flv or other formats, please refer to the Libraries on the left

id ​

  • Type: String
  • Default: ''

The unique identifier of the player, currently only used for autoplayback

▶ Run Code
js
var art = new Artplayer({
     id: 'your-url-id',
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
-

onReady

  • Type: Function
  • Default: undefined

The constructor accepts a function as the second parameter, which is triggered when the player is initialized successfully and the video can be played, just like the ready event

▶ Run Code
js
var art = new Artplayer(
+

onReady ​

  • Type: Function
  • Default: undefined

The constructor accepts a function as the second parameter, which is triggered when the player is initialized successfully and the video can be played, just like the ready event

▶ Run Code
js
var art = new Artplayer(
     {
         container: '.artplayer-app',
         url: '/assets/sample/video.mp4',
@@ -54,7 +55,7 @@
         this.play()
     },
 );
-

Equivalent to:

js
var art = new Artplayer({
+

Equivalent to:

js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -63,112 +64,112 @@
 art.on('ready', () => {
     art.play();
 });
-

Tip

The this in the callback function is the player instance, but if the callback function uses the arrow function, the this will not point to the player instance

poster

  • Type: String
  • Default: ''

Video posters will only appear when the player is initialized and not played

▶ Run Code
js
var art = new Artplayer({
+

Tip

The this in the callback function is the player instance, but if the callback function uses the arrow function, the this will not point to the player instance

poster ​

  • Type: String
  • Default: ''

Video posters will only appear when the player is initialized and not played

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     poster: '/assets/sample/poster.jpg',
 });
-

title

  • Type: String
  • Default: ''

Video title, which currently appears in video screenshot and mini mode

▶ Run Code
js
var art = new Artplayer({
+

title ​

  • Type: String
  • Default: ''

Video title, which currently appears in video screenshot and mini mode

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     title: 'your-video-title',
     screenshot: true,
 });
-

theme

  • Type: String
  • Default: #f00

The player theme color is currently used on the progress bar and highlighted element

▶ Run Code
js
var art = new Artplayer({
+

theme ​

  • Type: String
  • Default: #f00

The player theme color is currently used on the progress bar and highlighted element

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     theme: '#ffad00',
 });
-

volume

  • Type: Number
  • Default: 0.7

Default volume of player

▶ Run Code
js
var art = new Artplayer({
+

volume ​

  • Type: Number
  • Default: 0.7

Default volume of player

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     volume: 0.5,
 });
-

Tip

The player will cache the size of the last volume, and the player will read the cache value at the next initialization (such as refreshing the page)

isLive

  • Type: Boolean
  • Default: false

When using live mode, the progress bar and playback time will be hidden

▶ Run Code
js
var art = new Artplayer({
+

Tip

The player will cache the size of the last volume, and the player will read the cache value at the next initialization (such as refreshing the page)

isLive ​

  • Type: Boolean
  • Default: false

When using live mode, the progress bar and playback time will be hidden

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     isLive: true,
 });
-

muted

  • Type: Boolean
  • Default: false

Whether to mute by default

▶ Run Code
js
var art = new Artplayer({
+

muted ​

  • Type: Boolean
  • Default: false

Whether to mute by default

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
 });
-

autoplay

  • Type: Boolean
  • Default: false

Whether to play automatically

▶ Run Code
js
var art = new Artplayer({
+

autoplay ​

  • Type: Boolean
  • Default: false

Whether to play automatically

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoplay: true,
     muted: true,
 });
-

Tip

If you want to enter the page by default to automatically play the video, muted must be true. For more information, please read Autoplay Policy Changes

autoSize

  • Type: Boolean
  • Default: false

The size of the player will fill the entire container size by default, so black edges often appear. This value can automatically adjust the size of the player to hide the black edges, similar to the object-fit: contain of css

▶ Run Code
js
var art = new Artplayer({
+

Tip

If you want to enter the page by default to automatically play the video, muted must be true. For more information, please read Autoplay Policy Changes

autoSize ​

  • Type: Boolean
  • Default: false

The size of the player will fill the entire container size by default, so black edges often appear. This value can automatically adjust the size of the player to hide the black edges, similar to the object-fit: contain of css

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
 });
-

autoMini

  • Type: Boolean
  • Default: false

When the player scrolls outside the viewport, it automatically enters the mini mode

▶ Run Code
js
var art = new Artplayer({
+

autoMini ​

  • Type: Boolean
  • Default: false

When the player scrolls outside the viewport, it automatically enters the mini mode

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoMini: true,
 });
-

loop

  • Type: Boolean
  • Default: false

Whether to play in a loop

▶ Run Code
js
var art = new Artplayer({
+

loop ​

  • Type: Boolean
  • Default: false

Whether to play in a loop

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     loop: true,
 });
-

flip

  • Type: Boolean
  • Default: false

Whether to display the video flip function currently only appears in the Setting and Contextmenu

▶ Run Code
js
var art = new Artplayer({
+

flip ​

  • Type: Boolean
  • Default: false

Whether to display the video flip function currently only appears in the Setting and Contextmenu

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     flip: true,
     setting: true,
 });
-

playbackRate

  • Type: Boolean
  • Default: false

Whether to display the video playback speed function will appear in the Setting and Contextmenu

▶ Run Code
js
var art = new Artplayer({
+

playbackRate ​

  • Type: Boolean
  • Default: false

Whether to display the video playback speed function will appear in the Setting and Contextmenu

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     playbackRate: true,
     setting: true,
 });
-

aspectRatio

  • Type: Boolean
  • Default: false

Whether to display the video aspect ratio function will appear in the Setting and Contextmenu

▶ Run Code
js
var art = new Artplayer({
+

aspectRatio ​

  • Type: Boolean
  • Default: false

Whether to display the video aspect ratio function will appear in the Setting and Contextmenu

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     aspectRatio: true,
     setting: true,
 });
-

screenshot

  • Type: Boolean
  • Default: false

Whether to display the video screenshot function in the bottom control bar

▶ Run Code
js
var art = new Artplayer({
+

screenshot ​

  • Type: Boolean
  • Default: false

Whether to display the video screenshot function in the bottom control bar

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     screenshot: true,
 });
-

Tip

Due to the browser security policy, if the video source address and website are cross-domain, the screenshot may fail

setting

  • Type: Boolean
  • Default: false

Whether to display the switch button of Setting in the bottom control bar

▶ Run Code
js
var art = new Artplayer({
+

Tip

Due to the browser security policy, if the video source address and website are cross-domain, the screenshot may fail

setting ​

  • Type: Boolean
  • Default: false

Whether to display the switch button of Setting in the bottom control bar

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
 });
-

hotkey

  • Type: Boolean
  • Default: true

Whether to use shortcut keys

▶ Run Code
js
var art = new Artplayer({
+

hotkey ​

  • Type: Boolean
  • Default: true

Whether to use shortcut keys

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     hotkey: true,
 });
-
HotkeysSescribe
↑Volume Up
↓Volume Down
←Fast forward
→Fast rewind
spaceToggle play/pause

Tip

These shortcut keys will only take effect after the player gets the focus (such as clicking the player)

pip

  • Type: Boolean
  • Default: false

Whether to display the picture in picture switch button in the bottom control bar

▶ Run Code
js
var art = new Artplayer({
+
HotkeysSescribe
↑Volume Up
↓Volume Down
←Fast forward
→Fast rewind
spaceToggle play/pause

Tip

These shortcut keys will only take effect after the player gets the focus (such as clicking the player)

pip ​

  • Type: Boolean
  • Default: false

Whether to display the picture in picture switch button in the bottom control bar

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     pip: true,
 });
-

mutex

  • Type: Boolean
  • Default: true

If there are multiple players in the page at the same time, can only one player play

▶ Run Code
js
var art = new Artplayer({
+

mutex ​

  • Type: Boolean
  • Default: true

If there are multiple players in the page at the same time, can only one player play

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     mutex: true,
 });
-

fullscreen

  • Type: Boolean
  • Default: false

Whether to display the player window full screen button in the bottom control bar

▶ Run Code
js
var art = new Artplayer({
+

fullscreen ​

  • Type: Boolean
  • Default: false

Whether to display the player window full screen button in the bottom control bar

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
 });
-

fullscreenWeb

  • Type: Boolean
  • Default: false

Whether to display the player full screen web page button in the bottom control bar

▶ Run Code
js
var art = new Artplayer({
+

fullscreenWeb ​

  • Type: Boolean
  • Default: false

Whether to display the player full screen web page button in the bottom control bar

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreenWeb: true,
 });
-

subtitleOffset

  • Type: Boolean
  • Default: false

Subtitle time offset, with the range of [-5s, 5s], appears in the Settings

▶ Run Code
js
var art = new Artplayer({
+

subtitleOffset ​

  • Type: Boolean
  • Default: false

Subtitle time offset, with the range of [-5s, 5s], appears in the Settings

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitleOffset: true,
@@ -177,12 +178,12 @@
     },
     setting: true,
 });
-

miniProgressBar

  • Type: Boolean
  • Default: false

Mini progress bar, only appears when the player loses focus and is playing

▶ Run Code
js
var art = new Artplayer({
+

miniProgressBar ​

  • Type: Boolean
  • Default: false

Mini progress bar, only appears when the player loses focus and is playing

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     miniProgressBar: true,
 });
-

useSSR

  • Type: Boolean
  • Default: false

Whether to use the SSR mount mode is useful if you want to render the HTML required by the player in advance before the player is mounted

You can access the HTML required by the player through Artplayer.html

▶ Run Code
js
var $container = document.querySelector('.artplayer-app');
+

useSSR ​

  • Type: Boolean
  • Default: false

Whether to use the SSR mount mode is useful if you want to render the HTML required by the player in advance before the player is mounted

You can access the HTML required by the player through Artplayer.html

▶ Run Code
js
var $container = document.querySelector('.artplayer-app');
 $container.innerHTML = Artplayer.html;
 
 var art = new Artplayer({
@@ -190,12 +191,12 @@
     url: '/assets/sample/video.mp4',
     useSSR: true,
 });
-

playsInline

  • Type: Boolean
  • Default: true

Whether to use the playsInline mode on the mobile end

▶ Run Code
js
var art = new Artplayer({
+

playsInline ​

  • Type: Boolean
  • Default: true

Whether to use the playsInline mode on the mobile end

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     playsInline: true,
 });
-

layers

  • Type: Array
  • Default: []

Initialize the customized layers

▶ Run Code
js
var img = '/assets/sample/layer.png';
+

layers ​

  • Type: Array
  • Default: []

Initialize the customized layers

▶ Run Code
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -219,7 +220,7 @@
         },
     ],
 });
-

Please refer to the following address for Component:

/start/component.html

settings

  • Type: Array
  • Default: []

Initialize the customized Setting

▶ Run Code
js
var art = new Artplayer({
+

Please refer to the following address for Component:

/start/component.html

settings ​

  • Type: Array
  • Default: []

Initialize the customized Setting

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -254,7 +255,7 @@
         },
     ],
 });
-

Please refer to the following address for Setting

/start/setting.html

contextmenu

  • Type: Array
  • Default: []

Initialize the customized Contextmenu

▶ Run Code
js
var art = new Artplayer({
+

Please refer to the following address for Setting

/start/setting.html

contextmenu ​

  • Type: Array
  • Default: []

Initialize the customized Contextmenu

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -267,7 +268,7 @@
         },
     ],
 });
-

Please refer to the following address for Component:

/start/component.html

controls

  • Type: Array
  • Default: []

Initialize the customized Controls

▶ Run Code
js
var art = new Artplayer({
+

Please refer to the following address for Component:

/start/component.html

controls ​

  • Type: Array
  • Default: []

Initialize the customized Controls

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -284,7 +285,7 @@
         },
     ],
 });
-

Please refer to the following address for Setting

/start/setting.html

quality

  • Type: Array
  • Default: []

Whether to display the Quality list in the bottom control bar

PropertyTypeDescribe
defaultBooleanDefault quality
htmlStringQuality name
urlStringQuality name
▶ Run Code
js
var art = new Artplayer({
+

Please refer to the following address for Setting

/start/setting.html

quality ​

  • Type: Array
  • Default: []

Whether to display the Quality list in the bottom control bar

PropertyTypeDescribe
defaultBooleanDefault quality
htmlStringQuality name
urlStringQuality name
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     quality: [
@@ -299,7 +300,7 @@
         },
     ],
 });
-

highlight

  • Type: Array
  • Default: []

Display highlight on the progress bar

PropertyTypeDescribe
timeNumberHighlight time
textStringHighlight text
▶ Run Code
js
var art = new Artplayer({
+

highlight ​

  • Type: Array
  • Default: []

Display highlight on the progress bar

PropertyTypeDescribe
timeNumberHighlight time
textStringHighlight text
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     highlight: [
@@ -325,7 +326,7 @@
         },
     ],
 });
-

plugins

  • Type: Array
  • Default: []

Initialize customized plugins

▶ Run Code
js
function myPlugin(art) {
+

plugins ​

  • Type: Array
  • Default: []

Initialize customized plugins

▶ Run Code
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -341,14 +342,14 @@
     url: '/assets/sample/video.mp4',
     plugins: [myPlugin],
 });
-

whitelist

  • Type: Array
  • Default: []

Because different mobile devices have many differences and limitations, sometimes you want to use native functions directly instead of using this player on some mobile devices, you can use this option to control

The whitelist is an array type, which is matched with window.navigator.userAgent respectively. The player will be enabled as long as one of the matches is successful

Support string matching, function matching and regular matching

▶ Run Code
js
var art = new Artplayer({
+

whitelist ​

  • Type: Array
  • Default: []

Because different mobile devices have many differences and limitations, sometimes you want to use native functions directly instead of using this player on some mobile devices, you can use this option to control

The whitelist is an array type, which is matched with window.navigator.userAgent respectively. The player will be enabled as long as one of the matches is successful

Support string matching, function matching and regular matching

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     whitelist: [(ua) => /iPhone/gi.test(ua)],
     // whitelist: [/iPhone/gi],
     // whitelist: ['iPhone'],
 });
-

Tip

If this option is not filled in, the player will be used by default

thumbnails

  • Type: Object
  • Default: {}

Set the thumbnails image on the progress bar

PropertyTypeDescribe
urlStringThumbnail url
numberNumberThumbnail number
columnNumberThumbnail column
widthNumberThumbnail width
heightNumberThumbnail height
▶ Run Code
js
var art = new Artplayer({
+

Tip

If this option is not filled in, the player will be used by default

thumbnails ​

  • Type: Object
  • Default: {}

Set the thumbnails image on the progress bar

PropertyTypeDescribe
urlStringThumbnail url
numberNumberThumbnail number
columnNumberThumbnail column
widthNumberThumbnail width
heightNumberThumbnail height
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     thumbnails: {
@@ -357,7 +358,7 @@
         column: 10,
     },
 });
-

Generate preview thumbnails online

artplayer-tool-thumbnail

subtitle

  • Type: Object
  • Default: {}

Set the subtitle of the video and support the subtitle format: vtt, srt, ass

PropertyTypeDescribe
urlStringSubtitle url
typeStringSubtitle type: vtt, srt, ass
styleObjectSubtitle style
encodingStringSubtitle code, Default: utf-8
escapeBooleanWhether to escape the html tag,Default: true
▶ Run Code
js
var art = new Artplayer({
+

Generate preview thumbnails online

artplayer-tool-thumbnail

subtitle ​

  • Type: Object
  • Default: {}

Set the subtitle of the video and support the subtitle format: vtt, srt, ass

PropertyTypeDescribe
urlStringSubtitle url
typeStringSubtitle type: vtt, srt, ass
styleObjectSubtitle style
encodingStringSubtitle code, Default: utf-8
escapeBooleanWhether to escape the html tag,Default: true
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -371,7 +372,7 @@
         },
     },
 });
-

moreVideoAttr

  • Type: Object
  • Default: {'controls': false,'preload': 'metadata'}

More video attributes, which will be directly written into the video element

▶ Run Code
js
var art = new Artplayer({
+

moreVideoAttr ​

  • Type: Object
  • Default: {'controls': false,'preload': 'metadata'}

More video attributes, which will be directly written into the video element

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     moreVideoAttr: {
@@ -379,7 +380,7 @@
         playsInline: true,
     },
 });
-

icons

  • Type: Object
  • Default: {}

It is used to replace the default icon and supports Html String and HTMLElement

▶ Run Code
js
var art = new Artplayer({
+

icons ​

  • Type: Object
  • Default: {}

It is used to replace the default icon and supports Html String and HTMLElement

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     icons: {
@@ -387,12 +388,12 @@
         state: '<img src="/assets/img/state.png">',
     },
 });
-

Definition of all icons

artplayer/types/icons.d.ts

type

  • Type: String
  • Default: ''

It is used to indicate the format of the video. It needs to be used together with the customType. The default format of the video is the suffix of the video address (such as .m3u8, .mkv, .ts). But sometimes the video address does not have the correct suffix, so it needs to be specially specified

▶ Run Code
js
var art = new Artplayer({
+

Definition of all icons

artplayer/types/icons.d.ts

type ​

  • Type: String
  • Default: ''

It is used to indicate the format of the video. It needs to be used together with the customType. The default format of the video is the suffix of the video address (such as .m3u8, .mkv, .ts). But sometimes the video address does not have the correct suffix, so it needs to be specially specified

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.m3u8',
     type: 'm3u8',
 });
-

Identification of suffix

The player can only resolve this suffix: /assets/sample/video.m3u8

However, this suffix cannot be resolved: /assets/sample/video?type=m3u8

So if you use customType, it is better to specify type at the same time

customType

  • Type: Object
  • Default: {}

By matching the video's type, the video decoding right is handed over to a third-party program for processing. The processing function can receive three parameters

  • video : Video DOM element
  • url : Video url
  • art : Player instance
▶ Run Code
js
var art = new Artplayer({
+

Identification of suffix

The player can only resolve this suffix: /assets/sample/video.m3u8

However, this suffix cannot be resolved: /assets/sample/video?type=m3u8

So if you use customType, it is better to specify type at the same time

customType ​

  • Type: Object
  • Default: {}

By matching the video's type, the video decoding right is handed over to a third-party program for processing. The processing function can receive three parameters

  • video : Video DOM element
  • url : Video url
  • art : Player instance
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.m3u8',
     customType: {
@@ -401,12 +402,12 @@
         },
     },
 });
-

lang

  • Type: String
  • Default: navigator.language.toLowerCase()

The default display language currently supports: en, zh-cn, zh-tw, cs, pl, es, fa, fr, id

▶ Run Code
js
var art = new Artplayer({
+

lang ​

  • Type: String
  • Default: navigator.language.toLowerCase()

The default display language currently supports: en, zh-cn, zh-tw, cs, pl, es, fa, fr, id

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lang: 'en',
 });
-

i18n

  • Type: Object
  • Default: {}

Customize the i18n configuration, which will be deeply merged with the built-in i18n

Add your language:

▶ Run Code
js
var art = new Artplayer({
+

i18n ​

  • Type: Object
  • Default: {}

Customize the i18n configuration, which will be deeply merged with the built-in i18n

Add your language:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lang: 'your-lang',
@@ -416,7 +417,7 @@
         },
     },
 });
-

Modify existing language:

▶ Run Code
js
var art = new Artplayer({
+

Modify existing language:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     i18n: {
@@ -428,35 +429,35 @@
         },
     },
 });
-

lock

  • Type: Boolean
  • Default: false

Whether to display a lock button on the mobile end to hide the bottom control bar

▶ Run Code
js
var art = new Artplayer({
+

lock ​

  • Type: Boolean
  • Default: false

Whether to display a lock button on the mobile end to hide the bottom control bar

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lock: true,
 });
-

fastForward

  • Type: Boolean
  • Default: false

Whether to add long-press video fast-forward function on the mobile terminal

▶ Run Code
js
var art = new Artplayer({
+

fastForward ​

  • Type: Boolean
  • Default: false

Whether to add long-press video fast-forward function on the mobile terminal

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fastForward: true,
 });
-

autoPlayback

  • Type: Boolean
  • Default: false

Whether to use automatic playback function

▶ Run Code
js
var art = new Artplayer({
+

autoPlayback ​

  • Type: Boolean
  • Default: false

Whether to use automatic playback function

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     id: 'your-url-id',
     autoPlayback: true,
 });
-

Tip

Because the player uses url as key by default to cache the playback progress

But if your url of the same video is different, you need to use id to identify the unique key of the video

autoOrientation

  • Type: Boolean
  • Default: false

Whether to rotate the player according to the video size and viewport size when the mobile page is full screen

▶ Run Code
js
var art = new Artplayer({
+

Tip

Because the player uses url as key by default to cache the playback progress

But if your url of the same video is different, you need to use id to identify the unique key of the video

autoOrientation ​

  • Type: Boolean
  • Default: false

Whether to rotate the player according to the video size and viewport size when the mobile page is full screen

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoOrientation: true,
 });
-

airplay

  • Type: Boolean
  • Default: false

Whether to display the airplay button. Currently, only some browsers support this function

▶ Run Code
js
var art = new Artplayer({
+

airplay ​

  • Type: Boolean
  • Default: false

Whether to display the airplay button. Currently, only some browsers support this function

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     airplay: true,
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/en/start/setting.html b/docs/document/en/start/setting.html index 7810da8cf..a0f0474c2 100644 --- a/docs/document/en/start/setting.html +++ b/docs/document/en/start/setting.html @@ -5,18 +5,19 @@ 设置面板 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

设置面板

You need to open the settings panel first. The player has four settings by default: flip, playbackRate, aspectRatio, subtitleOffset

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

设置面板 ​

You need to open the settings panel first. The player has four settings by default: flip, playbackRate, aspectRatio, subtitleOffset

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 	setting: true,
@@ -25,7 +26,7 @@
     aspectRatio: true,
     subtitleOffset: true,
 });
-

Selection list

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
selectorArrayElement list
onSelectFunctionElement click event
widthNumberList width
tooltipStringPrompt text
▶ Run Code
js
var art = new Artplayer({
+

Selection list ​

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
selectorArrayElement list
onSelectFunctionElement click event
widthNumberList width
tooltipStringPrompt text
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -78,7 +79,7 @@
         },
     ],
 });
-

List nesting

▶ Run Code
js
var art = new Artplayer({
+

List nesting ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -122,7 +123,7 @@
         },
     ],
 });
-

Toggle button

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
switchBooleanButton default state
onSwitchFunctionButton switching event
tooltipStringPrompt text
▶ Run Code
js
var art = new Artplayer({
+

Toggle button ​

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
switchBooleanButton default state
onSwitchFunctionButton switching event
tooltipStringPrompt text
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -142,12 +143,12 @@
         },
     ],
 });
-

Range Slider

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
rangeArrayDefault state array
onRangeFunctionEvent triggered on completion
onChangeFunctionEvents triggered when changing
tooltipStringPrompt text
js
const range = [5, 1, 10, 1];
+

Range Slider ​

PropertyTypeDescribe
htmlString, ElementDOM of element
iconString, ElementIcon of element
rangeArrayDefault state array
onRangeFunctionEvent triggered on completion
onChangeFunctionEvents triggered when changing
tooltipStringPrompt text
js
const range = [5, 1, 10, 1];
 const value = range[0];
 const min = range[1];
 const max = range[2];
 const step = range[3];
-
▶ Run Code
js
var art = new Artplayer({
+
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -164,9 +165,9 @@
         },
     ],
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/hashmap.json b/docs/document/hashmap.json index 3cc7955b5..216eaebc5 100644 --- a/docs/document/hashmap.json +++ b/docs/document/hashmap.json @@ -1 +1 @@ -{"advanced_class.md":"cba82bcd","advanced_built-in.md":"fc36bd19","advanced_plugin.md":"006d0d66","advanced_event.md":"70b41e05","en_advanced_class.md":"5834ab32","en_advanced_built-in.md":"c2fe6960","en_advanced_plugin.md":"d438c8aa","en_library_dash.md":"6cfbdbae","en_index.md":"5adcaac7","en_library_hls.md":"a49e2812","en_plugin_ads.md":"77060a62","advanced_property.md":"ac8c3af6","en_plugin_dash-quality.md":"1e60b52d","en_plugin_hls-quality.md":"393144b1","en_advanced_event.md":"99a25a28","en_plugin_control-ui.md":"5b1a0268","en_library_webtorrent.md":"ea918503","en_library_flv.md":"834c8dfb","en_start_component.md":"bd02e1ef","en_advanced_property.md":"04d93333","en_plugin_iframe.md":"59ae4049","library_flv.md":"05440acf","plugin_ads.md":"d1a697f9","en_start_setting.md":"ce6aa0a7","library_hls.md":"39b2d4b8","library_dash.md":"99d9a876","library_webtorrent.md":"aada1832","plugin_control-ui.md":"452a2715","plugin_hls-quality.md":"d6b0ffed","en_start_option.md":"eb3ddacd","index.md":"4a4c805f","plugin_dash-quality.md":"9cf0ae9b","plugin_iframe.md":"c3122371","start_component.md":"72ecc8a1","plugin_danmuku.md":"dca0b589","start_setting.md":"a02c089b","start_option.md":"2c38c28e"} +{"advanced_class.md":"dbd895da","advanced_built-in.md":"1868f5da","advanced_plugin.md":"7759ba7e","advanced_event.md":"ff9ebe55","en_advanced_class.md":"f62aaf97","en_advanced_built-in.md":"654dca4f","advanced_property.md":"ab237185","en_advanced_plugin.md":"73808c77","en_library_dash.md":"c4b99211","en_library_flv.md":"6466c32b","en_advanced_event.md":"5825ac7d","en_library_webtorrent.md":"96dd8119","en_plugin_ads.md":"c3f787ec","en_index.md":"f4d7ddba","en_library_hls.md":"9ff0b74e","en_advanced_property.md":"2e3710aa","en_plugin_control-ui.md":"ca5cba45","en_plugin_dash-quality.md":"a385175c","en_plugin_hls-quality.md":"d9fa6602","en_start_component.md":"4a0a1f6f","en_plugin_iframe.md":"734770a6","library_dash.md":"b524166f","index.md":"28154eff","library_hls.md":"3bc46bf1","en_start_setting.md":"fb089717","library_flv.md":"8806bb62","en_start_option.md":"725aa586","library_webtorrent.md":"58ca6f6b","plugin_ads.md":"c3b42acc","plugin_control-ui.md":"77793dbc","plugin_danmuku.md":"919ae64e","plugin_dash-quality.md":"10dbb325","plugin_hls-quality.md":"92f95063","start_component.md":"dfca26b5","plugin_iframe.md":"bf3547f5","start_setting.md":"1345f72b","start_option.md":"35e43089"} diff --git a/docs/document/index.html b/docs/document/index.html index b275cdadf..3aa6588b1 100644 --- a/docs/document/index.html +++ b/docs/document/index.html @@ -5,30 +5,31 @@ 安装使用 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

安装使用

安装

bash
npm install artplayer
-
bash
yarn add artplayer
-
bash
pnpm add artplayer
-
html
<script src="path/to/artplayer.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
-
bash
https://unpkg.com/artplayer/dist/artplayer.js
-

使用

js
import Artplayer from 'artplayer';
+    
Skip to content
On this page

安装使用 ​

安装 ​

bash
npm install artplayer
+
bash
yarn add artplayer
+
bash
pnpm add artplayer
+
html
<script src="path/to/artplayer.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer/dist/artplayer.js
+
bash
https://unpkg.com/artplayer/dist/artplayer.js
+

使用 ​

js
import Artplayer from 'artplayer';
 
 const art = new Artplayer({
     container: '.artplayer-app',
     url: 'path/to/video.mp4',
 });
-
html
<html>
+
html
<html>
     <head>
         <title>ArtPlayer Demo</title>
         <meta charset="UTF-8" />
@@ -43,7 +44,7 @@
         <div class="artplayer-app"></div>
     </body>
 </html>
-

提示

播放器的尺寸依赖于容器 container 的尺寸,所以你的容器 container 必须是有尺寸的

以下链接可以看到更多的使用例子

/packages/artplayer-template

Vue.js

vue
<template>
+

提示

播放器的尺寸依赖于容器 container 的尺寸,所以你的容器 container 必须是有尺寸的

以下链接可以看到更多的使用例子

/packages/artplayer-template

Vue.js ​

vue
<template>
   <div ref="artRef"></div>
 </template>
 
@@ -79,7 +80,7 @@
   },
 };
 </script>
-
vue
<template>
+
vue
<template>
   <Artplayer @get-instance="getInstance" :option="option" :style="style" />
 </template>
 
@@ -109,7 +110,7 @@
   },
 };
 </script>
-

Artplayer 非响应式:

在 Vue.js 里直接修改 option 是不会改变播放器的

React.js

jsx
import { useEffect, useRef } from 'react';
+

Artplayer 非响应式:

在 Vue.js 里直接修改 option 是不会改变播放器的

React.js ​

jsx
import { useEffect, useRef } from 'react';
 import Artplayer from 'artplayer';
 
 export default function Player({ option, getInstance, ...rest }) {
@@ -134,7 +135,7 @@
 
     return <div ref={artRef} {...rest}></div>;
 }
-
jsx
import React from 'react';
+
jsx
import React from 'react';
 import Artplayer from './ArtPlayer.jsx';
 
 function App() {
@@ -156,17 +157,17 @@
 }
 
 export default App;
-

Artplayer 非响应式:

在 React.js 里直接修改 option 是不会改变播放器的

语法提示

有时你的 js 文件会丢失 TypeScript 的类型提示,这时候你可以手动导入类型

变量:

js
/**
+

Artplayer 非响应式:

在 React.js 里直接修改 option 是不会改变播放器的

语法提示 ​

有时你的 js 文件会丢失 TypeScript 的类型提示,这时候你可以手动导入类型

变量:

js
/**
  * @type {import("artplayer")}
  */
 let art = null;
-

参数:

js
/**
+

参数:

js
/**
  * @param {import("artplayer")} art
  */
 function getInstance(art) {
   //
 }
-

属性:

js
export default {
+

属性:

js
export default {
   data() {
     return {
       /**
@@ -176,9 +177,9 @@
     }
   }
 }
-
- - + + \ No newline at end of file diff --git a/docs/document/library/dash.html b/docs/document/library/dash.html index f41102d11..5fa32142c 100644 --- a/docs/document/library/dash.html +++ b/docs/document/library/dash.html @@ -5,18 +5,19 @@ dash.js | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

dash.js

👉 https://github.com/Dash-Industry-Forum/dash.js

▶ Run Code
js
function playMpd(video, url, art) {
+    
Skip to content
On this page

dash.js ​

👉 https://github.com/Dash-Industry-Forum/dash.js

▶ Run Code
js
function playMpd(video, url, art) {
     if (dashjs.supportsMediaSource()) {
         const dash = dashjs.MediaPlayer().create();
         dash.initialize(video, url, art.option.autoplay);
@@ -42,9 +43,9 @@
 art.on('ready', () => {
     console.info(art.dash);
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/library/flv.html b/docs/document/library/flv.html index 70a1f2edb..532eaf604 100644 --- a/docs/document/library/flv.html +++ b/docs/document/library/flv.html @@ -5,18 +5,19 @@ flv.js | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

flv.js

👉 https://github.com/Bilibili/flv.js

▶ Run Code
js
function playFlv(video, url, art) {
+    
Skip to content
On this page

flv.js ​

👉 https://github.com/Bilibili/flv.js

▶ Run Code
js
function playFlv(video, url, art) {
     if (flvjs.isSupported()) {
         const flv = flvjs.createPlayer({ type: 'flv', url });
         flv.attachMediaElement(video);
@@ -43,9 +44,9 @@
 art.on('ready', () => {
     console.info(art.flv);
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/library/hls.html b/docs/document/library/hls.html index d4605a145..f7f0889fb 100644 --- a/docs/document/library/hls.html +++ b/docs/document/library/hls.html @@ -5,18 +5,19 @@ hls.js | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

hls.js

👉 https://github.com/video-dev/hls.js

▶ Run Code
js
function playM3u8(video, url, art) {
+    
Skip to content
On this page

hls.js ​

👉 https://github.com/video-dev/hls.js

▶ Run Code
js
function playM3u8(video, url, art) {
     if (Hls.isSupported()) {
         const hls = new Hls();
         hls.loadSource(url);
@@ -45,9 +46,9 @@
 art.on('ready', () => {
     console.info(art.hls);
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/library/webtorrent.html b/docs/document/library/webtorrent.html index 204af8025..4f3e6ad8c 100644 --- a/docs/document/library/webtorrent.html +++ b/docs/document/library/webtorrent.html @@ -5,18 +5,19 @@ webtorrent.js | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

webtorrent.js

👉 https://github.com/webtorrent/webtorrent

▶ Run Code
js
function playTorrent(video, url, art) {
+    
Skip to content
On this page

webtorrent.js ​

👉 https://github.com/webtorrent/webtorrent

▶ Run Code
js
function playTorrent(video, url, art) {
     const torrent = new WebTorrent();
     torrent.add(url, function (torrent) {
         var file = torrent.files[0];
@@ -39,14 +40,14 @@
         torrent: playTorrent,
     },
 });
-
+
 art.on('ready', () => {
     art.video.controls = false;
     console.info(art.torrent);
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/plugin/ads.html b/docs/document/plugin/ads.html index 9a9fac981..4421d1f95 100644 --- a/docs/document/plugin/ads.html +++ b/docs/document/plugin/ads.html @@ -5,24 +5,25 @@ 视频广告 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

视频广告

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-ads
-
bash
yarn add artplayer-plugin-ads
-
bash
pnpm add artplayer-plugin-ads
-
html
<script src="path/to/artplayer-plugin-ads.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
-
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
-

使用

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

视频广告 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-ads
+
bash
yarn add artplayer-plugin-ads
+
bash
pnpm add artplayer-plugin-ads
+
html
<script src="path/to/artplayer-plugin-ads.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
+
bash
https://unpkg.com/artplayer-plugin-ads/dist/artplayer-plugin-ads.js
+

使用 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
@@ -70,9 +71,9 @@
 art.on('artplayerPluginAds:skip', (ads) => {
     console.info(ads);
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/plugin/control-ui.html b/docs/document/plugin/control-ui.html index fb3c20786..5a7ad744b 100644 --- a/docs/document/plugin/control-ui.html +++ b/docs/document/plugin/control-ui.html @@ -5,24 +5,25 @@ 控制器皮肤 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

控制器皮肤

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-control
-
bash
yarn add artplayer-plugin-control
-
bash
pnpm add artplayer-plugin-control
-
html
<script src="path/to/artplayer-plugin-control.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
-
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js
-

使用

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

控制器皮肤 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-control
+
bash
yarn add artplayer-plugin-control
+
bash
pnpm add artplayer-plugin-control
+
html
<script src="path/to/artplayer-plugin-control.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-control/dist/artplayer-plugin-control.js
+
bash
https://unpkg.com/artplayer-plugin-control/dist/artplayer-plugin-control.js
+

使用 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -31,7 +32,7 @@
         artplayerPluginControl(),
     ],
 });
-

enable

  • Type: Getter/Setter
  • Parameter: Boolean

是否启用新的控制器皮肤

▶ Run Code
js
var art = new Artplayer({
+

enable ​

  • Type: Getter/Setter
  • Parameter: Boolean

是否启用新的控制器皮肤

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
@@ -50,9 +51,9 @@
         artplayerPluginControl(),
     ],
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/plugin/danmuku.html b/docs/document/plugin/danmuku.html index cf83f83b3..1efe87079 100644 --- a/docs/document/plugin/danmuku.html +++ b/docs/document/plugin/danmuku.html @@ -5,24 +5,25 @@ 弹幕库 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

弹幕库

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-danmuku
-
bash
yarn add artplayer-plugin-danmuku
-
bash
pnpm add artplayer-plugin-danmuku
-
html
<script src="path/to/artplayer-plugin-danmuku.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
-
bash
https://unpkg.com/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
-

选项

js
{
+    
Skip to content
On this page

弹幕库 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-danmuku
+
bash
yarn add artplayer-plugin-danmuku
+
bash
pnpm add artplayer-plugin-danmuku
+
html
<script src="path/to/artplayer-plugin-danmuku.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
+
bash
https://unpkg.com/artplayer-plugin-danmuku/dist/artplayer-plugin-danmuku.js
+

选项 ​

js
{
     danmuku: [], // 弹幕库,支持数组, xml 地址, Promise返回数组
     speed: 5, // 弹幕持续时间,单位秒,范围在[1 ~ 10]
     opacity: 1, // 弹幕透明度,范围在[0 ~ 1]
@@ -43,7 +44,7 @@
     // 通过 mount 选项可以自定义输入框挂载的位置,默认挂载于播放器底部,仅在当宽度小于最小值时生效
     mount: document.querySelector('.artplayer-danmuku'),
 }
-

使用弹幕数组

▶ Run Code
js
var art = new Artplayer({
+

使用弹幕数组 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -76,7 +77,7 @@
         }),
     ],
 });
-

使用弹幕 XML

▶ Run Code
js
var art = new Artplayer({
+

使用弹幕 XML ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -86,7 +87,7 @@
         }),
     ],
 });
-

使用异步调用

▶ Run Code
js
var art = new Artplayer({
+

使用异步调用 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -113,7 +114,7 @@
         }),
     ],
 });
-

hide/show

通过方法 hide 和 show 进行隐藏或者显示弹幕

▶ Run Code
js
var art = new Artplayer({
+

hide/show ​

通过方法 hide 和 show 进行隐藏或者显示弹幕

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -138,7 +139,7 @@
         },
     ],
 });
-

isHide

通过属性 isHide 判断当前弹幕是隐藏或者显示

▶ Run Code
js
var art = new Artplayer({
+

isHide ​

通过属性 isHide 判断当前弹幕是隐藏或者显示

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -162,7 +163,7 @@
         },
     ],
 });
-

emit

通过方法 emit 发送一条实时弹幕

▶ Run Code
js
var art = new Artplayer({
+

emit ​

通过方法 emit 发送一条实时弹幕

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -187,7 +188,7 @@
         },
     ],
 });
-

config

通过方法 config 实时改变弹幕配置,支持属性有:

  • danmuku
  • speed
  • opacity
  • fontSize
  • color
  • mode
  • margin
  • antiOverlap
  • synchronousPlayback
  • filter
  • lockTime
  • beforeEmit
▶ Run Code
js
var art = new Artplayer({
+

config ​

通过方法 config 实时改变弹幕配置,支持属性有:

  • danmuku
  • speed
  • opacity
  • fontSize
  • color
  • mode
  • margin
  • antiOverlap
  • synchronousPlayback
  • filter
  • lockTime
  • beforeEmit
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -214,7 +215,7 @@
         },
     ],
 });
-

load

通过 load 方法可以重载弹幕源,或者切换新弹幕

▶ Run Code
js
var art = new Artplayer({
+

load ​

通过 load 方法可以重载弹幕源,或者切换新弹幕

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     plugins: [
@@ -242,7 +243,7 @@
         },
     ],
 });
-

reset

用于清空当前显示的弹幕

▶ Run Code
js
var art = new Artplayer({
+

reset ​

用于清空当前显示的弹幕

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -256,7 +257,7 @@
 art.on('resize', () => {
     art.plugins.artplayerPluginDanmuku.reset();
 });
-

option

用于获取当前弹幕配置

▶ Run Code
js
var art = new Artplayer({
+

option ​

用于获取当前弹幕配置

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -270,7 +271,7 @@
 art.on('ready', () => {
     console.info(art.plugins.artplayerPluginDanmuku.option);
 });
-

事件

js
var art = new Artplayer({
+

事件 ​

js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -316,9 +317,9 @@
 art.on('artplayerPluginDanmuku:destroy', () => {
     console.info('弹幕销毁');
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/plugin/dash-quality.html b/docs/document/plugin/dash-quality.html index 5e62e94e0..a11ec0deb 100644 --- a/docs/document/plugin/dash-quality.html +++ b/docs/document/plugin/dash-quality.html @@ -5,26 +5,27 @@ Dash 画质 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

Dash 画质

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-dash-quality
-
bash
yarn add artplayer-plugin-dash-quality
-
bash
pnpm add artplayer-plugin-dash-quality
-
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
-
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
-
- - +
Skip to content
On this page

Dash 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-dash-quality
+
bash
yarn add artplayer-plugin-dash-quality
+
bash
pnpm add artplayer-plugin-dash-quality
+
html
<script src="path/to/artplayer-plugin-dash-quality.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
+
bash
https://unpkg.com/artplayer-plugin-dash-quality/dist/artplayer-plugin-dash-quality.js
+
+ \ No newline at end of file diff --git a/docs/document/plugin/hls-quality.html b/docs/document/plugin/hls-quality.html index f6f9c8976..3f7546ed0 100644 --- a/docs/document/plugin/hls-quality.html +++ b/docs/document/plugin/hls-quality.html @@ -5,26 +5,27 @@ HLS 画质 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

HLS 画质

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-hls-quality
-
bash
yarn add artplayer-plugin-hls-quality
-
bash
pnpm add artplayer-plugin-hls-quality
-
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
-
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
-
- - +
Skip to content
On this page

HLS 画质 ​

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-hls-quality
+
bash
yarn add artplayer-plugin-hls-quality
+
bash
pnpm add artplayer-plugin-hls-quality
+
html
<script src="path/to/artplayer-plugin-hls-quality.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
+
bash
https://unpkg.com/artplayer-plugin-hls-quality/dist/artplayer-plugin-hls-quality.js
+
+ \ No newline at end of file diff --git a/docs/document/plugin/iframe.html b/docs/document/plugin/iframe.html index a600c555e..91c48dd79 100644 --- a/docs/document/plugin/iframe.html +++ b/docs/document/plugin/iframe.html @@ -5,24 +5,25 @@ Iframe 控制 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

Iframe 控制

说明

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示

👉 查看完整演示

安装

bash
npm install artplayer-plugin-iframe
-
bash
yarn add artplayer-plugin-iframe
-
bash
pnpm add artplayer-plugin-iframe
-
html
<script src="path/to/artplayer-plugin-iframe.js"></script>
-

CDN

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
-
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
-

使用

html
<!DOCTYPE html>
+    
Skip to content
On this page

Iframe 控制 ​

说明 ​

通过该插件,你可以轻松在 index.html 里控制跨域 iframe.html 页面里的播放器,如在 index.html 里通过代码控制 iframe.html 播放器的功能,或者获取 iframe.html 播放器的值

演示 ​

👉 查看完整演示

安装 ​

bash
npm install artplayer-plugin-iframe
+
bash
yarn add artplayer-plugin-iframe
+
bash
pnpm add artplayer-plugin-iframe
+
html
<script src="path/to/artplayer-plugin-iframe.js"></script>
+

CDN ​

bash
https://cdn.jsdelivr.net/npm/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
+
bash
https://unpkg.com/artplayer-plugin-iframe/dist/artplayer-plugin-iframe.js
+

使用 ​

html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -49,7 +50,7 @@
         </script>
     </body>
 </html>
-
html
<!DOCTYPE html>
+
html
<!DOCTYPE html>
 <html>
     <head>
         <title>ArtPlayer</title>
@@ -74,7 +75,7 @@
         </script>
     </body>
 </html>
-

index.html 接口

commit

从 index.html 将消息推送到 iframe.html,该函数将在 iframe.html 内部运行,同时它也能用于异步获取 iframe.html 里的值

js
iframe.commit(() => {
+

index.html 接口 ​

commit ​

从 index.html 将消息推送到 iframe.html,该函数将在 iframe.html 内部运行,同时它也能用于异步获取 iframe.html 里的值

js
iframe.commit(() => {
     var art = new Artplayer({
         container: '.artplayer-app',
         url: 'path/to/video.mp4',
@@ -99,12 +100,12 @@
         }, 1000);
     });
 })();
-

message

在 index.html 接收来自 iframe.html 的消息

js
iframe.message((event) => {
+

message ​

在 index.html 接收来自 iframe.html 的消息

js
iframe.message((event) => {
     console.info(event);
 });
-

destroy

销毁后 index.html 无法与 iframe.html 通信

js
iframe.destroy();
-

iframe.html 接口

提示

iframe.html 接口 只能运行在 iframe.html 里

inject

注入脚本,接收来自 index.html 的消息

js
ArtplayerPluginIframe.inject();
-

postMessage

将消息推送到 index.html

js
iframe.message((event) => {
+

destroy ​

销毁后 index.html 无法与 iframe.html 通信

js
iframe.destroy();
+

iframe.html 接口 ​

提示

iframe.html 接口 只能运行在 iframe.html 里

inject ​

注入脚本,接收来自 index.html 的消息

js
ArtplayerPluginIframe.inject();
+

postMessage ​

将消息推送到 index.html

js
iframe.message((event) => {
     console.info(event);
 });
 
@@ -114,7 +115,7 @@
         data: art.currentTime,
     });
 });
-

例子

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html

+

例子 ​

最常遇到的问题是,播放器在 iframe.html 里进行网页全屏,但在 index.html 是不生效的,这时候只要监听 iframe.html 里的 fullscreenWeb 事件并通知到 index.html 即可

html

 <!DOCTYPE html>
 <html>
     <head>
@@ -137,8 +138,9 @@
             }
         </style>
         <script>
+            const $iframe = document.querySelector('#iframe');
             const iframe = new ArtplayerPluginIframe({
-                iframe: document.querySelector('#iframe'),
+                iframe: $iframe,
                 url: 'path/to/iframe.html',
             });
 
@@ -173,7 +175,7 @@
     </body>
 </html>
 
-
html

+
html

 <!DOCTYPE html>
 <html>
     <head>
@@ -199,9 +201,9 @@
     </body>
 </html>
 
-
- - +
+ \ No newline at end of file diff --git a/docs/document/start/component.html b/docs/document/start/component.html index af864203f..6de9dfc1e 100644 --- a/docs/document/start/component.html +++ b/docs/document/start/component.html @@ -5,18 +5,19 @@ 组件配置 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

组件配置

这里所说的组件配置主要是指:layers , controls , contextmenu 这三个共用的配置:

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

提示

  • 当前组件只能添加,并没有销毁的功能
  • 通过 name 选项可以快速获取组件的 DOM 元素
  • 通过 index 选项可以控制组件出现的顺序

layers

实例化时添加一个层,例如可以添加 logo 或者 广告 等等

▶ Run Code
js
var img = '/assets/sample/layer.png';
+    
Skip to content
On this page

组件配置 ​

这里所说的组件配置主要是指:layers , controls , contextmenu 这三个共用的配置:

属性类型描述
disableBoolean是否禁用组件
nameString组件唯一名称,用于标记类名
indexNumber组件索引,用于显示的优先级
htmlString, Element组件的 DOM 元素
styleObject组件样式对象
clickFunction组件点击事件
mountedFunction组件挂载后触发
tooltipString组件的提示文本

提示

  • 当前组件只能添加,并没有销毁的功能
  • 通过 name 选项可以快速获取组件的 DOM 元素
  • 通过 index 选项可以控制组件出现的顺序

layers ​

实例化时添加一个层,例如可以添加 logo 或者 广告 等等

▶ Run Code
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -41,7 +42,7 @@
 });
 
 console.info(art.layers.potser);
-

也可以实例化之后添加一个层

▶ Run Code
js
var img = '/assets/sample/layer.png';
+

也可以实例化之后添加一个层

▶ Run Code
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -65,7 +66,7 @@
 });
 
 console.info(art.layers.potser);
-

controls

实例化时添加一个控制器

controls 还有三个额外的选项

  • position: left 和 right 控制控制器出现的左右位置
  • selector: 选择列表的对象数组
  • onSelect: 选择列表的元素被点击时触发的函数
▶ Run Code
js
var art = new Artplayer({
+

controls ​

实例化时添加一个控制器

controls 还有三个额外的选项

  • position: left 和 right 控制控制器出现的左右位置
  • selector: 选择列表的对象数组
  • onSelect: 选择列表的元素被点击时触发的函数
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -108,7 +109,7 @@
 
 console.info(art.controls['your-button']);
 console.info(art.controls.subtitle);
-

也可以实例化之后添加一个控制器

js
var art = new Artplayer({
+

也可以实例化之后添加一个控制器

js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -129,9 +130,9 @@
         console.info('mounted', args);
     },
 });
-
+
 console.info(art.controls.button1);
-

contextmenu

实例化时添加一个右键菜单

▶ Run Code
js
var art = new Artplayer({
+

contextmenu ​

实例化时添加一个右键菜单

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -147,7 +148,7 @@
 });
 
 console.info(art.contextmenu['your-menu']);
-

也可以实例化之后添加一个右键菜单

▶ Run Code
js
var art = new Artplayer({
+

也可以实例化之后添加一个右键菜单

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
@@ -162,9 +163,9 @@
 });
 
 console.info(art.contextmenu['your-menu']);
-
- - +
+ \ No newline at end of file diff --git a/docs/document/start/option.html b/docs/document/start/option.html index 59bc552af..c0f694e65 100644 --- a/docs/document/start/option.html +++ b/docs/document/start/option.html @@ -5,46 +5,47 @@ 基础选项 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

基础选项

container

  • Type: String, Element
  • Default: #artplayer

播放器挂载的 DOM 容器

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

基础选项 ​

container ​

  • Type: String, Element
  • Default: #artplayer

播放器挂载的 DOM 容器

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app', 
     // container: document.querySelector('.artplayer-app'),
     url: '/assets/sample/video.mp4',
 });
-

您可能需要初始化容器元素的大小,如:

css
.artplayer-app {
+

您可能需要初始化容器元素的大小,如:

css
.artplayer-app {
     width: 400px;
     height: 300px;
 }
-

或者使用 aspect-ratio:

css
.artplayer-app {
+

或者使用 aspect-ratio:

css
.artplayer-app {
     aspect-ratio: 16/9;
 }
-

提示

全部选项里,只有 container 是必填的

url

  • Type: String
  • Default: ''

视频源地址

▶ Run Code
js
var art = new Artplayer({
+

提示

全部选项里,只有 container 是必填的

url ​

  • Type: String
  • Default: ''

视频源地址

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
-

有时候 url 地址没那么快知道,这时候你可以异步设置 url

▶ Run Code
js
var art = new Artplayer({
+

有时候 url 地址没那么快知道,这时候你可以异步设置 url

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
 });
 
 setTimeout(() => {
     art.url = '/assets/sample/video.mp4';
 }, 1000);
-

提示

默认支持三种视频文件格式:.mp4, .ogg, .webm

如需要播放 .m3u8 或者 .flv 等其它格式,请参考左侧的 第三方库

id

  • Type: String
  • Default: ''

播放器的唯一标识,目前只用于记忆播放 autoplayback

▶ Run Code
js
var art = new Artplayer({
+

提示

默认支持三种视频文件格式:.mp4, .ogg, .webm

如需要播放 .m3u8 或者 .flv 等其它格式,请参考左侧的 第三方库

id ​

  • Type: String
  • Default: ''

播放器的唯一标识,目前只用于记忆播放 autoplayback

▶ Run Code
js
var art = new Artplayer({
     id: 'your-url-id',
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 });
-

onReady

  • Type: Function
  • Default: undefined

构造函数接受一个函数作为第二个参数,播放器初始化成功且视频可以播放时触发,和ready事件一样

▶ Run Code
js
var art = new Artplayer(
+

onReady ​

  • Type: Function
  • Default: undefined

构造函数接受一个函数作为第二个参数,播放器初始化成功且视频可以播放时触发,和ready事件一样

▶ Run Code
js
var art = new Artplayer(
     {
         container: '.artplayer-app',
         url: '/assets/sample/video.mp4',
@@ -54,7 +55,7 @@
         this.play()
     },
 );
-

等同于:

js
var art = new Artplayer({
+

等同于:

js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
@@ -63,112 +64,112 @@
 art.on('ready', () => {
     art.play();
 });
-

提示

回调函数里的this就是播放器实例,但回调函数假如使用了箭头函数,this则不会指向播放器实例

poster

  • Type: String
  • Default: ''

视频的海报,只会出现在播放器初始化且未播放的状态下

▶ Run Code
js
var art = new Artplayer({
+

提示

回调函数里的this就是播放器实例,但回调函数假如使用了箭头函数,this则不会指向播放器实例

poster ​

  • Type: String
  • Default: ''

视频的海报,只会出现在播放器初始化且未播放的状态下

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     poster: '/assets/sample/poster.jpg',
 });
-

title

  • Type: String
  • Default: ''

视频标题,目前会出现在 视频截图 和 迷你模式 下

▶ Run Code
js
var art = new Artplayer({
+

title ​

  • Type: String
  • Default: ''

视频标题,目前会出现在 视频截图 和 迷你模式 下

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     title: 'your-video-title',
     screenshot: true,
 });
-

theme

  • Type: String
  • Default: #f00

播放器主题颜色,目前用于 进度条 和 高亮元素 上

▶ Run Code
js
var art = new Artplayer({
+

theme ​

  • Type: String
  • Default: #f00

播放器主题颜色,目前用于 进度条 和 高亮元素 上

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     theme: '#ffad00',
 });
-

volume

  • Type: Number
  • Default: 0.7

播放器的默认音量

▶ Run Code
js
var art = new Artplayer({
+

volume ​

  • Type: Number
  • Default: 0.7

播放器的默认音量

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     volume: 0.5,
 });
-

提示

播放器会缓存最后一次音量的大小,下次初始化时(如刷新页面)播放器会读取该缓存值

isLive

  • Type: Boolean
  • Default: false

使用直播模式,会隐藏进度条和播放时间

▶ Run Code
js
var art = new Artplayer({
+

提示

播放器会缓存最后一次音量的大小,下次初始化时(如刷新页面)播放器会读取该缓存值

isLive ​

  • Type: Boolean
  • Default: false

使用直播模式,会隐藏进度条和播放时间

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     isLive: true,
 });
-

muted

  • Type: Boolean
  • Default: false

是否默认静音

▶ Run Code
js
var art = new Artplayer({
+

muted ​

  • Type: Boolean
  • Default: false

是否默认静音

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     muted: true,
 });
-

autoplay

  • Type: Boolean
  • Default: false

是否自动播放

▶ Run Code
js
var art = new Artplayer({
+

autoplay ​

  • Type: Boolean
  • Default: false

是否自动播放

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoplay: true,
     muted: true,
 });
-

提示

假如希望默认进入页面就能自动播放视频,muted 必需为 true,更多信息请阅读 Autoplay Policy Changes

autoSize

  • Type: Boolean
  • Default: false

播放器的尺寸默认会填充整个 container 容器尺寸,所以经常出现黑边,该值能自动调整播放器尺寸以隐藏黑边,类似 css 的 object-fit: cover;

▶ Run Code
js
var art = new Artplayer({
+

提示

假如希望默认进入页面就能自动播放视频,muted 必需为 true,更多信息请阅读 Autoplay Policy Changes

autoSize ​

  • Type: Boolean
  • Default: false

播放器的尺寸默认会填充整个 container 容器尺寸,所以经常出现黑边,该值能自动调整播放器尺寸以隐藏黑边,类似 css 的 object-fit: cover;

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoSize: true,
 });
-

autoMini

  • Type: Boolean
  • Default: false

当播放器滚动到浏览器视口以外时,自动进入 迷你播放 模式

▶ Run Code
js
var art = new Artplayer({
+

autoMini ​

  • Type: Boolean
  • Default: false

当播放器滚动到浏览器视口以外时,自动进入 迷你播放 模式

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoMini: true,
 });
-

loop

  • Type: Boolean
  • Default: false

是否循环播放

▶ Run Code
js
var art = new Artplayer({
+

loop ​

  • Type: Boolean
  • Default: false

是否循环播放

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     loop: true,
 });
-

flip

  • Type: Boolean
  • Default: false

是否显示视频翻转功能,目前只出现在 设置面板 和 右键菜单 里

▶ Run Code
js
var art = new Artplayer({
+

flip ​

  • Type: Boolean
  • Default: false

是否显示视频翻转功能,目前只出现在 设置面板 和 右键菜单 里

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     flip: true,
     setting: true,
 });
-

playbackRate

  • Type: Boolean
  • Default: false

是否显示视频播放速度功能,会出现在 设置面板 和 右键菜单 里

▶ Run Code
js
var art = new Artplayer({
+

playbackRate ​

  • Type: Boolean
  • Default: false

是否显示视频播放速度功能,会出现在 设置面板 和 右键菜单 里

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     playbackRate: true,
     setting: true,
 });
-

aspectRatio

  • Type: Boolean
  • Default: false

是否显示视频长宽比功能,会出现在 设置面板 和 右键菜单 里

▶ Run Code
js
var art = new Artplayer({
+

aspectRatio ​

  • Type: Boolean
  • Default: false

是否显示视频长宽比功能,会出现在 设置面板 和 右键菜单 里

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     aspectRatio: true,
     setting: true,
 });
-

screenshot

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示 视频截图 功能

▶ Run Code
js
var art = new Artplayer({
+

screenshot ​

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示 视频截图 功能

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     screenshot: true,
 });
-

提示

由于浏览器安全机制,假如视频源地址和网站是跨域的,可能会出现截图失败

setting

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示 设置面板 的开关按钮

▶ Run Code
js
var art = new Artplayer({
+

提示

由于浏览器安全机制,假如视频源地址和网站是跨域的,可能会出现截图失败

setting ​

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示 设置面板 的开关按钮

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
 });
-

hotkey

  • Type: Boolean
  • Default: true

是否使用快捷键

▶ Run Code
js
var art = new Artplayer({
+

hotkey ​

  • Type: Boolean
  • Default: true

是否使用快捷键

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     hotkey: true,
 });
-
热键描述
↑增加音量
↓降低音量
←视频快进
→视频快退
space切换播放/暂停

提示

只在播放器获得焦点后(如点击了播放器后),这些快捷键才会生效

pip

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示 画中画 的开关按钮

▶ Run Code
js
var art = new Artplayer({
+
热键描述
↑增加音量
↓降低音量
←视频快进
→视频快退
space切换播放/暂停

提示

只在播放器获得焦点后(如点击了播放器后),这些快捷键才会生效

pip ​

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示 画中画 的开关按钮

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     pip: true,
 });
-

mutex

  • Type: Boolean
  • Default: true

假如页面里同时存在多个播放器,是否只能让一个播放器播放

▶ Run Code
js
var art = new Artplayer({
+

mutex ​

  • Type: Boolean
  • Default: true

假如页面里同时存在多个播放器,是否只能让一个播放器播放

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     mutex: true,
 });
-

fullscreen

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示播放器 窗口全屏 按钮

▶ Run Code
js
var art = new Artplayer({
+

fullscreen ​

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示播放器 窗口全屏 按钮

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreen: true,
 });
-

fullscreenWeb

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示播放器 网页全屏 按钮

▶ Run Code
js
var art = new Artplayer({
+

fullscreenWeb ​

  • Type: Boolean
  • Default: false

是否在底部控制栏里显示播放器 网页全屏 按钮

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fullscreenWeb: true,
 });
-

subtitleOffset

  • Type: Boolean
  • Default: false

字幕时间偏移,范围在 [-5s, 5s],出现在 设置面板 里

▶ Run Code
js
var art = new Artplayer({
+

subtitleOffset ​

  • Type: Boolean
  • Default: false

字幕时间偏移,范围在 [-5s, 5s],出现在 设置面板 里

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitleOffset: true,
@@ -177,12 +178,12 @@
     },
     setting: true,
 });
-

miniProgressBar

  • Type: Boolean
  • Default: false

迷你进度条,只在播放器失去焦点后且正在播放时出现

▶ Run Code
js
var art = new Artplayer({
+

miniProgressBar ​

  • Type: Boolean
  • Default: false

迷你进度条,只在播放器失去焦点后且正在播放时出现

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     miniProgressBar: true,
 });
-

useSSR

  • Type: Boolean
  • Default: false

是否使用 SSR 挂载模式,假如你希望在播放器挂载前,就提前渲染好播放器所需的 HTML 时有用

你可以通过 Artplayer.html 访问到播放器所需的 HTML

▶ Run Code
js
var $container = document.querySelector('.artplayer-app');
+

useSSR ​

  • Type: Boolean
  • Default: false

是否使用 SSR 挂载模式,假如你希望在播放器挂载前,就提前渲染好播放器所需的 HTML 时有用

你可以通过 Artplayer.html 访问到播放器所需的 HTML

▶ Run Code
js
var $container = document.querySelector('.artplayer-app');
 $container.innerHTML = Artplayer.html;
 
 var art = new Artplayer({
@@ -190,12 +191,12 @@
     url: '/assets/sample/video.mp4',
     useSSR: true,
 });
-

playsInline

  • Type: Boolean
  • Default: true

在移动端是否使用 playsInline 模式

▶ Run Code
js
var art = new Artplayer({
+

playsInline ​

  • Type: Boolean
  • Default: true

在移动端是否使用 playsInline 模式

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     playsInline: true,
 });
-

layers

  • Type: Array
  • Default: []

初始化自定义的 层

▶ Run Code
js
var img = '/assets/sample/layer.png';
+

layers ​

  • Type: Array
  • Default: []

初始化自定义的 层

▶ Run Code
js
var img = '/assets/sample/layer.png';
 var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
@@ -219,7 +220,7 @@
         },
     ],
 });
-

组件配置 请参考以下地址:

/start/component.html

settings

  • Type: Array
  • Default: []

初始化自定义的 设置面板

▶ Run Code
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

settings ​

  • Type: Array
  • Default: []

初始化自定义的 设置面板

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -254,7 +255,7 @@
         },
     ],
 });
-

设置面板 请参考以下地址

/start/setting.html

contextmenu

  • Type: Array
  • Default: []

初始化自定义的 右键菜单

▶ Run Code
js
var art = new Artplayer({
+

设置面板 请参考以下地址

/start/setting.html

contextmenu ​

  • Type: Array
  • Default: []

初始化自定义的 右键菜单

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     contextmenu: [
@@ -267,7 +268,7 @@
         },
     ],
 });
-

组件配置 请参考以下地址:

/start/component.html- Type:

controls

  • Type: Array
  • Default: []

初始化自定义的底部 控制栏

▶ Run Code
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html- Type:

controls ​

  • Type: Array
  • Default: []

初始化自定义的底部 控制栏

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     controls: [
@@ -284,7 +285,7 @@
         },
     ],
 });
-

组件配置 请参考以下地址:

/start/component.html

quality

  • Type: Array
  • Default: []

是否在底部控制栏里显示 画质选择 列表

属性类型描述
defaultBoolean默认画质
htmlString画质名字
urlString画质地址
▶ Run Code
js
var art = new Artplayer({
+

组件配置 请参考以下地址:

/start/component.html

quality ​

  • Type: Array
  • Default: []

是否在底部控制栏里显示 画质选择 列表

属性类型描述
defaultBoolean默认画质
htmlString画质名字
urlString画质地址
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     quality: [
@@ -299,7 +300,7 @@
         },
     ],
 });
-

highlight

  • Type: Array
  • Default: []

在进度条上显示 高亮信息

属性类型描述
timeNumber高亮时间(单位秒)
textString高亮文本
▶ Run Code
js
var art = new Artplayer({
+

highlight ​

  • Type: Array
  • Default: []

在进度条上显示 高亮信息

属性类型描述
timeNumber高亮时间(单位秒)
textString高亮文本
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     highlight: [
@@ -325,7 +326,7 @@
         },
     ],
 });
-

plugins

  • Type: Array
  • Default: []

初始化自定义的 插件

▶ Run Code
js
function myPlugin(art) {
+

plugins ​

  • Type: Array
  • Default: []

初始化自定义的 插件

▶ Run Code
js
function myPlugin(art) {
     console.info(art);
     return {
         name: 'myPlugin',
@@ -341,14 +342,14 @@
     url: '/assets/sample/video.mp4',
     plugins: [myPlugin],
 });
-

whitelist

  • Type: Array
  • Default: []

因为不同的移动设备存在多种差异和限制,有时候你希望在某些移动设备上不使用本播放器,而是直接使用原生的功能时,可以通过该选项控制

白名单是一个数组类型,分别与 window.navigator.userAgent 进行匹配,只要其中一项匹配成功则启用播放器

支持 字符串 匹配, 函数 匹配, 正则 匹配

▶ Run Code
js
var art = new Artplayer({
+

whitelist ​

  • Type: Array
  • Default: []

因为不同的移动设备存在多种差异和限制,有时候你希望在某些移动设备上不使用本播放器,而是直接使用原生的功能时,可以通过该选项控制

白名单是一个数组类型,分别与 window.navigator.userAgent 进行匹配,只要其中一项匹配成功则启用播放器

支持 字符串 匹配, 函数 匹配, 正则 匹配

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     whitelist: [(ua) => /iPhone/gi.test(ua)],
     // whitelist: [/iPhone/gi],
     // whitelist: ['iPhone'],
 });
-

提示

假如该选项不填,则默认使用本播放器

thumbnails

  • Type: Object
  • Default: {}

在进度条上设置 预览图

属性类型描述
urlString预览图地址
numberNumber预览图数量
columnNumber预览图列数
widthNumber预览图宽度
heightNumber预览图高度
▶ Run Code
js
var art = new Artplayer({
+

提示

假如该选项不填,则默认使用本播放器

thumbnails ​

  • Type: Object
  • Default: {}

在进度条上设置 预览图

属性类型描述
urlString预览图地址
numberNumber预览图数量
columnNumber预览图列数
widthNumber预览图宽度
heightNumber预览图高度
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     thumbnails: {
@@ -357,7 +358,7 @@
         column: 10,
     },
 });
-

在线生成预览图

artplayer-tool-thumbnail

subtitle

  • Type: Object
  • Default: {}

设置视频的字幕,支持字幕格式:vtt, srt, ass

属性类型描述
urlString字幕地址
typeString字幕类型,可选 vtt, srt, ass
styleObject字幕样式
encodingString字幕编码,默认 utf-8
escapeBoolean是否转义 html 标签,默认为 true
▶ Run Code
js
var art = new Artplayer({
+

在线生成预览图

artplayer-tool-thumbnail

subtitle ​

  • Type: Object
  • Default: {}

设置视频的字幕,支持字幕格式:vtt, srt, ass

属性类型描述
urlString字幕地址
typeString字幕类型,可选 vtt, srt, ass
styleObject字幕样式
encodingString字幕编码,默认 utf-8
escapeBoolean是否转义 html 标签,默认为 true
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     subtitle: {
@@ -371,7 +372,7 @@
         },
     },
 });
-

moreVideoAttr

  • Type: Object
  • Default: {'controls': false,'preload': 'metadata'}

更多视频属性,这些属性将直接写入视频元素里

▶ Run Code
js
var art = new Artplayer({
+

moreVideoAttr ​

  • Type: Object
  • Default: {'controls': false,'preload': 'metadata'}

更多视频属性,这些属性将直接写入视频元素里

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     moreVideoAttr: {
@@ -379,7 +380,7 @@
         playsInline: true,
     },
 });
-

icons

  • Type: Object
  • Default: {}

用于替换默认图标,支持 Html 字符串和 HTMLElement

▶ Run Code
js
var art = new Artplayer({
+

icons ​

  • Type: Object
  • Default: {}

用于替换默认图标,支持 Html 字符串和 HTMLElement

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     icons: {
@@ -387,12 +388,12 @@
         state: '<img src="/assets/img/state.png">',
     },
 });
-

全部图标的定义

artplayer/types/icons.d.ts

type

  • Type: String
  • Default: ''

用于指明视频的格式,需要配合 customType 一起使用,默认视频的格式就是视频地址的后缀(如 .m3u8, .mkv, .ts),但有时候视频地地址没有正确的后缀,所以需要特别指明

▶ Run Code
js
var art = new Artplayer({
+

全部图标的定义

artplayer/types/icons.d.ts

type ​

  • Type: String
  • Default: ''

用于指明视频的格式,需要配合 customType 一起使用,默认视频的格式就是视频地址的后缀(如 .m3u8, .mkv, .ts),但有时候视频地地址没有正确的后缀,所以需要特别指明

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.m3u8',
     type: 'm3u8',
 });
-

后缀的识别

播放器只能解析这种后缀:/assets/sample/video.m3u8

但无法解析这种后缀:/assets/sample/video?type=m3u8

所以假如你使用了 customType,最好同时要指明 type

customType

  • Type: Object
  • Default: {}

通过视频的 type 进行匹配,把视频解码权交给第三方程序进行处理,处理的函数能接收三个参数

  • video : 视频 DOM 元素
  • url : 视频地址
  • art : 当前实例
▶ Run Code
js
var art = new Artplayer({
+

后缀的识别

播放器只能解析这种后缀:/assets/sample/video.m3u8

但无法解析这种后缀:/assets/sample/video?type=m3u8

所以假如你使用了 customType,最好同时要指明 type

customType ​

  • Type: Object
  • Default: {}

通过视频的 type 进行匹配,把视频解码权交给第三方程序进行处理,处理的函数能接收三个参数

  • video : 视频 DOM 元素
  • url : 视频地址
  • art : 当前实例
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.m3u8',
     customType: {
@@ -401,12 +402,12 @@
         },
     },
 });
-

lang

  • Type: String
  • Default: navigator.language.toLowerCase()

默认显示语言,目前支持:en, zh-cn, zh-tw, cs, pl, es, fa, fr, id

▶ Run Code
js
var art = new Artplayer({
+

lang ​

  • Type: String
  • Default: navigator.language.toLowerCase()

默认显示语言,目前支持:en, zh-cn, zh-tw, cs, pl, es, fa, fr, id

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lang: 'en',
 });
-

i18n

  • Type: Object
  • Default: {}

自定义 i18n 配置,该配置会和自带的 i18n 进行深度合并

新增你的语言:

▶ Run Code
js
var art = new Artplayer({
+

i18n ​

  • Type: Object
  • Default: {}

自定义 i18n 配置,该配置会和自带的 i18n 进行深度合并

新增你的语言:

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lang: 'your-lang',
@@ -416,7 +417,7 @@
         },
     },
 });
-

修改现有的语言

▶ Run Code
js
var art = new Artplayer({
+

修改现有的语言

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     i18n: {
@@ -428,35 +429,35 @@
         },
     },
 });
-

i18n 写法参考

artplayer/types/i18n.d.ts

lock

  • Type: Boolean
  • Default: false

是否在移动端显示一个 锁定按钮 ,用于隐藏底部 控制栏

▶ Run Code
js
var art = new Artplayer({
+

i18n 写法参考

artplayer/types/i18n.d.ts

lock ​

  • Type: Boolean
  • Default: false

是否在移动端显示一个 锁定按钮 ,用于隐藏底部 控制栏

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     lock: true,
 });
-

fastForward

  • Type: Boolean
  • Default: false

是否在移动端添加长按视频快进功能

▶ Run Code
js
var art = new Artplayer({
+

fastForward ​

  • Type: Boolean
  • Default: false

是否在移动端添加长按视频快进功能

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     fastForward: true,
 });
-

autoPlayback

  • Type: Boolean
  • Default: false

是否使用自动 回放功能

▶ Run Code
js
var art = new Artplayer({
+

autoPlayback ​

  • Type: Boolean
  • Default: false

是否使用自动 回放功能

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     id: 'your-url-id',
     autoPlayback: true,
 });
-

提示

因为播放器默认使用 url 作为 key 来缓存播放进度的

但假如你的同一个视频的 url 是不同的话,那么你需要使用 id 来标识视频的唯一 key

autoOrientation

  • Type: Boolean
  • Default: false

是否在移动端的网页全屏时,根据视频尺寸和视口尺寸,旋转播放器

▶ Run Code
js
var art = new Artplayer({
+

提示

因为播放器默认使用 url 作为 key 来缓存播放进度的

但假如你的同一个视频的 url 是不同的话,那么你需要使用 id 来标识视频的唯一 key

autoOrientation ​

  • Type: Boolean
  • Default: false

是否在移动端的网页全屏时,根据视频尺寸和视口尺寸,旋转播放器

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     autoOrientation: true,
 });
-

airplay

  • Type: Boolean
  • Default: false

是否显示 airplay 按钮,当前只有部分浏览器支持该功能

▶ Run Code
js
var art = new Artplayer({
+

airplay ​

  • Type: Boolean
  • Default: false

是否显示 airplay 按钮,当前只有部分浏览器支持该功能

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     airplay: true,
 });
-
- - +
+ \ No newline at end of file diff --git a/docs/document/start/setting.html b/docs/document/start/setting.html index 4acf7fefa..868e5bdca 100644 --- a/docs/document/start/setting.html +++ b/docs/document/start/setting.html @@ -5,18 +5,19 @@ 设置面板 | Artplayer.js - - - - - - + + + + + + + -
Skip to content
On this page

设置面板

需先打开设置面板,播放器默认自带四个设置项:flip, playbackRate, aspectRatio, subtitleOffset

▶ Run Code
js
var art = new Artplayer({
+    
Skip to content
On this page

设置面板 ​

需先打开设置面板,播放器默认自带四个设置项:flip, playbackRate, aspectRatio, subtitleOffset

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
 	setting: true,
@@ -25,7 +26,7 @@
     aspectRatio: true,
     subtitleOffset: true,
 });
-

选择列表

属性类型描述
htmlString, Element元素的 DOM
iconString, Element元素的图标
selectorArray元素列表
onSelectFunction元素点击事件
widthNumber列表宽度
tooltipString提示文本
▶ Run Code
js
var art = new Artplayer({
+

选择列表 ​

属性类型描述
htmlString, Element元素的 DOM
iconString, Element元素的图标
selectorArray元素列表
onSelectFunction元素点击事件
widthNumber列表宽度
tooltipString提示文本
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -78,7 +79,7 @@
         },
     ],
 });
-

列表嵌套

▶ Run Code
js
var art = new Artplayer({
+

列表嵌套 ​

▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -122,7 +123,7 @@
         },
     ],
 });
-

切换按钮

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
switchBoolean按钮默认状态
onSwitchFunction按钮切换事件
tooltipString提示文本
▶ Run Code
js
var art = new Artplayer({
+

切换按钮 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
switchBoolean按钮默认状态
onSwitchFunction按钮切换事件
tooltipString提示文本
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -142,12 +143,12 @@
         },
     ],
 });
-

范围滑块

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
rangeArray默认状态数组
onRangeFunction完成时触发的事件
onChangeFunction变化时触发的事件
tooltipString提示文本
js
const range = [5, 1, 10, 1];
+

范围滑块 ​

属性类型描述
htmlString, Element元素的 DOM 元素
iconString, Element元素的图标
rangeArray默认状态数组
onRangeFunction完成时触发的事件
onChangeFunction变化时触发的事件
tooltipString提示文本
js
const range = [5, 1, 10, 1];
 const value = range[0];
 const min = range[1];
 const max = range[2];
 const step = range[3];
-
▶ Run Code
js
var art = new Artplayer({
+
▶ Run Code
js
var art = new Artplayer({
     container: '.artplayer-app',
     url: '/assets/sample/video.mp4',
     setting: true,
@@ -164,9 +165,9 @@
         },
     ],
 });
-
- - +
+ \ No newline at end of file diff --git a/packages/artplayer-vitepress/docs/en/plugin/iframe.md b/packages/artplayer-vitepress/docs/en/plugin/iframe.md index 393ff7135..ad95f73d5 100644 --- a/packages/artplayer-vitepress/docs/en/plugin/iframe.md +++ b/packages/artplayer-vitepress/docs/en/plugin/iframe.md @@ -223,8 +223,9 @@ iframe.commit(() => { }