<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Angular2 playground</title>
</head>

<body>
  
<script src='https://cdn.vaadin.com/vaadin-components/0.3.0-beta7/webcomponentsjs/webcomponents-lite.js'></script>
<link href='https://cdn.vaadin.com/vaadin-components/0.3.0-beta7/vaadin-grid/vaadin-grid.html' rel='import'>
  
    <app>Loading...</app> 
</body> 

<!-- ES6-related imports -->
<script src="http://cdn.rawgit.com/google/traceur-compiler/90da568c7aa8e53ea362db1fc211fbb4f65b5e94/bin/traceur-runtime.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/systemjs/0.18.4/system.js"></script>
<script src="config.js"></script>
<!-- Angular2 import -->
<script src="http://code.angularjs.org/2.0.0-alpha.36/angular2.dev.js"></script>
<script src="http://code.angularjs.org/2.0.0-alpha.36/router.dev.js"></script>


<script>
    //bootstrap the Angular2 application
    System.import('app').catch(console.log.bind(console));
</script>


</html>
import {View, Component, bind, bootstrap} from 'angular2/angular2';
import {ROUTER_BINDINGS, RouteConfig, Router, RouterOutlet, Route, RouterLink, LocationStrategy, HashLocationStrategy} from 'angular2/router';

import {Page1} from 'src/page1';
import {Page2} from 'src/page2';

@Component({
  selector: 'app',
})
@View({
  template: `
    <h1>Landing page</h1>
    Go to:
    <a [router-link]=["./page1"]>Page 1</a>
    <a [router-link]=["./page2"]>Page 2</a>
    
    <a (click)="onClick()" href="#">Route via script</a>
    Other page:
    <router-outlet></router-outlet>
  `,
  directives: [RouterOutlet, RouterLink],
})
@RouteConfig([
  { path: '/page1', component: Page1, as: 'page1' },
  { path: '/page2', component: Page2, as: 'page2' }
])
export class App {
  constructor(router: Router) {
    this.router = router;
  }
  
  onClick(): void {
    this.router.navigate('/page1');
 }
}

bootstrap(App, [ROUTER_BINDINGS, bind(LocationStrategy).toClass(HashLocationStrategy)]);
System.config({
        defaultJSExtensions: true,
        transpiler: 'typescript',
        typescriptOptions: {
          emitDecoratorMetadata: true
        },
        map: {
          typescript: 'https://cdn.rawgit.com/robwormald/9883afae87bffa2f4e00/raw/8bca570a696c47a4f8dd03a52c98734676e94cea/typescript.js'
          
        },
        paths: {
          app: 'src'
        },
        packages: {
          app: {
            main: 'app.ts',
            defaultExtension: 'ts',
          }
        }
    });
import {Component, View, bootstrap, CORE_DIRECTIVES} from 'angular2/angular2';

@Component({
    selector: 'page1',
    
})
@View({
  template: `
  
  
<vaadin-grid #grid (select)="onSelect()">
  <table>
    <colgroup>
      <col header-text="Name">
      <col header-text="Value">
      <col header-text="Progress">
    </colgroup>
    <tbody>
      <tr>
        <td>Project A</td><td>10000</td><td>0.8</td>
      </tr>
      <tr>
        <td>Project B</td><td>999999</td><td>0.8</td>
      </tr>
    </tbody>
  </table>
</vaadin-grid>
  `,
  directives: [CORE_DIRECTIVES]

})
export class Page1 {
  grid = document.querySelector('vaadin-grid');
  constructor() {
  }
  
  onSelect(): void {
    const selectedIndex = this.grid.selection.selected()[0];
    this.grid.data.getItem(selectedIndex, (err, data) => console.log(data));
    
  }
  
  open(): void {
    console.log('open!');
  }
}
import {View, Component} from 'angular2/angular2';

@Component({
  selector: 'page2',
})
@View({
  template: `
    <h1>Welcome on page2</h1>
  `,
  directives: [],
})
export class Page2 {
}