@byomakase/omakase-player
Version:
## Omakase Player - Open source JavaScript framework for building frame accurate video experiences
62 lines (61 loc) • 2.68 kB
TypeScript
import { MarkerApi, MarkerListApi } from '../api';
import { VideoControllerApi } from '../video';
import { MarkerVttFile, ThumbnailVttFile } from '../vtt';
import { MarkerAwareApi } from '../api/marker-aware-api';
import { Subject } from 'rxjs';
import { VttLoadOptions } from '../api/vtt-aware-api';
import { Destroyable, MarkerCreateEvent, MarkerDeleteEvent, MarkerInitEvent, MarkerListActionEvent, MarkerListClickEvent, MarkerSelectedEvent, MarkerUpdateEvent, MarkerVttCue } from '../types';
import { MarkerListItem } from './marker-list-item';
export interface MarkerListConfig {
markerListHTMLElementId: string;
templateHTMLElementId?: string;
headerHTMLElementId?: string;
emptyHTMLElementId?: string;
loadingHTMLElementId?: string;
styleUrl?: string | string[];
thumbnailVttFile?: ThumbnailVttFile;
vttUrl?: string;
vttLoadOptions?: VttLoadOptions;
vttMarkerCreateFn?: (marker: MarkerVttCue, index: number) => MarkerListItem;
thumbnailFn?: (time: number) => string | undefined;
timeEditable?: boolean;
nameEditable?: boolean;
nameOptions?: string[];
nameValidationFn?: (name: string) => boolean;
source?: MarkerAwareApi | MarkerAwareApi[];
}
export declare class MarkerList implements Destroyable, MarkerListApi {
onVttLoaded$: Subject<MarkerVttFile | undefined>;
onMarkerAction$: Subject<MarkerListActionEvent>;
onMarkerClick$: Subject<MarkerListClickEvent>;
onMarkerInit$: Subject<MarkerInitEvent>;
onMarkerCreate$: Subject<MarkerCreateEvent>;
onMarkerDelete$: Subject<MarkerDeleteEvent>;
onMarkerUpdate$: Subject<MarkerUpdateEvent>;
onMarkerSelected$: Subject<MarkerSelectedEvent>;
private _markerListDomController;
private _markerListComponent;
private _config;
private _sources;
private _thumbnailVttFile?;
private _vttAdapter;
private _lastActiveMarker?;
private readonly _destroyed$;
constructor(config: MarkerListConfig, videoController: VideoControllerApi);
get name(): string;
getMarkers(): MarkerApi[];
get config(): MarkerListConfig;
get thumbnailVttFile(): ThumbnailVttFile | undefined;
set thumbnailVttFile(thumbnailVttFile: ThumbnailVttFile | undefined);
addMarker(createData: Partial<MarkerApi>, source?: MarkerAwareApi): MarkerApi;
updateMarker(id: string, updateValue: Partial<MarkerListItem>): void;
removeMarker(id: string): void;
toggleMarker(id: string): void;
getSelectedMarker(): MarkerApi | undefined;
destroy(): void;
private getMarkerItem;
private addSourceListeners;
private addMarkerToComponent;
private findThumbnail;
private createDefaultMarker;
}