UNPKG

ng-star-rate

Version:
125 lines (117 loc) 10.9 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser'), require('@angular/common')) : typeof define === 'function' && define.amd ? define('ng-star-rate', ['exports', '@angular/core', '@angular/platform-browser', '@angular/common'], factory) : (factory((global['ng-star-rate'] = {}),global.ng.core,global.ng.platformBrowser,global.ng.common)); }(this, (function (exports,core,platformBrowser,common) { 'use strict'; /** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ var RatingComponent = (function () { function RatingComponent(el) { this.el = el; this.ratingSelection = new core.EventEmitter(); } /** * @return {?} */ RatingComponent.prototype.ngOnInit = /** * @return {?} */ function () { var /** @type {?} */ style = "\n .active {color :" + this.selctedColor + "; }\n .list:hover .star {color: " + this.selctedColor + "; }\n "; this.createStyle(style); this.generateRating(); }; /** * @param {?} style * @return {?} */ RatingComponent.prototype.createStyle = /** * @param {?} style * @return {?} */ function (style) { var /** @type {?} */ styleElement = document.createElement('style'); styleElement.appendChild(document.createTextNode(style)); this.el.nativeElement.appendChild(styleElement); }; /** * @return {?} */ RatingComponent.prototype.generateRating = /** * @return {?} */ function () { this.stars = Array.from({ length: this.maxRating }, function (v, k) { return k + 1; }); }; /** * @param {?} item * @return {?} */ RatingComponent.prototype.rate = /** * @param {?} item * @return {?} */ function (item) { this.star = (item <= this.maxRating && item >= 0) ? (this.star = this.star === item ? item - 1 : item) : this.star; this.ratingSelection.emit(this.star); }; RatingComponent.decorators = [ { type: core.Component, args: [{ selector: 'lib-star-rate', // templateUrl: './rating.component.html', template: "\n <div class=\"rating\">\n <ul class=\"list\">\n <li\n id=\"starId\"\n class=\"star\"\n *ngFor=\"let item of stars\"\n [ngClass]=\"{'active': item <= star}\"\n (click)=\"rate(item)\">\n <i class=\"fa\" [ngClass]=\"item <= star ? 'fa-star' : 'fa-star-o'\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n <span *ngIf=\"showRatingCounter\">{{ star }} of {{ maxRating }}</span>\n </div>\n ", styles: [ "\n .rating {\n font-family: \"Avenir\", Helvetica, Arial, sans-serif;\n font-size: 22px;\n color: #a7a8a8;\n }\n .list {\n margin: 0 0 5px 0;\n padding: 0;\n list-style-type: none;\n }\n .star {\n display: inline-block;\n cursor: pointer;\n }\n .star:hover ~ .star:not(.active) {\n color: inherit;\n }\n " ] },] }, ]; /** @nocollapse */ RatingComponent.ctorParameters = function () { return [ { type: core.ElementRef } ]; }; RatingComponent.propDecorators = { selctedColor: [{ type: core.Input }], star: [{ type: core.Input }], maxRating: [{ type: core.Input }], showRatingCounter: [{ type: core.Input }], ratingSelection: [{ type: core.Output }] }; return RatingComponent; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ var StarRateModule = (function () { function StarRateModule() { } StarRateModule.decorators = [ { type: core.NgModule, args: [{ declarations: [RatingComponent], imports: [ platformBrowser.BrowserModule, common.CommonModule ], exports: [RatingComponent] },] }, ]; return StarRateModule; }()); /** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ /** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ exports.StarRateModule = StarRateModule; exports.RatingComponent = RatingComponent; Object.defineProperty(exports, '__esModule', { value: true }); }))); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctc3Rhci1yYXRlLnVtZC5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vbmctc3Rhci1yYXRlL2xpYi9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudC50cyIsIm5nOi8vbmctc3Rhci1yYXRlL2xpYi9zdGFyLXJhdGUubW9kdWxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsIElucHV0LCBFdmVudEVtaXR0ZXIsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXN0YXItcmF0ZScsXG4gIC8vIHRlbXBsYXRlVXJsOiAnLi9yYXRpbmcuY29tcG9uZW50Lmh0bWwnLFxuICB0ZW1wbGF0ZTogYFxuICA8ZGl2IGNsYXNzPVwicmF0aW5nXCI+XG4gICAgPHVsIGNsYXNzPVwibGlzdFwiPlxuICAgICAgPGxpXG4gICAgICAgIGlkPVwic3RhcklkXCJcbiAgICAgICAgY2xhc3M9XCJzdGFyXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3RhcnNcIlxuICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGl0ZW0gPD0gc3Rhcn1cIlxuICAgICAgICAoY2xpY2spPVwicmF0ZShpdGVtKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhXCIgW25nQ2xhc3NdPVwiaXRlbSA8PSBzdGFyID8gJ2ZhLXN0YXInIDogJ2ZhLXN0YXItbydcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gICAgPHNwYW4gKm5nSWY9XCJzaG93UmF0aW5nQ291bnRlclwiPnt7IHN0YXIgfX0gb2Yge3sgbWF4UmF0aW5nIH19PC9zcGFuPlxuICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLnJhdGluZyB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBcIkF2ZW5pclwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgIGNvbG9yOiAjYTdhOGE4O1xuICAgICAgfVxuICAgICAgLmxpc3Qge1xuICAgICAgICBtYXJnaW46IDAgMCA1cHggMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgfVxuICAgICAgLnN0YXIge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cbiAgICAgIC5zdGFyOmhvdmVyIH4gLnN0YXI6bm90KC5hY3RpdmUpIHtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICB9XG4gIGBcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBSYXRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBzZWxjdGVkQ29sb3I6IHN0cmluZztcbiAgQElucHV0KCkgc3RhcjogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhSYXRpbmc6IG51bWJlcjtcbiAgQElucHV0KCkgc2hvd1JhdGluZ0NvdW50ZXI6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSByYXRpbmdTZWxlY3Rpb246IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIHN0YXJzOiBBcnJheTxudW1iZXI+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IHN0eWxlID0gYFxuICAgIC5hY3RpdmUge2NvbG9yIDoke3RoaXMuc2VsY3RlZENvbG9yfTsgfVxuICAgIC5saXN0OmhvdmVyIC5zdGFyIHtjb2xvcjogJHt0aGlzLnNlbGN0ZWRDb2xvcn07IH1cbiAgIGA7XG4gICAgdGhpcy5jcmVhdGVTdHlsZShzdHlsZSk7XG4gICAgdGhpcy5nZW5lcmF0ZVJhdGluZygpO1xuICB9XG5cbiAgY3JlYXRlU3R5bGUoc3R5bGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHN0eWxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0eWxlKSk7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKHN0eWxlRWxlbWVudCk7XG4gIH1cblxuICBnZW5lcmF0ZVJhdGluZygpIHtcbiAgICB0aGlzLnN0YXJzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogdGhpcy5tYXhSYXRpbmcgfSwgKHYsIGspID0+IGsgKyAxKTtcbiAgfVxuXG4gIHJhdGUoaXRlbTogbnVtYmVyKSB7XG4gICAgdGhpcy5zdGFyID0gKGl0ZW0gPD0gdGhpcy5tYXhSYXRpbmcgJiYgaXRlbSA+PSAwKSA/XG4gICAgICAodGhpcy5zdGFyID0gdGhpcy5zdGFyID09PSBpdGVtID8gaXRlbSAtIDEgOiBpdGVtKSA6IHRoaXMuc3RhcjtcbiAgICB0aGlzLnJhdGluZ1NlbGVjdGlvbi5lbWl0KHRoaXMuc3Rhcik7XG4gIH1cbn1cbiIsImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmF0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1JhdGluZ0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBCcm93c2VyTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbUmF0aW5nQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBTdGFyUmF0ZU1vZHVsZSB7IH1cbiJdLCJuYW1lcyI6WyJFdmVudEVtaXR0ZXIiLCJDb21wb25lbnQiLCJFbGVtZW50UmVmIiwiSW5wdXQiLCJPdXRwdXQiLCJOZ01vZHVsZSIsIkJyb3dzZXJNb2R1bGUiLCJDb21tb25Nb2R1bGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTtRQWtERSx5QkFBb0IsRUFBYztZQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7bUNBSGdCLElBQUlBLGlCQUFZLEVBQVU7U0FHckM7Ozs7UUFFdkMsa0NBQVE7OztZQUFSO2dCQUNFLHFCQUFNLEtBQUssR0FBRywyQkFDSSxJQUFJLENBQUMsWUFBWSwyQ0FDUCxJQUFJLENBQUMsWUFBWSxhQUM3QyxDQUFDO2dCQUNELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN2Qjs7Ozs7UUFFRCxxQ0FBVzs7OztZQUFYLFVBQVksS0FBYTtnQkFDdkIscUJBQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3JELFlBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUN6RCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakQ7Ozs7UUFFRCx3Q0FBYzs7O1lBQWQ7Z0JBQ0UsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxVQUFDLENBQUMsRUFBRSxDQUFDLElBQUssT0FBQSxDQUFDLEdBQUcsQ0FBQyxHQUFBLENBQUMsQ0FBQzthQUN0RTs7Ozs7UUFFRCw4QkFBSTs7OztZQUFKLFVBQUssSUFBWTtnQkFDZixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxJQUFJLENBQUM7cUJBQzdDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztnQkFDakUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3RDOztvQkF6RUZDLGNBQVMsU0FBQzt3QkFDVCxRQUFRLEVBQUUsZUFBZTs7d0JBRXpCLFFBQVEsRUFBRSxnY0FjVDt3QkFDRCxNQUFNLEVBQUU7NEJBQ04sMFpBa0JEO3lCQUNBO3FCQUNGOzs7Ozt3QkF6Q3dEQyxlQUFVOzs7O21DQTJDaEVDLFVBQUs7MkJBQ0xBLFVBQUs7Z0NBQ0xBLFVBQUs7d0NBQ0xBLFVBQUs7c0NBQ0xDLFdBQU07OzhCQS9DVDs7Ozs7OztBQ0FBOzs7O29CQUtDQyxhQUFRLFNBQUM7d0JBQ1IsWUFBWSxFQUFFLENBQUMsZUFBZSxDQUFDO3dCQUMvQixPQUFPLEVBQUU7NEJBQ1BDLDZCQUFhOzRCQUNiQyxtQkFBWTt5QkFDYjt3QkFDRCxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7cUJBQzNCOzs2QkFaRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9