"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SumiBrowserContributionRunner = void 0;
const tslib_1 = require("tslib");
const di_1 = require("@opensumi/di");
const ide_core_common_1 = require("@opensumi/ide-core-common");
const types_1 = require("../types");
const chat_1 = require("./chat");
const editor_1 = require("./editor");
const editorSide_1 = require("./editorSide");
const tabbar_1 = require("./tabbar");
const toolbar_1 = require("./toolbar");
let SumiBrowserContributionRunner = class SumiBrowserContributionRunner extends types_1.AbstractSumiBrowserContributionRunner {
    run(param) {
        const disposer = new ide_core_common_1.Disposable();
        disposer.addDispose(this.injector.get(tabbar_1.TabbarBrowserContributionRunner, [this.extension, this.contribution]).run(param));
        disposer.addDispose(this.injector.get(editor_1.EditorBrowserContributionRunner, [this.extension, this.contribution]).run(param));
        disposer.addDispose(this.injector.get(editorSide_1.EditorSideBrowserContributionRunner, [this.extension, this.contribution]).run(param));
        disposer.addDispose(this.injector.get(toolbar_1.ToolBarBrowserContributionRunner, [this.extension, this.contribution]).run(param));
        disposer.addDispose(this.injector.get(chat_1.ChatBrowserContributionRunner, [this.extension, this.contribution]).run(param));
        return disposer;
    }
};
exports.SumiBrowserContributionRunner = SumiBrowserContributionRunner;
tslib_1.__decorate([
    (0, di_1.Autowired)(di_1.INJECTOR_TOKEN),
    tslib_1.__metadata("design:type", di_1.Injector)
], SumiBrowserContributionRunner.prototype, "injector", void 0);
exports.SumiBrowserContributionRunner = SumiBrowserContributionRunner = tslib_1.__decorate([
    (0, di_1.Injectable)({ multiple: true })
], SumiBrowserContributionRunner);
//# sourceMappingURL=index.js.map