import { IInjectorModule, IInjector } from "@paperbits/common/injection";
import { ReportsByApiEditor } from "./ko/reportsByApiEditorViewModel";
import { ReportsByApiHandlers } from "./reportsByApiHandlers";
import { ReportsByApiViewModel, ReportsByApiViewModelBinder } from "./ko";
import { ReportsByApiModelBinder } from ".";

/**
 * Inversion of control module that registers design-time dependencies.
 */
export class ReportsByApiDesignModule implements IInjectorModule {
    public register(injector: IInjector): void {
        injector.bind("reportsByApi", ReportsByApiViewModel);
        injector.bind("reportsByApiEditor", ReportsByApiEditor);
        injector.bindToCollection("modelBinders", ReportsByApiModelBinder);
        injector.bindToCollection("viewModelBinders", ReportsByApiViewModelBinder);
        injector.bindToCollection("widgetHandlers", ReportsByApiHandlers);
    }
}