import { Component, Input, ContentChildren, TemplateRef, ContentChild, AfterContentInit } from '@angular/core'; import { RdComponent } from '../../base/rdComponent'; export type StatusBoxColors = "red" | "green" | "blue" | "yellow" | "purple" | "lilac" | "cyan" | "darkblue"; @Component({ selector: 'rd-status-box-content', template: ` ` }) export class StatusBoxContent extends RdComponent { @Input('rd-text') text: string; // rd-title @Input('rd-icon') icon: string; @Input('rd-color') color: StatusBoxColors; @Input('rd-explanation-tooltip') tooltip: string; @ContentChild(TemplateRef) template; } @Component({ selector: 'rd-status-box', template: `
{{item.text}}
` }) export class StatusBox extends RdComponent implements AfterContentInit { @ContentChildren(StatusBoxContent) contents; colmdClass = "col-md-3"; ngAfterContentInit() { let contentCount = Math.ceil(this.contents._results.length); switch (contentCount) { case 2: this.colmdClass = "col-md-6"; break; case 3: this.colmdClass = "col-md-4"; break; case 4: this.colmdClass = "col-md-3"; break; case 5: case 6: this.colmdClass = "col-md-6"; break; } } // getColorClass(color: StatusBoxColors) { // switch (color) { // case 'red': return 'm--font-danger'; // case 'green': return 'm--font-success'; // case 'blue': return 'm--font-info'; // case 'yellow': return 'm--font-warning'; // case 'purple': return 'm--font-focus'; // case 'lilac': return 'm--font-brand'; // case 'cyan': return 'm--font-accent'; // case 'darkblue': return 'm--font-primary'; // default: return 'm--font-accent'; // } // } colorClasses = { red: 'm--font-danger', green: 'm--font-success', blue: 'm--font-info', yellow: 'm--font-warning', purple: 'm--font-focus', lilac: 'm--font-brand', cyan: 'm--font-accent', darkblue: 'm--font-primary' } }