UNPKG

@paperbits/core

Version:
51 lines (43 loc) 2.22 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 { PictureModel, PictureModelBinder } from "."; import { KnockoutComponentBinder } from "../ko"; import { Picture, PictureViewModelBinder } from "./ko"; import { PictureEditor } from "./ko/pictureEditor"; import { PictureHandlers } from "./pictureHandlers"; export class PictureDesignModule implements IInjectorModule { public register(injector: IInjector): void { injector.bind("picture", Picture); injector.bind("pictureEditor", PictureEditor); injector.bindSingleton("pictureModelBinder", PictureModelBinder); injector.bindSingleton("pictureViewModelBinder", PictureViewModelBinder) injector.bindSingleton("pictureHandler", PictureHandlers); // TODO: Create respective handler property in WidgetEditorDefinition injector.bindToCollectionAsSingletone("dropHandlers", PictureHandlers); const widgetService = injector.resolve<IWidgetService>("widgetService"); widgetService.registerWidget("picture", { modelDefinition: PictureModel, componentBinder: KnockoutComponentBinder, componentDefinition: Picture, modelBinder: PictureModelBinder, viewModelBinder: PictureViewModelBinder }); widgetService.registerWidgetEditor("picture", { displayName: "Picture", iconClass: "widget-icon widget-icon-picture", componentBinder: KnockoutComponentBinder, componentDefinition: PictureEditor, handlerComponent: PictureHandlers }); const styleGroup: IStyleGroup = { key: "picture", name: "components_picture", groupName: "Picture", styleTemplate: template }; injector.bindInstanceToCollection("styleGroups", styleGroup); // injector.bindToCollection<IContentDropHandler>("dropHandlers", PictureHandlers, "pictureDropHandler"); } }