From baa3dc9f9c5065bc6208877fdbf2f7b46b54a553 Mon Sep 17 00:00:00 2001 From: Sergio Freitas Date: Thu, 10 May 2018 11:49:31 +0100 Subject: [PATCH] Added Definitions for Component Class. --- types/video.js/index.d.ts | 126 +++++++++++++++++++++++++++++--------- 1 file changed, 97 insertions(+), 29 deletions(-) diff --git a/types/video.js/index.d.ts b/types/video.js/index.d.ts index eaf49a1833..3a658fc05f 100644 --- a/types/video.js/index.d.ts +++ b/types/video.js/index.d.ts @@ -4,6 +4,7 @@ // Simon Clériot // Sean Bennett // Christoph Wagner +// Gio Freitas // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // The Video.js API allows you to interact with the video through @@ -15,6 +16,9 @@ export = videojs; export as namespace videojs; declare namespace videojs { + const getComponent: typeof Component.getComponent; + const registerComponent: typeof Component.registerComponent; + interface PlayerOptions { techOrder?: string[]; sourceOrder?: boolean; @@ -35,6 +39,7 @@ declare namespace videojs { language?: string; notSupportedMessage?: string; plugins?: any; + poster?: string; } interface Source { @@ -42,39 +47,102 @@ declare namespace videojs { src: string; } - interface Player { - play(): Player; - pause(): Player; - paused(): boolean; - src(newSource: string | Source | Source[]): Player; - currentTime(seconds: number): Player; - currentTime(): number; - duration(): number; + interface Dimensions { + width: number; + height: number; + } + + class Component { + constructor(player: Player, options: any); + + static getComponent(name: 'Player'|'player'): typeof Player; + static getComponent(name: 'Component'|'component' | string): typeof Component; + static registerComponent(name: string, ComponentToRegister: typeof Component): typeof Component; + + $(selector: string, context?: string|Element): Element; + $$(selector: string, context?: string|Element): NodeList; + addClass(classToAdd: string): void; + blur(): void; + cancelAnimationFrame(id: number): number; + children(): Component[]; + clearInterval(intervalId: number): number; + clearTimeout(timeoutId: number): number; + contentEl(): Element; + createEl(tagNameopt?: string, properties?: any, attributes?: any): Element; + currentDimension(widthOrHeight: 'width'|'height'): number; + currentDimensions(): Dimensions; + currentHeight(): number; + currentWidth(): number; + dimension(widthOrHeight: 'width'|'height'): number; + dimension(widthOrHeight: 'width'|'height', num: string|number, skipListenersopt?: boolean): void; + dimensions(width: string|number, height: string|number): void; + dispose(): void; + el(): Element; + enableTouchActivity(): void; + focus(): void; + getAttribute(attribute: string): string|null; + getChild(name: string): Component|undefined; + getChildById(id: string): Component|undefined; + hasClass(classToCheck: string): boolean; + height(): number|string; + height(num: number|string, skipListeners?: boolean): void; + hide(): void; + id(): string; + initChildren(): void; + localize(key: string, tokens?: string[], defaultValue?: string): string; + name(): string; + options(obj: any): any; + player(): Player; + ready(callback: (this: this) => void): this; + removeAttribute(attribute: string): void; + removeChild(component: Component): void; + removeClass(classToRemove: string): void; + requestAnimationFrame(fn: () => void): number; + setAttribute(attribute: string, value: string): void; + setInterval(fn: () => void, interval: number): number; + setTimeout(fn: () => void, timeout: number): number; + show(): void; + toggleClass(classToToggle: string, predicate?: string): void; + triggerReady(): void; + width(): string | number; + width(num: number, skipListeners?: number): void; + } + + class Player extends Component { + autoplay(value?: boolean): string; + addRemoteTextTrack(options: {}): HTMLTrackElement; buffered(): TimeRanges; bufferedPercent(): number; - volume(percentAsDecimal: number): TimeRanges; - volume(): number; - width(): number; - width(pixels: number): Player; - height(): number; - height(pixels: number): Player; - size(width: number, height: number): Player; - requestFullScreen(): Player; cancelFullScreen(): Player; - requestFullscreen(): Player; - exitFullscreen(): Player; - ready(callback: (this: Player) => void): Player; - on(eventName: string, callback: (eventObject: Event) => void): void; - off(eventName?: string, callback?: (eventObject: Event) => void): void; - dispose(): void; - addRemoteTextTrack(options: {}): HTMLTrackElement; - removeRemoteTextTrack(track: HTMLTrackElement): void; - poster(val?: string): string | Player; - playbackRate(rate?: number): number; controls(bool?: boolean): boolean; - muted(muted?: boolean): boolean; - preload(value?: boolean): string; - autoplay(value?: boolean): string; + currentTime(): number; + currentTime(seconds: number): Player; + duration(): number; + exitFullscreen(): Player; + height(): number; + height(num: number): void; + languageSwitch(options: any): void; loop(value?: boolean): string; + muted(muted?: boolean): boolean; + off(eventName?: string, callback?: (eventObject: Event) => void): void; + on(eventName: string, callback: (eventObject: Event) => void): void; + pause(): Player; + paused(): boolean; + play(): Player; + playbackRate(rate?: number): number; + poster(val?: string): string | Player; + preload(value?: boolean): string; + removeRemoteTextTrack(track: HTMLTrackElement): void; + requestFullScreen(): Player; + size(width: number, height: number): Player; + src(newSource: string | Source | Source[]): Player; + volume(): number; + volume(percentAsDecimal: number): TimeRanges; + width(): number; + width(num: number): void; + } + + namespace dom { + function appendContent(element: Element, content: any): Element; } }