import { Component, Input, Output, ElementRef, EventEmitter } from '@angular/core';
import { RdComponent } from "../../base/rdComponent";
import { StyleLoaderService } from '../../library/style-loader.service';
import { ScriptLoaderService } from '../../library/script-loader.service';
@Component({
selector: 'rd-star-rating',
template: `
`
})
export class StarRating extends RdComponent {
constructor(private script: ScriptLoaderService, private style: StyleLoaderService, private element: ElementRef) {
super();
this.style.load(["./assets/css/star-rating.min.css"]);
this.script.load(["./assets/js/star-rating.min.js"]).then(() => { this.setStarRating() });
}
@Input("rd-value") value: number = 0;
@Input("rd-count") count: number = 5;
@Input("rd-step") step: number = 1;
@Output("rd-value-change") valueChange: EventEmitter = new EventEmitter();
setStarRating() {
this.jQuery(this.element.nativeElement).find("#starRating").rating({
min: 0,
max: this.count,
step: this.step,
stars: this.count,
filledStar: '',
emptyStar: '',
clearButton: ''
});
this.jQuery('.rating').on("change", (e) => this.valueChange.emit(e.target.value));
}
}