mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-28 02:01:20 -08:00
feat: enhance Artplayer type definitions and improve component interfaces
- Updated Artplayer class to specify environment as 'development' | 'production'. - Refined template query method to return specific element types. - Improved event proxy method to handle multiple event names. - Enhanced storage get method to support both key retrieval and full record retrieval. - Modified i18n interface to include language initialization and partial language records. - Adjusted notice interface to provide a getter for show state and a setter for messages. - Updated layers, controls, and contextmenu to allow undefined elements. - Enhanced subtitle interface with initialization method. - Refined hotkey methods to use KeyboardEvent instead of Event. - Updated setting methods to return updated settings instead of arrays. - Improved plugin method to return a promise. - Added new events for video handling and refined existing event parameters. - Enhanced option interface for proxy and plugins to support promises. - Updated player interface to include reset method. - Refined setting props to allow optional values. - Enhanced template interface with additional control elements. - Improved utils methods for querying and manipulating DOM elements. fix: update type definitions for notice and subtitle properties, and refine event types fix: remove unnecessary console warnings in event listener error handling fix: refactor event listener management to use Set for better performance and error handling
This commit is contained in:
1 parent
f5f3800449
commit
4681a8bc7a
16 files changed
+152
-94
No files matched your search
@@ -359,8 +359,12 @@ class Artplayer extends (0, _emitterDefault.default) {
|
|||||||
get video() {
|
get video() {
|
||||||
return this.template.$video;
|
return this.template.$video;
|
||||||
}
|
}
|
||||||
|
reset() {
|
||||||
|
this.video.removeAttribute('src');
|
||||||
|
this.video.load();
|
||||||
|
}
|
||||||
destroy(removeHtml = true) {
|
destroy(removeHtml = true) {
|
||||||
if (Artplayer.REMOVE_SRC_WHEN_DESTROY) this.video.removeAttribute('src');
|
if (Artplayer.REMOVE_SRC_WHEN_DESTROY) this.reset();
|
||||||
this.events.destroy();
|
this.events.destroy();
|
||||||
this.template.destroy(removeHtml);
|
this.template.destroy(removeHtml);
|
||||||
instances.splice(instances.indexOf(this), 1);
|
instances.splice(instances.indexOf(this), 1);
|
||||||
@@ -574,7 +578,7 @@ module.exports = ".art-video-player {\n --art-theme: red;\n --art-font-color:
|
|||||||
});
|
});
|
||||||
|
|
||||||
},{}],"3r4tp":[function(require,module,exports,__globalThis) {
|
},{}],"3r4tp":[function(require,module,exports,__globalThis) {
|
||||||
module.exports = JSON.parse("{\"name\":\"artplayer\",\"version\":\"5.3.0\",\"description\":\"ArtPlayer.js is a modern and full featured HTML5 video player\",\"author\":\"Harvey Zack <laozhaochaguan@gmail.com>\",\"license\":\"MIT\",\"homepage\":\"https://artplayer.org\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/zhw2590582/ArtPlayer.git\"},\"bugs\":{\"url\":\"https://github.com/zhw2590582/ArtPlayer/issues\"},\"keywords\":[\"html5\",\"video\",\"player\"],\"exports\":{\".\":{\"types\":\"./types/artplayer.d.ts\",\"import\":\"./dist/artplayer.mjs\",\"require\":\"./dist/artplayer.js\"},\"./legacy\":{\"types\":\"./types/artplayer.d.ts\",\"import\":\"./dist/artplayer.legacy.js\",\"require\":\"./dist/artplayer.legacy.js\"},\"./i18n/*\":{\"types\":\"./types/i18n.d.ts\",\"import\":\"./dist/i18n/*.mjs\",\"require\":\"./dist/i18n/*.js\"}},\"main\":\"./dist/artplayer.js\",\"module\":\"./dist/artplayer.mjs\",\"types\":\"./types/artplayer.d.ts\",\"typesVersions\":{\"*\":{\"i18n/*\":[\"types/i18n.d.ts\"],\"legacy\":[\"types/artplayer.d.ts\"]}},\"legacy\":\"./dist/artplayer.legacy.js\",\"browserslist\":\"last 1 Chrome version\",\"dependencies\":{\"option-validator\":\"^2.0.6\"}}");
|
module.exports = JSON.parse("{\"name\":\"artplayer\",\"version\":\"5.3.1-beta.1\",\"description\":\"ArtPlayer.js is a modern and full featured HTML5 video player\",\"author\":\"Harvey Zack <laozhaochaguan@gmail.com>\",\"license\":\"MIT\",\"homepage\":\"https://artplayer.org\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/zhw2590582/ArtPlayer.git\"},\"bugs\":{\"url\":\"https://github.com/zhw2590582/ArtPlayer/issues\"},\"keywords\":[\"html5\",\"video\",\"player\"],\"exports\":{\".\":{\"types\":\"./types/artplayer.d.ts\",\"import\":\"./dist/artplayer.mjs\",\"require\":\"./dist/artplayer.js\"},\"./legacy\":{\"types\":\"./types/artplayer.d.ts\",\"import\":\"./dist/artplayer.legacy.js\",\"require\":\"./dist/artplayer.legacy.js\"},\"./i18n/*\":{\"types\":\"./types/i18n.d.ts\",\"import\":\"./dist/i18n/*.mjs\",\"require\":\"./dist/i18n/*.js\"}},\"main\":\"./dist/artplayer.js\",\"module\":\"./dist/artplayer.mjs\",\"types\":\"./types/artplayer.d.ts\",\"typesVersions\":{\"*\":{\"i18n/*\":[\"types/i18n.d.ts\"],\"legacy\":[\"types/artplayer.d.ts\"]}},\"legacy\":\"./dist/artplayer.legacy.js\",\"browserslist\":\"last 1 Chrome version\",\"dependencies\":{\"option-validator\":\"^2.0.6\"}}");
|
||||||
|
|
||||||
},{}],"1dlGA":[function(require,module,exports,__globalThis) {
|
},{}],"1dlGA":[function(require,module,exports,__globalThis) {
|
||||||
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
|
var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js");
|
||||||
@@ -4012,7 +4016,7 @@ function seekMix(art) {
|
|||||||
set (time) {
|
set (time) {
|
||||||
art.currentTime = time;
|
art.currentTime = time;
|
||||||
if (art.duration) notice.show = `${(0, _utils.secondToTime)(art.currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;
|
if (art.duration) notice.show = `${(0, _utils.secondToTime)(art.currentTime)} / ${(0, _utils.secondToTime)(art.duration)}`;
|
||||||
art.emit('seek', art.currentTime);
|
art.emit('seek', art.currentTime, time);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
(0, _utils.def)(art, 'forward', {
|
(0, _utils.def)(art, 'forward', {
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"mappings":"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 truncated
|
{"mappings":"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 truncated
|
||||||
@@ -9,7 +9,7 @@ import viewInit from './viewInit'
|
|||||||
|
|
||||||
export default class Events {
|
export default class Events {
|
||||||
constructor(art) {
|
constructor(art) {
|
||||||
this.destroyEvents = []
|
this.destroyEvents = new Set()
|
||||||
this.proxy = this.proxy.bind(this)
|
this.proxy = this.proxy.bind(this)
|
||||||
this.hover = this.hover.bind(this)
|
this.hover = this.hover.bind(this)
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ export default class Events {
|
|||||||
|
|
||||||
target.addEventListener(name, callback, option)
|
target.addEventListener(name, callback, option)
|
||||||
const destroy = () => target.removeEventListener(name, callback, option)
|
const destroy = () => target.removeEventListener(name, callback, option)
|
||||||
this.destroyEvents.push(destroy)
|
this.destroyEvents.add(destroy)
|
||||||
return destroy
|
return destroy
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,16 +44,28 @@ export default class Events {
|
|||||||
}
|
}
|
||||||
|
|
||||||
remove(destroyEvent) {
|
remove(destroyEvent) {
|
||||||
const index = this.destroyEvents.indexOf(destroyEvent)
|
if (this.destroyEvents.has(destroyEvent)) {
|
||||||
if (index > -1) {
|
try {
|
||||||
destroyEvent()
|
destroyEvent()
|
||||||
this.destroyEvents.splice(index, 1)
|
}
|
||||||
|
catch (error) {
|
||||||
|
console.warn('Failed to remove event listener:', error)
|
||||||
|
}
|
||||||
|
finally {
|
||||||
|
this.destroyEvents.delete(destroyEvent)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
destroy() {
|
destroy() {
|
||||||
for (let index = 0; index < this.destroyEvents.length; index++) {
|
for (const destroyEvent of this.destroyEvents) {
|
||||||
this.destroyEvents[index]()
|
try {
|
||||||
|
destroyEvent()
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
console.warn('Failed to destroy event listener:', error)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
this.destroyEvents.clear()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -71,7 +71,9 @@ export default class Hotkey {
|
|||||||
|
|
||||||
add(key, event) {
|
add(key, event) {
|
||||||
if (this.keys[key]) {
|
if (this.keys[key]) {
|
||||||
this.keys[key].push(event)
|
if (!this.keys[key].includes(event)) {
|
||||||
|
this.keys[key].push(event)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.keys[key] = [event]
|
this.keys[key] = [event]
|
||||||
@@ -85,6 +87,9 @@ export default class Hotkey {
|
|||||||
if (index !== -1) {
|
if (index !== -1) {
|
||||||
this.keys[key].splice(index, 1)
|
this.keys[key].splice(index, 1)
|
||||||
}
|
}
|
||||||
|
if (this.keys[key].length === 0) {
|
||||||
|
delete this.keys[key]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,15 @@ export default class Notice {
|
|||||||
constructor(art) {
|
constructor(art) {
|
||||||
this.art = art
|
this.art = art
|
||||||
this.timer = null
|
this.timer = null
|
||||||
|
|
||||||
|
art.on('destroy', () => this.destroy())
|
||||||
|
}
|
||||||
|
|
||||||
|
destroy() {
|
||||||
|
if (this.timer) {
|
||||||
|
clearTimeout(this.timer)
|
||||||
|
this.timer = null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
set show(msg) {
|
set show(msg) {
|
||||||
|
|||||||
@@ -3,21 +3,30 @@ import { def } from '../utils'
|
|||||||
export default function switchMix(art) {
|
export default function switchMix(art) {
|
||||||
function switchUrl(url, currentTime) {
|
function switchUrl(url, currentTime) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (url === art.url)
|
if (url === art.url) {
|
||||||
|
resolve()
|
||||||
return
|
return
|
||||||
|
}
|
||||||
const { playing, aspectRatio, playbackRate } = art
|
const { playing, aspectRatio, playbackRate } = art
|
||||||
|
|
||||||
art.pause()
|
art.pause()
|
||||||
art.url = url
|
art.url = url
|
||||||
art.notice.show = ''
|
art.notice.show = ''
|
||||||
|
|
||||||
art.once('video:error', reject)
|
const handlers = {}
|
||||||
|
|
||||||
art.once('video:loadedmetadata', () => {
|
handlers.error = (error) => {
|
||||||
|
art.off('video:canplay', handlers.canplay)
|
||||||
|
art.off('video:loadedmetadata', handlers.metadata)
|
||||||
|
reject(error)
|
||||||
|
}
|
||||||
|
|
||||||
|
handlers.metadata = () => {
|
||||||
art.currentTime = currentTime
|
art.currentTime = currentTime
|
||||||
})
|
}
|
||||||
|
|
||||||
art.once('video:canplay', async () => {
|
handlers.canplay = async () => {
|
||||||
|
art.off('video:error', handlers.error)
|
||||||
art.playbackRate = playbackRate
|
art.playbackRate = playbackRate
|
||||||
art.aspectRatio = aspectRatio
|
art.aspectRatio = aspectRatio
|
||||||
|
|
||||||
@@ -28,7 +37,11 @@ export default function switchMix(art) {
|
|||||||
art.notice.show = ''
|
art.notice.show = ''
|
||||||
|
|
||||||
resolve()
|
resolve()
|
||||||
})
|
}
|
||||||
|
|
||||||
|
art.once('video:error', handlers.error)
|
||||||
|
art.once('video:loadedmetadata', handlers.metadata)
|
||||||
|
art.once('video:canplay', handlers.canplay)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,8 +40,7 @@ export default class Component {
|
|||||||
if (!this.$parent || !this.name || option.disable)
|
if (!this.$parent || !this.name || option.disable)
|
||||||
return
|
return
|
||||||
const name = option.name || `${this.name}${this.id}`
|
const name = option.name || `${this.name}${this.id}`
|
||||||
const item = this.cache.get(name)
|
errorHandle(!this.cache.has(name), `Can't add an existing [${name}] to the [${this.name}]`)
|
||||||
errorHandle(!item, `Can't add an existing [${name}] to the [${this.name}]`)
|
|
||||||
|
|
||||||
this.id += 1
|
this.id += 1
|
||||||
const $ref = createElement('div')
|
const $ref = createElement('div')
|
||||||
@@ -94,15 +93,15 @@ export default class Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
remove(name) {
|
remove(name) {
|
||||||
|
errorHandle(this.cache.has(name), `Can't find [${name}] from the [${this.name}]`)
|
||||||
const item = this.cache.get(name)
|
const item = this.cache.get(name)
|
||||||
errorHandle(item, `Can't find [${name}] from the [${this.name}]`)
|
|
||||||
|
|
||||||
if (item.option.beforeUnmount) {
|
if (item.option.beforeUnmount) {
|
||||||
item.option.beforeUnmount.call(this.art, item.$ref)
|
item.option.beforeUnmount.call(this.art, item.$ref)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let index = 0; index < item.events.length; index++) {
|
for (const event of item.events) {
|
||||||
this.art.events.remove(item.events[index])
|
this.art.events.remove(event)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.cache.delete(name)
|
this.cache.delete(name)
|
||||||
@@ -111,8 +110,8 @@ export default class Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
update(option) {
|
update(option) {
|
||||||
const item = this.cache.get(option.name)
|
if (this.cache.has(option.name)) {
|
||||||
if (item) {
|
const item = this.cache.get(option.name)
|
||||||
option = Object.assign(item.option, option)
|
option = Object.assign(item.option, option)
|
||||||
this.remove(option.name)
|
this.remove(option.name)
|
||||||
}
|
}
|
||||||
|
|||||||
+34
-26
@@ -29,7 +29,7 @@ export default class Artplayer extends Player {
|
|||||||
|
|
||||||
static readonly instances: Artplayer[]
|
static readonly instances: Artplayer[]
|
||||||
static readonly version: string
|
static readonly version: string
|
||||||
static readonly env: string
|
static readonly env: 'development' | 'production'
|
||||||
static readonly build: string
|
static readonly build: string
|
||||||
static readonly config: Config
|
static readonly config: Config
|
||||||
static readonly utils: Utils
|
static readonly utils: Utils
|
||||||
@@ -110,67 +110,75 @@ export default class Artplayer extends Player {
|
|||||||
e: { [K in keyof Events]?: { fn: (...args: Events[K]) => unknown, ctx: unknown }[] }
|
e: { [K in keyof Events]?: { fn: (...args: Events[K]) => unknown, ctx: unknown }[] }
|
||||||
|
|
||||||
destroy(removeHtml?: boolean): void
|
destroy(removeHtml?: boolean): void
|
||||||
|
reset(): void
|
||||||
|
|
||||||
readonly template: {
|
readonly template: {
|
||||||
get html(): string
|
get html(): string
|
||||||
query: (str: string) => HTMLElement
|
query: <T extends Element = Element>(selector: string) => T | null
|
||||||
} & Template
|
} & Template
|
||||||
|
|
||||||
readonly events: {
|
readonly events: {
|
||||||
proxy: <KW extends keyof WindowEventMap, KH extends keyof HTMLElementEventMap>(
|
proxy: {
|
||||||
element: HTMLDivElement | Document | Window,
|
(target: EventTarget, eventName: string, handler: (event: Event) => void, options?: boolean | AddEventListenerOptions): () => void
|
||||||
eventName: KW | KH,
|
(target: EventTarget, eventName: string[], handler: (event: Event) => void, options?: boolean | AddEventListenerOptions): Array<() => void>
|
||||||
handler: (event: WindowEventMap[KW] | HTMLElementEventMap[KH] | Event) => void,
|
}
|
||||||
options?: boolean | AddEventListenerOptions,
|
|
||||||
) => () => void
|
|
||||||
hover: (element: HTMLElement, mouseenter?: (event: Event) => any, mouseleave?: (event: Event) => any) => void
|
hover: (element: HTMLElement, mouseenter?: (event: Event) => any, mouseleave?: (event: Event) => any) => void
|
||||||
remove: (event: Event) => void
|
remove: (destroyEvent: () => void) => void
|
||||||
|
destroy: () => void
|
||||||
bindGlobalEvents: (source?: { window?: Window, document?: Document }) => void
|
bindGlobalEvents: (source?: { window?: Window, document?: Document }) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
readonly storage: {
|
readonly storage: {
|
||||||
name: string
|
name: string
|
||||||
settings: Record<string, unknown>
|
settings: Record<string, unknown>
|
||||||
get: (key: string) => unknown
|
get: {
|
||||||
|
(key: string): unknown
|
||||||
|
(): Record<string, unknown>
|
||||||
|
}
|
||||||
set: (key: string, value: unknown) => void
|
set: (key: string, value: unknown) => void
|
||||||
del: (key: string) => boolean
|
del: (key: string) => void
|
||||||
clear: () => void
|
clear: () => void
|
||||||
}
|
}
|
||||||
|
|
||||||
readonly icons: Icons
|
readonly icons: Icons
|
||||||
|
|
||||||
readonly i18n: {
|
readonly i18n: {
|
||||||
readonly languages: I18n
|
languages: I18n
|
||||||
|
language: Partial<Record<string, string>>
|
||||||
|
init: () => void
|
||||||
get: (key: string) => string
|
get: (key: string) => string
|
||||||
update: (language: Partial<I18n>) => void
|
update: (language: Partial<I18n>) => void
|
||||||
}
|
}
|
||||||
|
|
||||||
readonly notice: {
|
readonly notice: {
|
||||||
timer: number
|
timer: number | null
|
||||||
set show(msg: string)
|
get show(): boolean
|
||||||
|
set show(msg: string | Error | false | '')
|
||||||
|
destroy: () => void
|
||||||
}
|
}
|
||||||
|
|
||||||
readonly layers: Record<string, HTMLElement> & Component
|
readonly layers: Record<string, HTMLElement | undefined> & Component
|
||||||
readonly controls: Record<string, HTMLElement> & Component
|
readonly controls: Record<string, HTMLElement | undefined> & Component
|
||||||
readonly contextmenu: Record<string, HTMLElement> & Component
|
readonly contextmenu: Record<string, HTMLElement | undefined> & Component
|
||||||
|
|
||||||
readonly subtitle: {
|
readonly subtitle: {
|
||||||
get url(): string
|
get url(): string
|
||||||
set url(url: string)
|
set url(url: string)
|
||||||
get textTrack(): TextTrack
|
get textTrack(): TextTrack | undefined
|
||||||
get activeCues(): VTTCue[]
|
get activeCues(): VTTCue[]
|
||||||
get cues(): VTTCue[]
|
get cues(): VTTCue[]
|
||||||
style: (name: string | Partial<CSSStyleDeclaration>, value?: string) => void
|
style: (name: string | Partial<CSSStyleDeclaration>, value?: string) => void
|
||||||
switch: (url: string, option?: Subtitle) => Promise<string>
|
switch: (url: string, option?: Subtitle) => Promise<string>
|
||||||
|
init: (subtitle: Subtitle) => Promise<string | null | undefined>
|
||||||
} & Component
|
} & Component
|
||||||
|
|
||||||
readonly info: Component
|
readonly info: Component
|
||||||
readonly loading: Component
|
readonly loading: Component
|
||||||
|
|
||||||
readonly hotkey: {
|
readonly hotkey: {
|
||||||
keys: Record<string, ((event: Event) => any)[]>
|
keys: Record<string, ((event: KeyboardEvent) => any)[]>
|
||||||
add: (key: string, callback: (this: Artplayer, event: Event) => any) => Artplayer['hotkey']
|
add: (key: string, callback: (this: Artplayer, event: KeyboardEvent) => any) => Artplayer['hotkey']
|
||||||
remove: (key: string, callback: (event: Event) => any) => Artplayer['hotkey']
|
remove: (key: string, callback: (event: KeyboardEvent) => any) => Artplayer['hotkey']
|
||||||
}
|
}
|
||||||
|
|
||||||
readonly mask: Component
|
readonly mask: Component
|
||||||
@@ -178,15 +186,15 @@ export default class Artplayer extends Player {
|
|||||||
readonly setting: {
|
readonly setting: {
|
||||||
option: SettingOption[]
|
option: SettingOption[]
|
||||||
updateStyle: (width?: number) => void
|
updateStyle: (width?: number) => void
|
||||||
find: (name: string) => SettingOption
|
find: (name: string) => SettingOption | undefined
|
||||||
add: (setting: Setting) => SettingOption[]
|
add: (setting: Setting) => Artplayer['setting']
|
||||||
update: (settings: Setting) => SettingOption[]
|
update: (settings: Setting) => Artplayer['setting']
|
||||||
remove: (name: string) => SettingOption[]
|
remove: (name: string) => Artplayer['setting']
|
||||||
} & Component
|
} & Component
|
||||||
|
|
||||||
readonly plugins: {
|
readonly plugins: {
|
||||||
add: (
|
add: (
|
||||||
plugin: (this: Artplayer, art: Artplayer) => unknown | Promise<unknown>,
|
plugin: (this: Artplayer, art: Artplayer) => unknown | Promise<unknown>,
|
||||||
) => Promise<Artplayer['plugins']> | Artplayer['plugins']
|
) => Promise<Artplayer['plugins']>
|
||||||
} & Record<string, unknown>
|
} & Record<string, unknown>
|
||||||
}
|
}
|
||||||
+7
-2
@@ -11,6 +11,11 @@ export interface Selector {
|
|||||||
*/
|
*/
|
||||||
html: string | HTMLElement
|
html: string | HTMLElement
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Value of selector item
|
||||||
|
*/
|
||||||
|
value?: string | number
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allow custom properties
|
* Allow custom properties
|
||||||
*/
|
*/
|
||||||
@@ -51,7 +56,7 @@ export interface Component {
|
|||||||
/**
|
/**
|
||||||
* Dynamic add a component
|
* Dynamic add a component
|
||||||
*/
|
*/
|
||||||
add: (option: ComponentOption) => HTMLElement
|
add: (option: ComponentOption | ((art: Artplayer) => ComponentOption)) => HTMLElement | undefined
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dynamic remove a component by name
|
* Dynamic remove a component by name
|
||||||
@@ -61,7 +66,7 @@ export interface Component {
|
|||||||
/**
|
/**
|
||||||
* Dynamic update a component
|
* Dynamic update a component
|
||||||
*/
|
*/
|
||||||
update: (option: ComponentOption) => HTMLElement
|
update: (option: ComponentOption) => HTMLElement | undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ComponentOption {
|
export interface ComponentOption {
|
||||||
|
|||||||
Vendored
+4
-4
@@ -1,5 +1,5 @@
|
|||||||
export interface Config {
|
export interface Config {
|
||||||
properties: [
|
readonly properties: readonly [
|
||||||
'audioTracks',
|
'audioTracks',
|
||||||
'autoplay',
|
'autoplay',
|
||||||
'buffered',
|
'buffered',
|
||||||
@@ -30,8 +30,8 @@ export interface Config {
|
|||||||
'videoTracks',
|
'videoTracks',
|
||||||
'volume',
|
'volume',
|
||||||
]
|
]
|
||||||
methods: ['addTextTrack', 'canPlayType', 'load', 'play', 'pause']
|
readonly methods: readonly ['addTextTrack', 'canPlayType', 'load', 'play', 'pause']
|
||||||
events: [
|
readonly events: readonly [
|
||||||
'abort',
|
'abort',
|
||||||
'canplay',
|
'canplay',
|
||||||
'canplaythrough',
|
'canplaythrough',
|
||||||
@@ -55,7 +55,7 @@ export interface Config {
|
|||||||
'volumechange',
|
'volumechange',
|
||||||
'waiting',
|
'waiting',
|
||||||
]
|
]
|
||||||
prototypes: [
|
readonly prototypes: readonly [
|
||||||
'width',
|
'width',
|
||||||
'height',
|
'height',
|
||||||
'videoWidth',
|
'videoWidth',
|
||||||
|
|||||||
Vendored
+8
-3
@@ -20,15 +20,18 @@ export interface Events {
|
|||||||
'window:scroll': [event: Event]
|
'window:scroll': [event: Event]
|
||||||
'window:orientationchange': [event: Event]
|
'window:orientationchange': [event: Event]
|
||||||
|
|
||||||
|
'video:abort': [event: Event]
|
||||||
'video:canplay': [event: Event]
|
'video:canplay': [event: Event]
|
||||||
'video:canplaythrough': [event: Event]
|
'video:canplaythrough': [event: Event]
|
||||||
'video:complete': [event: Event]
|
'video:complete': [event: Event]
|
||||||
'video:durationchange': [event: Event]
|
'video:durationchange': [event: Event]
|
||||||
'video:emptied': [event: Event]
|
'video:emptied': [event: Event]
|
||||||
|
'video:encrypted': [event: Event]
|
||||||
'video:ended': [event: Event]
|
'video:ended': [event: Event]
|
||||||
'video:error': [error: Error]
|
'video:error': [error: Error]
|
||||||
'video:loadeddata': [event: Event]
|
'video:loadeddata': [event: Event]
|
||||||
'video:loadedmetadata': [event: Event]
|
'video:loadedmetadata': [event: Event]
|
||||||
|
'video:loadstart': [event: Event]
|
||||||
'video:pause': [event: Event]
|
'video:pause': [event: Event]
|
||||||
'video:play': [event: Event]
|
'video:play': [event: Event]
|
||||||
'video:playing': [event: Event]
|
'video:playing': [event: Event]
|
||||||
@@ -50,7 +53,7 @@ export interface Events {
|
|||||||
'contextmenu': [state: boolean]
|
'contextmenu': [state: boolean]
|
||||||
'control': [state: boolean]
|
'control': [state: boolean]
|
||||||
'setting': [state: boolean]
|
'setting': [state: boolean]
|
||||||
'hotkey': [event: Event]
|
'hotkey': [event: KeyboardEvent]
|
||||||
|
|
||||||
'destroy': []
|
'destroy': []
|
||||||
|
|
||||||
@@ -71,8 +74,10 @@ export interface Events {
|
|||||||
'lock': [state: boolean]
|
'lock': [state: boolean]
|
||||||
'aspectRatio': [aspectRatio: AspectRatio]
|
'aspectRatio': [aspectRatio: AspectRatio]
|
||||||
'autoHeight': [height: number]
|
'autoHeight': [height: number]
|
||||||
'autoSize': []
|
'autoSize': [size: { width: number, height: number }]
|
||||||
'ready': []
|
'ready': []
|
||||||
|
'airplay': []
|
||||||
|
'raf': []
|
||||||
|
|
||||||
'error': [error: Error, reconnectTime: number]
|
'error': [error: Error, reconnectTime: number]
|
||||||
'flip': [flip: Flip]
|
'flip': [flip: Flip]
|
||||||
@@ -84,7 +89,7 @@ export interface Events {
|
|||||||
'pip': [state: boolean]
|
'pip': [state: boolean]
|
||||||
'play': []
|
'play': []
|
||||||
'screenshot': [dataUri: string]
|
'screenshot': [dataUri: string]
|
||||||
'seek': [currentTime: number]
|
'seek': [currentTime: number, time: number]
|
||||||
'restart': [url: string]
|
'restart': [url: string]
|
||||||
'muted': [state: boolean]
|
'muted': [state: boolean]
|
||||||
'setBar': [type: Bar, percentage: number, event?: Event | undefined]
|
'setBar': [type: Bar, percentage: number, event?: Event | undefined]
|
||||||
|
|||||||
Vendored
+3
-3
@@ -227,12 +227,12 @@ export interface Option {
|
|||||||
/**
|
/**
|
||||||
* Custom video proxy
|
* Custom video proxy
|
||||||
*/
|
*/
|
||||||
proxy?: (this: Artplayer, art: Artplayer) => HTMLCanvasElement | HTMLVideoElement
|
proxy?: (this: Artplayer, art: Artplayer) => HTMLCanvasElement | HTMLVideoElement | undefined
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Custom plugin list
|
* Custom plugin list
|
||||||
*/
|
*/
|
||||||
plugins?: ((this: Artplayer, art: Artplayer) => unknown)[]
|
plugins?: ((this: Artplayer, art: Artplayer) => unknown | Promise<unknown>)[]
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Custom layer list
|
* Custom layer list
|
||||||
@@ -316,7 +316,7 @@ export interface Option {
|
|||||||
customType?: Partial<
|
customType?: Partial<
|
||||||
Record<
|
Record<
|
||||||
CustomType,
|
CustomType,
|
||||||
(this: Artplayer, video: HTMLVideoElement, url: string, art: Artplayer) => unknown
|
(this: Artplayer, video: HTMLVideoElement, url: string, art: Artplayer) => unknown | Promise<unknown>
|
||||||
>
|
>
|
||||||
>
|
>
|
||||||
}
|
}
|
||||||
Vendored
+1
-3
@@ -76,9 +76,6 @@ export declare class Player {
|
|||||||
get muted(): boolean
|
get muted(): boolean
|
||||||
set muted(state: boolean)
|
set muted(state: boolean)
|
||||||
|
|
||||||
get title(): string
|
|
||||||
set title(title: string)
|
|
||||||
|
|
||||||
get theme(): string
|
get theme(): string
|
||||||
set theme(theme: string)
|
set theme(theme: string)
|
||||||
|
|
||||||
@@ -111,4 +108,5 @@ export declare class Player {
|
|||||||
airplay(): void
|
airplay(): void
|
||||||
autoSize(): void
|
autoSize(): void
|
||||||
autoHeight(): void
|
autoHeight(): void
|
||||||
|
reset(): void
|
||||||
}
|
}
|
||||||
+12
-14
@@ -1,23 +1,21 @@
|
|||||||
import type Artplayer from './artplayer'
|
import type Artplayer from './artplayer'
|
||||||
|
|
||||||
type Props<T> = {
|
export interface SettingOption extends Omit<Setting, 'html' | 'icon' | 'tooltip'> {
|
||||||
html: string
|
html: string
|
||||||
icon: string
|
icon: string | undefined
|
||||||
tooltip: string
|
tooltip: string | undefined
|
||||||
$item: HTMLDivElement
|
$item: HTMLDivElement
|
||||||
$icon: HTMLDivElement
|
$icon: HTMLDivElement | undefined
|
||||||
$html: HTMLDivElement
|
$html: HTMLDivElement
|
||||||
$tooltip: HTMLDivElement
|
$tooltip: HTMLDivElement | undefined
|
||||||
$switch: HTMLDivElement
|
$switch: HTMLDivElement | undefined
|
||||||
$range: HTMLInputElement
|
$range: HTMLInputElement | undefined
|
||||||
$parent: Setting
|
$parent: SettingOption | undefined
|
||||||
$parents: Setting[]
|
$parents: SettingOption[]
|
||||||
$option: Setting[]
|
$option: SettingOption[]
|
||||||
$events: Array<(...args: unknown[]) => unknown>
|
$events: Array<() => void>
|
||||||
$formatted: boolean
|
$formatted: boolean
|
||||||
} & Omit<T, 'html' | 'icon' | 'tooltip'>
|
}
|
||||||
|
|
||||||
export type SettingOption = Props<Setting>
|
|
||||||
|
|
||||||
export interface Setting {
|
export interface Setting {
|
||||||
/**
|
/**
|
||||||
|
|||||||
+2
-1
@@ -1,4 +1,5 @@
|
|||||||
export interface Template {
|
export interface Template {
|
||||||
|
readonly html: string
|
||||||
readonly $container: HTMLDivElement
|
readonly $container: HTMLDivElement
|
||||||
readonly $player: HTMLDivElement
|
readonly $player: HTMLDivElement
|
||||||
readonly $video: HTMLVideoElement
|
readonly $video: HTMLVideoElement
|
||||||
@@ -10,6 +11,7 @@ export interface Template {
|
|||||||
readonly $progress: HTMLDivElement
|
readonly $progress: HTMLDivElement
|
||||||
readonly $controls: HTMLDivElement
|
readonly $controls: HTMLDivElement
|
||||||
readonly $controlsLeft: HTMLDivElement
|
readonly $controlsLeft: HTMLDivElement
|
||||||
|
readonly $controlsCenter: HTMLDivElement
|
||||||
readonly $controlsRight: HTMLDivElement
|
readonly $controlsRight: HTMLDivElement
|
||||||
readonly $layer: HTMLDivElement
|
readonly $layer: HTMLDivElement
|
||||||
readonly $loading: HTMLDivElement
|
readonly $loading: HTMLDivElement
|
||||||
@@ -22,5 +24,4 @@ export interface Template {
|
|||||||
readonly $infoPanel: HTMLDivElement
|
readonly $infoPanel: HTMLDivElement
|
||||||
readonly $infoClose: HTMLDivElement
|
readonly $infoClose: HTMLDivElement
|
||||||
readonly $contextmenu: HTMLDivElement
|
readonly $contextmenu: HTMLDivElement
|
||||||
readonly $mini: HTMLDivElement
|
|
||||||
}
|
}
|
||||||
Vendored
+13
-12
@@ -1,17 +1,18 @@
|
|||||||
export interface Utils {
|
export interface Utils {
|
||||||
|
isBrowser: boolean
|
||||||
userAgent: string
|
userAgent: string
|
||||||
isMobile: boolean
|
isMobile: boolean
|
||||||
isSafari: boolean
|
isSafari: boolean
|
||||||
isIOS: boolean
|
isIOS: boolean
|
||||||
isIOS13: boolean
|
isIOS13: boolean
|
||||||
|
|
||||||
query: (selector: string, parent?: HTMLElement) => HTMLElement
|
query: <T extends Element = Element>(selector: string, parent?: Document | HTMLElement) => T | null
|
||||||
queryAll: (selector: string, parent?: HTMLElement) => HTMLElement[]
|
queryAll: <T extends Element = Element>(selector: string, parent?: Document | HTMLElement) => T[]
|
||||||
addClass: (target: HTMLElement, className: string) => void
|
addClass: (target: HTMLElement, className: string) => void
|
||||||
removeClass: (target: HTMLElement, className: string) => void
|
removeClass: (target: HTMLElement, className: string) => void
|
||||||
hasClass: (target: HTMLElement, className: string) => boolean
|
hasClass: (target: HTMLElement, className: string) => boolean
|
||||||
append: (target: HTMLElement, child: HTMLElement) => HTMLElement
|
append: (target: HTMLElement, child: HTMLElement | string) => Element | ChildNode
|
||||||
remove: (target: HTMLElement) => void
|
remove: (target: HTMLElement) => HTMLElement
|
||||||
replaceElement: (newChild: HTMLElement, oldChild: HTMLElement) => HTMLElement
|
replaceElement: (newChild: HTMLElement, oldChild: HTMLElement) => HTMLElement
|
||||||
siblings: (target: HTMLElement) => HTMLElement[]
|
siblings: (target: HTMLElement) => HTMLElement[]
|
||||||
inverseClass: (target: HTMLElement, className: string) => void
|
inverseClass: (target: HTMLElement, className: string) => void
|
||||||
@@ -19,15 +20,14 @@ export interface Utils {
|
|||||||
setStyle: <T extends keyof CSSStyleDeclaration>(
|
setStyle: <T extends keyof CSSStyleDeclaration>(
|
||||||
element: HTMLElement,
|
element: HTMLElement,
|
||||||
key: T,
|
key: T,
|
||||||
value: CSSStyleDeclaration[T],
|
value: string | CSSStyleDeclaration[T],
|
||||||
) => HTMLElement
|
) => HTMLElement
|
||||||
setStyles: (element: HTMLElement, styles: Partial<CSSStyleDeclaration>) => HTMLElement
|
setStyles: (element: HTMLElement, styles: Partial<CSSStyleDeclaration>) => HTMLElement
|
||||||
getStyle: <K extends keyof CSSStyleDeclaration>(
|
getStyle: {
|
||||||
element: HTMLElement,
|
(element: HTMLElement, key: keyof CSSStyleDeclaration, numberType?: true): number
|
||||||
key: K,
|
(element: HTMLElement, key: keyof CSSStyleDeclaration, numberType: false): string
|
||||||
numberType?: boolean,
|
}
|
||||||
) => boolean extends true ? number : string
|
setStyleText: (id: string, cssText: string) => void
|
||||||
setStyleText: (element: HTMLElement, text: string) => void
|
|
||||||
getRect: (el: HTMLElement) => { top: number, left: number, width: number, height: number }
|
getRect: (el: HTMLElement) => { top: number, left: number, width: number, height: number }
|
||||||
tooltip: (target: HTMLElement, msg: string, pos?: string) => void
|
tooltip: (target: HTMLElement, msg: string, pos?: string) => void
|
||||||
isInViewport: (target: HTMLElement, offset?: number) => boolean
|
isInViewport: (target: HTMLElement, offset?: number) => boolean
|
||||||
@@ -56,6 +56,7 @@ export interface Utils {
|
|||||||
escape: (str: string) => string
|
escape: (str: string) => string
|
||||||
capitalize: (str: string) => string
|
capitalize: (str: string) => string
|
||||||
|
|
||||||
getIcon: (key: string, html: string | HTMLElement) => HTMLElement
|
getIcon: (key?: string, html?: string | HTMLElement) => HTMLElement
|
||||||
|
getComposedPath: (event: Event) => EventTarget[]
|
||||||
supportsFlex: () => boolean
|
supportsFlex: () => boolean
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user