UNPKG

@paperbits/core

Version:
51 lines (43 loc) 2.3 kB
import template from "./ko/styleGuideCard.html"; import { IInjector, IInjectorModule } from "@paperbits/common/injection"; import { IStyleGroup } from "@paperbits/common/styles"; import { IWidgetService } from "@paperbits/common/widgets"; import { KnockoutComponentBinder } from "../ko"; import { VideoPlayer, VideoPlayerViewModelBinder } from "./ko"; import { VideoPlayerEditor } from "./ko/videoPlayerEditor"; import { VideoPlayerHandlers } from "./videoPlayerHandlers"; import { VideoPlayerModel } from "./videoPlayerModel"; import { VideoPlayerModelBinder } from "./videoPlayerModelBinder"; export class VideoPlayerDesignModule implements IInjectorModule { public register(injector: IInjector): void { injector.bind("videoPlayer", VideoPlayer); injector.bind("videoPlayerEditor", VideoPlayerEditor); injector.bindSingleton("videoPlayerModelBinder", VideoPlayerModelBinder); injector.bindSingleton("videoPlayerViewModelBinder", VideoPlayerViewModelBinder) injector.bindSingleton("videoPlayerHandler", VideoPlayerHandlers); // TODO: Create respective handler property in WidgetEditorDefinition injector.bindToCollectionAsSingletone("dropHandlers", VideoPlayerHandlers); const widgetService = injector.resolve<IWidgetService>("widgetService"); widgetService.registerWidget("video-player", { modelDefinition: VideoPlayerModel, componentBinder: KnockoutComponentBinder, componentDefinition: VideoPlayer, modelBinder: VideoPlayerModelBinder, viewModelBinder: VideoPlayerViewModelBinder }); widgetService.registerWidgetEditor("video-player", { displayName: "Video player", iconClass: "widget-icon widget-icon-video-player", componentBinder: KnockoutComponentBinder, componentDefinition: VideoPlayerEditor, handlerComponent: VideoPlayerHandlers }); const styleGroup: IStyleGroup = { key: "videoPlayer", name: "components_videoPlayer", groupName: "Video player", styleTemplate: template }; injector.bindInstanceToCollection("styleGroups", styleGroup); } }