"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
    return c > 3 && r && Object.defineProperty(target, key, r), r;
};
Object.defineProperty(exports, "__esModule", { value: true });
const common_1 = require("@angular/common");
const core_1 = require("@angular/core");
const forms_1 = require("@angular/forms");
const http_1 = require("@angular/http");
const material_1 = require("@angular/material");
const platform_browser_1 = require("@angular/platform-browser");
const platform_browser_dynamic_1 = require("@angular/platform-browser-dynamic");
const animations_1 = require("@angular/platform-browser/animations");
const effects_1 = require("@ngrx/effects");
const store_1 = require("@ngrx/store");
const bundle_upload_service_1 = require("./bundle-upload.service");
const code_resizer_component_1 = require("./code/code-resizer.component");
const code_component_1 = require("./code/code.component");
const console_component_1 = require("./console/console.component");
const console_service_1 = require("./console/console.service");
const expanded_message_component_1 = require("./console/expanded-message.component");
const frame_panel_component_1 = require("./frame-panel/frame-panel.component");
const frame_component_1 = require("./frame/frame.component");
const local_controls_component_1 = require("./frame/local-controls.component");
const remote_controls_component_1 = require("./frame/remote-controls.component");
const history_component_1 = require("./history/history.component");
const host_component_1 = require("./host/host.component");
const http_error_service_1 = require("./http-error.service");
const channel_select_dialog_component_1 = require("./launch-dialog/channel-select-dialog.component");
const launch_dialog_component_1 = require("./launch-dialog/launch-dialog.component");
const link_dialog_component_1 = require("./link-dialog/link-dialog.component");
const login_walkthrough_component_1 = require("./login-walkthrough/login-walkthrough.component");
const code_nav_component_1 = require("./nav/code-nav.component");
const nav_component_1 = require("./nav/nav.component");
const historyEffects_1 = require("./redux/historyEffects");
const project_1 = require("./redux/project");
const rename_bundle_dialog_component_1 = require("./rename-bundle-dialog/rename-bundle-dialog.component");
const safe_pipe_1 = require("./safe.pipe");
const upload_schema_dialog_component_1 = require("./upload-schema/upload-schema-dialog.component");
const upload_schema_service_1 = require("./upload-schema/upload-schema.service");
require('../../../static/editor/style.scss');
/**
 * Primary Editor application.
 */
let AppModule = class AppModule {
};
AppModule = __decorate([
    core_1.NgModule({
        imports: [
            animations_1.BrowserAnimationsModule,
            platform_browser_1.BrowserModule,
            common_1.CommonModule,
            forms_1.FormsModule,
            http_1.HttpModule,
            material_1.MatButtonModule,
            material_1.MatCheckboxModule,
            material_1.MatDialogModule,
            material_1.MatExpansionModule,
            material_1.MatIconModule,
            material_1.MatInputModule,
            material_1.MatListModule,
            material_1.MatMenuModule,
            material_1.MatSelectModule,
            material_1.MatSlideToggleModule,
            material_1.MatSnackBarModule,
            material_1.MatTooltipModule,
            store_1.StoreModule.forRoot(project_1.reducers, { metaReducers: project_1.metaReducers }),
            effects_1.EffectsModule.forRoot([historyEffects_1.HistoryEffects]),
        ],
        declarations: [
            channel_select_dialog_component_1.ChannelSelectDialog,
            code_component_1.CodeComponent,
            code_nav_component_1.CodeNavComponent,
            code_resizer_component_1.CodeResizerComponent,
            console_component_1.ConsoleComponent,
            expanded_message_component_1.ExpandedMessageComponent,
            frame_component_1.FrameComponent,
            frame_panel_component_1.FramePanelComponent,
            history_component_1.HistoryComponent,
            host_component_1.HostComponent,
            launch_dialog_component_1.LaunchDialogComponent,
            link_dialog_component_1.LinkDialogComponent,
            local_controls_component_1.LocalControlsComponent,
            login_walkthrough_component_1.LoginWalkthroughComponent,
            nav_component_1.NavComponent,
            remote_controls_component_1.RemoteControlsComponent,
            rename_bundle_dialog_component_1.RenameBundleDialogComponent,
            safe_pipe_1.SafePipe,
            upload_schema_dialog_component_1.UploadSchemaDialogComponent,
        ],
        entryComponents: [
            channel_select_dialog_component_1.ChannelSelectDialog,
            link_dialog_component_1.LinkDialogComponent,
            launch_dialog_component_1.LaunchDialogComponent,
            upload_schema_dialog_component_1.UploadSchemaDialogComponent,
            rename_bundle_dialog_component_1.RenameBundleDialogComponent,
        ],
        providers: [
            bundle_upload_service_1.BundleUploadService,
            project_1.ProjectService,
            upload_schema_service_1.UploadSchemaService,
            http_error_service_1.HttpErrorService,
            console_service_1.ConsoleService,
        ],
        bootstrap: [host_component_1.HostComponent],
    })
], AppModule);
exports.AppModule = AppModule;
platform_browser_dynamic_1.platformBrowserDynamic().bootstrapModule(AppModule); // tslint:disable-line
