diff --git a/src/app/heroes/heroes.component.css b/src/app/heroes/heroes.component.css new file mode 100644 index 0000000000000000000000000000000000000000..4d30370d48c944c895d0ac19c0c8bbc5e29a8528 --- /dev/null +++ b/src/app/heroes/heroes.component.css @@ -0,0 +1,49 @@ +/* HeroesComponent's private CSS styles */ +.selected { + background-color: blue !important; + color: white; +} +.heroes { + margin: 0 0 2em 0; + list-style-type: none; + padding: 0; + width: 15em; +} +.heroes li { + cursor: pointer; + position: relative; + left: 0; + background-color: #EEE; + margin: .5em; + padding: .3em 0; + height: 1.6em; + border-radius: 4px; +} +.heroes li.selected:hover { + background-color: #BBD8DC !important; + color: white; +} +.heroes li:hover { + color: #607D8B; + background-color: #DDD; + left: .1em; +} +.heroes .text { + position: relative; + top: -3px; + size: 100px; +} +.heroes .badge { + display: inline-block; + font-size: small; + color: white; + padding: 0.4em 0.7em 0 0.7em; + background-color: #607D8B; + line-height: 1em; + position: relative; + left: -1px; + top: -4px; + height: 1.8em; + margin-right: .8em; + border-radius: 4px 0 0 4px; +} diff --git a/src/app/heroes/heroes.component.html b/src/app/heroes/heroes.component.html new file mode 100644 index 0000000000000000000000000000000000000000..967a33fef03840d18fd7ab3f88c50bd109f12cf1 --- /dev/null +++ b/src/app/heroes/heroes.component.html @@ -0,0 +1,28 @@ +<div class="container-fluid"> +<h2>My Heroes</h2> +<div class="heroes row"> + <div class="col-md-4 col-sm-6 col-12" *ngFor="let hero of heroes" + [class.selected]="hero === selectedHero" + (click)="onSelect(hero, $event)"> + <span class="text">{{hero.name}}</span> + </div> +</div> + +<app-hero-detail [hero]="selectedHero"></app-hero-detail> + + <div class="row"> + <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div> + <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div> + <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div> + </div> + +</div> + +<div> + <div class="row heroes "> + <div class="column is-one-third col-xs-6 col-md-4" *ngFor="let hero of heroes; let index = index"> + <div class="green"> green- {{index}} </div> + <div class ="row blue" *ngIf="(index + 1) % 3 == 0"> blue - {{index}} </div> + </div> + </div> +</div> diff --git a/src/app/heroes/heroes.component.spec.ts b/src/app/heroes/heroes.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..f0c28145804d5fbe8ff85a8de0ea6ceeae0e081c --- /dev/null +++ b/src/app/heroes/heroes.component.spec.ts @@ -0,0 +1,26 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HeroesComponent } from './heroes.component'; +import { HEROES } from '../mock-heroes'; + +describe('HeroesComponent', () => { + let component: HeroesComponent; + let fixture: ComponentFixture<HeroesComponent>; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ HeroesComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(HeroesComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/heroes/heroes.component.ts b/src/app/heroes/heroes.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..e2d280d770b1a5d08712f36aa036dfc16f5400f5 --- /dev/null +++ b/src/app/heroes/heroes.component.ts @@ -0,0 +1,28 @@ +import { Component, OnInit } from '@angular/core'; +import { Hero } from '../hero'; +import { HEROES } from '../mock-heroes'; +import {Event} from '@angular/router'; + +@Component({ + selector: 'app-heroes', + templateUrl: './heroes.component.html', + styleUrls: ['./heroes.component.css'] +}) + +export class HeroesComponent implements OnInit { + heroes = HEROES; + + selectedHero: Hero; + + onSelect(hero: Hero, event: Event): void { + this.selectedHero = hero; + // Log the mouse event details + console.dir( event ); + } + + constructor() { } + + ngOnInit() { + } + +}