@byomakase/omakase-player
Version:
## Omakase Player - Open source JavaScript framework for building frame accurate video experiences
62 lines (61 loc) • 3.22 kB
TypeScript
import Konva from 'konva';
import { TimelineLaneConfigDefaultsExcluded, TimelineLaneStyle } from '../timeline-lane';
import { MarkerLaneApi } from '../../api';
import { PeriodMarker, PeriodMarkerConfig } from './period-marker';
import { MomentMarker, MomentMarkerConfig } from './moment-marker';
import { MarkerCreateEvent, MarkerDeleteEvent, MarkerFocusEvent, MarkerInitEvent, MarkerSelectedEvent, MarkerUpdateEvent, MarkerVttCue } from '../../types';
import { Subject } from 'rxjs';
import { Timeline } from '../timeline';
import { Marker } from './marker';
import { MarkerVttFile } from '../../vtt';
import { AxiosRequestConfig } from 'axios';
import { MarkerStyle } from './marker-types';
import { VideoControllerApi } from '../../video';
import { VttAdapter, VttAdapterConfig } from '../../common/vtt-adapter';
import { VttTimelineLane, VttTimelineLaneConfig } from '../vtt-timeline-lane';
import { ConfigWithOptionalStyle } from '../../layout';
export interface MarkerLaneConfig extends VttTimelineLaneConfig<MarkerLaneStyle>, VttAdapterConfig<MarkerVttFile> {
axiosConfig?: AxiosRequestConfig;
markerCreateFn?: (marker: MarkerVttCue, index: number) => Marker;
markerProcessFn?: (marker: Marker, index: number) => void;
}
export interface MarkerLaneStyle extends TimelineLaneStyle {
markerStyle: Partial<MarkerStyle>;
}
export declare class MarkerLane extends VttTimelineLane<MarkerLaneConfig, MarkerLaneStyle, MarkerVttCue, MarkerVttFile> implements MarkerLaneApi {
readonly onMarkerFocus$: Subject<MarkerFocusEvent>;
readonly onMarkerCreate$: Subject<MarkerCreateEvent>;
readonly onMarkerDelete$: Subject<MarkerDeleteEvent>;
readonly onMarkerUpdate$: Subject<MarkerUpdateEvent>;
readonly onMarkerSelected$: Subject<MarkerSelectedEvent>;
readonly onMarkerInit$: Subject<MarkerInitEvent>;
protected readonly _vttAdapter: VttAdapter<MarkerVttFile>;
protected _markerCreateFn?: (cue: MarkerVttCue, index: number) => Marker;
protected _markerProcessFn?: (marker: Marker, index: number) => void;
protected _timecodedSpanningGroup?: Konva.Group;
protected _markers: Marker[];
protected _markersById: Map<string, Marker>;
protected _markerInFocus?: Marker;
constructor(config: TimelineLaneConfigDefaultsExcluded<MarkerLaneConfig>);
prepareForTimeline(timeline: Timeline, videoController: VideoControllerApi): void;
protected settleLayout(): void;
clearContent(): void;
get name(): string;
createMomentMarker(config: ConfigWithOptionalStyle<MomentMarkerConfig>): MomentMarker;
createPeriodMarker(config: ConfigWithOptionalStyle<PeriodMarkerConfig>): PeriodMarker;
addMarker(marker: Marker): Marker;
removeAllMarkers(): void;
removeMarker(id: string): void;
protected removeMarkers(ids: string[]): void;
getMarker(id: string): Marker | undefined;
getMarkers(): Marker[];
focusMarker(id: string): void;
getMarkerInFocus(): Marker | undefined;
toggleMarker(markerId: string): void;
getSelectedMarker(): Marker | undefined;
updateMarker(markerId: string, updateData: Partial<Marker>): void;
private moveToTop;
private clearItems;
private createEntities;
destroy(): void;
}