@paperbits/core
Version:
Paperbits core components.
36 lines (31 loc) • 1.62 kB
text/typescript
import { IInjectorModule, IInjector } from "@paperbits/common/injection";
import { SearchHandlers } from "./searchHandlers";
import { SearchViewModel, SearchViewModelBinder } from "./ko";
import { SearchInputModel, SearchModelBinder } from ".";
import { SearchInputEditor } from "./ko/searchInputEditor";
import { IWidgetService } from "@paperbits/common/widgets";
import { KnockoutComponentBinder } from "../ko";
export class SearchDesignModule implements IInjectorModule {
public register(injector: IInjector): void {
injector.bind("search", SearchViewModel);
injector.bind("searchInputEditor", SearchInputEditor);
injector.bindSingleton("searchModelBinder", SearchModelBinder);
injector.bindSingleton("searchViewModelBinder", SearchViewModelBinder);
injector.bindSingleton("searchHandlers", SearchHandlers);
const widgetService = injector.resolve<IWidgetService>("widgetService");
widgetService.registerWidget("input:search", {
modelDefinition: SearchInputModel,
componentBinder: KnockoutComponentBinder,
componentDefinition: SearchViewModel,
modelBinder: SearchModelBinder,
viewModelBinder: SearchViewModelBinder
});
widgetService.registerWidgetEditor("input:search", {
displayName: "Search",
iconClass: "widget-icon widget-icon-search-box",
componentBinder: KnockoutComponentBinder,
componentDefinition: SearchInputEditor,
handlerComponent: SearchHandlers
});
}
}