import 'reflect-metadata'; import { Container } from 'inversify'; import { ServicesIoc, WorkbenchIoc } from './identifier'; import { EventBus, IEventBus, MapStore, IMapStore } from '../services'; import { IHtmlWorkbenchInitiator, HtmlWorkbenchInitiator } from '../workbench/integration/html/initial'; // import { IEditIntegrator, EditIntegrator } from '../workbench/integration/edit'; // import { ILayoutIntegrator, LayoutIntegrator } from '../workbench/integration/layout'; import { IHtmlDatasetIntegrator, HtmlDatasetIntegrator } from '../workbench/integration/html/dataset'; import { IHtmlInterfaceIntegrator, HtmlInterfaceIntegrator } from '../workbench/integration/html/interface'; import { IHtmlSyntaxIntegrator, HtmlSyntaxIntegrator } from '../workbench/integration/html/syntax'; // import { IHtmlAuxiliaryLayer, HtmlAuxiliaryLayer } from '../workbench/parts/auxiliaryLayer'; // import { IComponent, Component } from '../workbench/parts/component'; // // import { IComponentView, ComponentView } from '../workbench/parts/componentView'; // import { IContextMenu, ContextMenu } from '../workbench/parts/contextMenu/contextMenu'; // import { IFunctionFlow, FunctionFlow } from '../workbench/parts/functionFlow/functionFlow'; // import { IHtmlSchemaNode } from '../models/entity/htmlEntity'; // import { IVariableSource, VariableSource } from '../workbench/parts/variableSource/variable'; import { IHtmlStage, HtmlStage } from '../workbench/parts/htmlStage'; import { IHtmlSchema, HtmlSchema } from '../workbench/parts/htmlSchema'; import { IFunctional, Functional } from '../workbench/parts/functional'; import { IStyleAccess, StyleAccess } from '../workbench/parts/styleAccess'; import { IEditIntegrator, EditIntegrator } from '../workbench/integration/html'; // import { PageViewDataset, IPageViewDataset, IPageViewDnd, PageViewDnd } from '../workbench/parts/pageView'; // import { ITemplateViewDataset, TemplateViewDataset } from '../workbench/parts/dndSource/template'; import { PropEditor, IPropEditor } from '../workbench/parts/editor/propEditor'; import { IStyleEditor, StyleEditor } from '../workbench/parts/editor/styleEditor'; import { IEventEditor, EventEditor } from '../workbench/parts/editor/eventEditor'; /** 依赖注入类总容器 */ const IocContainer = new Container(); // Services IocContainer.bind(ServicesIoc.Identifier.EventBus).to(EventBus).inSingletonScope(); IocContainer.bind(ServicesIoc.Identifier.MapStore).to(MapStore).inSingletonScope(); // Plugins // Workbench - Integration IocContainer.bind(WorkbenchIoc.HtmlIntegrationIdentifier.WorkbenchInitiator).to(HtmlWorkbenchInitiator).inSingletonScope(); IocContainer.bind(WorkbenchIoc.HtmlIntegrationIdentifier.DatasetIntegrator).to(HtmlDatasetIntegrator).inSingletonScope(); IocContainer.bind(WorkbenchIoc.HtmlIntegrationIdentifier.InterfaceIntegrator).to(HtmlInterfaceIntegrator).inSingletonScope(); IocContainer.bind(WorkbenchIoc.HtmlIntegrationIdentifier.SyntaxIntegrator).to(HtmlSyntaxIntegrator).inSingletonScope(); IocContainer.bind(WorkbenchIoc.HtmlIntegrationIdentifier.EditIntegrator).to(EditIntegrator).inSingletonScope(); // // Workbench - Parts // IocContainer.bind(WorkbenchIoc.PartsIdentifier.AuxiliaryLayer).to(HtmlAuxiliaryLayer).inSingletonScope(); // IocContainer.bind(WorkbenchIoc.PartsIdentifier.Component).to(Component).inSingletonScope(); // // IocContainer.bind(WorkbenchIoc.PartsIdentifier.ComponentView).to(ComponentView).inSingletonScope(); // IocContainer.bind(WorkbenchIoc.PartsIdentifier.ContextMenu).to(ContextMenu).inSingletonScope(); // IocContainer.bind(WorkbenchIoc.PartsIdentifier.PageViewDnd).to(PageViewDnd).inSingletonScope(); // IocContainer.bind(WorkbenchIoc.PartsIdentifier.PageViewDataset).to(PageViewDataset).inSingletonScope(); // IocContainer.bind(WorkbenchIoc.PartsIdentifier.TemplateViewDataset).to(TemplateViewDataset).inSingletonScope(); IocContainer.bind(WorkbenchIoc.PartsIdentifier.PropEditor).to(PropEditor).inSingletonScope(); IocContainer.bind(WorkbenchIoc.PartsIdentifier.StyleEditor).to(StyleEditor).inSingletonScope(); IocContainer.bind(WorkbenchIoc.PartsIdentifier.EventEditor).to(EventEditor).inSingletonScope(); IocContainer.bind(WorkbenchIoc.PartsIdentifier.HtmlSchema).to(HtmlSchema).inSingletonScope(); IocContainer.bind(WorkbenchIoc.PartsIdentifier.HtmlStage).to(HtmlStage).inSingletonScope(); IocContainer.bind(WorkbenchIoc.PartsIdentifier.Functional).to(Functional).inSingletonScope(); IocContainer.bind(WorkbenchIoc.PartsIdentifier.StyleAccess).to(StyleAccess).inSingletonScope(); // IocContainer.bind(WorkbenchIoc.PartsIdentifier.FunctionFlow).to(FunctionFlow).inSingletonScope(); // IocContainer.bind(WorkbenchIoc.PartsIdentifier.VariableSource).to(VariableSource).inSingletonScope(); export { IocContainer }