UNPKG

playable

Version:

Video player based on HTML5Video

144 lines (116 loc) 3.98 kB
import DependencyContainer from './dependency-container'; import RootContainer, { IRootContainerAPI, } from '../modules/root-container/root-container'; import EventEmitter, { IEventEmitterAPI, } from '../modules/event-emitter/event-emitter'; import Engine, { IPlaybackEngineAPI, } from '../modules/playback-engine/playback-engine'; import ThemeService, { IThemeAPI } from '../modules/ui/core/theme'; import TextMap from '../modules/text-map/text-map'; import FullScreenManager, { IFullScreenAPI, } from '../modules/full-screen-manager/full-screen-manager'; import LiveStateEngine from '../modules/playback-engine/live-state-engine'; import KeyboardControls from '../modules/keyboard-control/keyboard-control'; import DebugPanel from '../modules/ui/debug-panel/debug-panel'; import Screen, { IScreenAPI } from '../modules/ui/screen/screen'; import InteractionIndicator from '../modules/ui/interaction-indicator/interaction-indicator'; import Overlay, { IOverlayAPI } from '../modules/ui/overlay/overlay'; import Loader from '../modules/ui/loader/loader'; import MainUIBlock, { IMainUIBlockAPI, } from '../modules/ui/main-ui-block/main-ui-block'; import TopBlock, { ITopBlockAPI } from '../modules/ui/top-block/top-block'; import Title, { ITitleAPI } from '../modules/ui/title/title'; import LiveIndicator from '../modules/ui/live-indicator/live-indicator'; import BottomBlock, { IBottomBlockAPI, } from '../modules/ui/bottom-block/bottom-block'; import ProgressControl, { IProgressControlAPI, } from '../modules/ui/controls/progress/progress'; import PlayControl from '../modules/ui/controls/play/play'; import TimeControl from '../modules/ui/controls/time/time'; import VolumeControl from '../modules/ui/controls/volume/volume'; import FullScreenControl from '../modules/ui/controls/full-screen/full-screen'; import PictureInPictureControl from '../modules/ui/controls/picture-in-picture/picture-in-picture'; import Logo, { ILogoAPI } from '../modules/ui/controls/logo/logo'; import DownloadButton, { IDownloadButtonAPI, } from '../modules/ui/controls/download/download'; import PictureInPictureManager, { IPictureInPictureAPI, } from '../modules/picture-in-picture/picture-in-picture'; import PreviewService, { IPreviewAPI, } from '../modules/ui/preview-service/preview-service'; import PreviewThumbnail from '../modules/ui/preview-thumbnail/preview-thumbnail'; import PreviewFullSize from '../modules/ui/preview-full-size/preview-full-size'; import { TooltipService } from '../modules/ui/core/tooltip'; import NativeOutput from '../modules/playback-engine/output/native/html5video-output'; const { asClass } = DependencyContainer; export type IPlayer = IRootContainerAPI & IEventEmitterAPI & IPlaybackEngineAPI & IThemeAPI & IFullScreenAPI & IPictureInPictureAPI & IScreenAPI & IOverlayAPI & IMainUIBlockAPI & ITopBlockAPI & ITitleAPI & IBottomBlockAPI & IProgressControlAPI & ILogoAPI & IDownloadButtonAPI & IPreviewAPI; export const modules: { [id: string]: any } = { RootContainer, EventEmitter, Engine, ThemeService, TextMap, NativeOutput, FullScreenManager, PictureInPictureManager, LiveStateEngine, KeyboardControls, DebugPanel, Screen, InteractionIndicator, Overlay, Loader, MainUIBlock, TopBlock, LiveIndicator, Title, BottomBlock, ProgressControl, PlayControl, TimeControl, VolumeControl, FullScreenControl, PictureInPictureControl, Logo, DownloadButton, PreviewService, PreviewThumbnail, PreviewFullSize, TooltipService, }; const DIModules: { [id: string]: any } = Object.keys(modules).reduce( (processedModules: { [id: string]: any }, key: string) => { const module = modules[key] as any; if (!module.moduleName) { throw new Error(`No moduleName in module: ${key}`); } processedModules[module.moduleName] = asClass(module).scoped(); return processedModules; }, {}, ); export default DIModules;