Initial import of Angular5 components services and modules

Change-Id: I3953f1fbf7d5697a1c6d432808dd17d816ec285a
diff --git a/web/gui2/src/main/webapp/app/onos.module.ts b/web/gui2/src/main/webapp/app/onos.module.ts
new file mode 100644
index 0000000..717893e
--- /dev/null
+++ b/web/gui2/src/main/webapp/app/onos.module.ts
@@ -0,0 +1,78 @@
+/*
+ * Copyright 2014-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { BrowserModule } from '@angular/platform-browser';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
+import { NgModule } from '@angular/core';
+import { RouterModule, Routes } from '@angular/router';
+
+import { AppsModule } from './view/apps/apps.module';
+import { DeviceModule } from './view/device/device.module';
+
+import { LayerModule } from './fw/layer/layer.module';
+import { MastModule } from './fw/mast/mast.module';
+import { NavModule } from './fw/nav/nav.module';
+import { SvgModule } from './fw/svg/svg.module';
+import { RemoteModule } from './fw/remote/remote.module';
+import { UtilModule } from './fw/util/util.module';
+import { WidgetModule } from './fw/widget/widget.module';
+
+import { AppsComponent } from './view/apps/apps.component';
+import { DeviceComponent } from './view/device/device.component';
+import { OnosComponent } from './onos.component';
+import { DetectBrowserDirective } from './detectbrowser.directive';
+
+import { ConsoleLoggerService } from './consolelogger.service';
+import { LogService } from './log.service';
+import { OnosService } from './onos.service';
+
+const onosRoutes: Routes = [
+  { path: 'apps', component: AppsComponent },        // All except default should be driven by
+  { path: 'device', component: DeviceComponent },    // servlet like {INJECTED-VIEW-DATA-START}
+  { path: '**', component: DeviceComponent } //Change to Topo(2) when it's ready for normal behaviour
+]
+
+/**
+ * ONOS GUI -- Main Application Module
+ */
+@NgModule({
+  declarations: [
+    OnosComponent,
+    DetectBrowserDirective
+  ],
+  imports: [
+    AppsModule,
+    DeviceModule,
+    BrowserModule,
+    BrowserAnimationsModule,
+    LayerModule,
+    MastModule,
+    NavModule,
+    RouterModule.forRoot(onosRoutes, { enableTracing: false }),
+    SvgModule,
+    RemoteModule,
+    UtilModule, // For OnosComponent
+    WidgetModule
+  ],
+  providers: [
+    OnosService,
+    { provide: LogService, useClass: ConsoleLoggerService },
+    { provide: Window, useValue: window }
+  ],
+  bootstrap: [
+    OnosComponent,
+  ]
+})
+export class OnosModule { }