import { Component, Input, ContentChildren, ContentChild, TemplateRef, OnChanges, AfterContentInit } from '@angular/core';
import { RdComponent } from '../../base/rdComponent'
@Component({
selector: 'rd-column',
template: `
`
})
export class Column extends RdComponent {
@ContentChild(TemplateRef) template;
}
@Component({
selector: 'rd-columns',
template: `
`
})
export class Columns extends RdComponent implements OnChanges, AfterContentInit {
@Input("rd-count") columnCount: number | string;
@ContentChildren(Column) columns;
columnClass;
templates;
refreshTemplates() {
if (!this.columns) return;
var columnCount = Number(this.columnCount);
this.templates = [];
for (var i = 0; i < Math.ceil(this.columns._results.length / columnCount); i++) {
var innerArray = [];
for (var j = 0; j < Math.min((this.columns._results.length - i * columnCount), columnCount); j++) {
innerArray.push(this.columns._results[i * columnCount + j].template);
}
this.templates.push(innerArray);
}
}
ngAfterContentInit() {
this.refreshTemplates();
}
ngOnChanges(changes) {
if (changes.columnCount) {
switch (Number(this.columnCount)) {
case 1:
this.columnClass = "col-md-12";
break;
case 2:
this.columnClass = "col-md-6";
break;
case 3:
this.columnClass = "col-md-4";
break;
case 4:
this.columnClass = "col-md-3";
break;
case 6:
this.columnClass = "col-md-2";
break;
case 12:
this.columnClass = "col-md-1";
break;
default:
this.error("invalid column count:'" + this.columnCount + "' accepted values: (1,2,3,4,6,12)")
}
this.refreshTemplates();
}
}
}