CORD-772 Example UI Extension

Change-Id: I66f9236620a56219cc84a5f7ed5be719751db3bd
diff --git a/src/index.ts b/src/index.ts
new file mode 100644
index 0000000..a8791d7
--- /dev/null
+++ b/src/index.ts
@@ -0,0 +1,48 @@
+/// <reference path="../typings/index.d.ts" />
+import * as angular from 'angular';
+
+import 'angular-ui-router';
+import 'angular-resource';
+import 'angular-cookies';
+import routesConfig from './routes';
+import {xosDemoComponent} from './app/components/demo';
+import {xosDashboardExtensionComponent} from './app/components/dashboard-extension';
+
+
+
+angular.module('xos-sample-gui-extension', [
+    'ui.router',
+    'xosCore'
+  ])
+  .config(routesConfig)
+  .component('demo', xosDemoComponent)
+  .component('dashboardExtension', xosDashboardExtensionComponent)
+  .run(function(
+    $log: ng.ILogService,
+    $state: ng.ui.IStateService,
+    NavigationService: any,
+    XosComponentInjector: any,
+    XosKeyboardShortcut: any) {
+    $log.info('[xos-sample-gui-extension] App is running');
+
+    NavigationService.add({
+      label: 'Example Extension',
+      state: 'xos.xos-sample-gui-extension.example-route',
+    });
+
+    XosComponentInjector.injectComponent(
+      '#dashboard-component-container',
+      'dashboardExtension',
+      {},
+      '',
+      false
+    );
+
+    XosKeyboardShortcut.registerKeyBinding({
+        key: 'd',
+        description: 'Alert popup',
+        cb: () => {
+          alert('This binding is provided by the "xos-sample-gui-extension"');
+        },
+      }, 'global');
+  });