import { Component, Input, ElementRef, TemplateRef, Renderer2, ViewChild, AfterViewInit, OnInit } from '@angular/core';
@Component({
selector: "sam-title",
template: `
`
})
export class SamTitleComponent implements AfterViewInit, OnInit {
@Input() public importance: string;
@Input() public aligned: string;
@Input() public weight: string;
@ViewChild('titleTemplate')
titleTpl: TemplateRef
css_classes: string = 'sam title';
constructor(private renderer: Renderer2){}
ngOnInit(){
this.css_classes += this.aligned ? ` ${this.aligned} aligned` : '';
this.css_classes += this.weight ? ` ${this.weight}` : '';
}
ngAfterViewInit() {
let template = this.titleTpl.elementRef.nativeElement;
let parent = template.parentNode;
let parentContent = parent.innerHTML;
parent.innerHTML = "";
let tag = this.renderer.createElement(this.getTitleTag(this.importance));
this.renderer.setAttribute(tag, 'class', this.css_classes);
this.renderer.setProperty(tag, 'innerHTML', parentContent);
this.renderer.appendChild(parent, tag);
}
getTitleTag(importance):string{
switch(importance){
case "highest":{
return "h1";
}
case "high":{
return "h2";
}
case "normal":{
return "h3";
}
case "low":{
return "h4";
}
}
}
}