nycJSorg/angular-presentation

View on GitHub
apps/codelab/src/app/codelabs/angular/router/router.component.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { CodelabFile } from '../../../shared/helpers/codelabFile';
import { AfterViewInit, Component, ViewChild } from '@angular/core';
import {
  ExerciseConfigTemplate,
  Ng2TsExercises
} from '../../../../../../../ng2ts/ng2ts';
import { extractMessages } from '@codelab/utils/src/lib/i18n/i18n-tools';

declare const require;

interface FileHighlights {
  appModule?: RegExp | RegExp[];
  appHtml?: RegExp | RegExp[];
}

@Component({
  selector: 'codelab-slides-router',
  templateUrl: './router.component.html',
  styleUrls: ['./router.component.css']
})
export class RouterComponent implements AfterViewInit {
  @ViewChild('translations', { static: false }) translations;
  private t: Record<string, string>;
  exercise: ExerciseConfigTemplate;

  code = {
    files: {
      'app.module.ts': require('!!raw-loader!./samples/simple-router/app.module.ts'),
      'app.component.html': require('!!raw-loader!./samples/simple-router/app.component.html'),
      'app.component.ts': require('!!raw-loader!./samples/simple-router/app.component.ts'),
      'components/kitten.ts': require('!!raw-loader!./samples/simple-router/components/kitten.ts'),
      'components/puppy.ts': require('!!raw-loader!./samples/simple-router/components/puppy.ts'),
      'bootstrap.ts': require('!!raw-loader!./samples/simple-router/main.ts'),
      'index.html': require('!!raw-loader!./samples/simple-router/index.html'),
      'components/.html': require('!!raw-loader!./samples/simple-router/index.html')
    },
    config: {
      files: ['app.module.ts'],
      highlights: { 'app.module.ts': /const routes[\s\S]*?];[\s\S]/ }
    },
    configPass: {
      files: ['app.module.ts'],
      highlights: { 'app.module.ts': /RouterModule.forRoot\(routes\)/ }
    },
    routerOutlet: {
      files: ['app.component.html'],
      highlights: { 'app.component.html': /<router-outlet><\/router-outlet>/ }
    },
    menu: {
      files: ['app.component.html'],
      highlights: { 'app.component.html': /<a[\s\S]*\/a>/ }
    }
  };

  constructor(private exercises: Ng2TsExercises) {
    this.exercise = exercises.getExercises(5, 0);
  }

  ngAfterViewInit() {
    this.t = extractMessages(this.translations);
  }
}