diff --git a/@packaged/angular-star-rating.tgz b/@packaged/angular-star-rating.tgz index 02134b3..99c5da7 100644 Binary files a/@packaged/angular-star-rating.tgz and b/@packaged/angular-star-rating.tgz differ diff --git a/@packaged/angular-star-rating/angular-star-rating.metadata.json b/@packaged/angular-star-rating/angular-star-rating.metadata.json index 17abe05..167aa9c 100644 --- a/@packaged/angular-star-rating/angular-star-rating.metadata.json +++ b/@packaged/angular-star-rating/angular-star-rating.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":4,"metadata":{"ClickEvent":{"__symbolic":"interface"},"HoverRatingChangeEvent":{"__symbolic":"interface"},"RatingChangeEvent":{"__symbolic":"interface"},"StarRatingConfig":{"__symbolic":"class","members":{}},"StarRatingUtils":{"__symbolic":"class","members":{},"statics":{"getHalfStarVisible":{"__symbolic":"function","parameters":["rating"],"value":{"__symbolic":"binop","operator":">","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Math"},"member":"abs"},"arguments":[{"__symbolic":"binop","operator":"%","left":{"__symbolic":"reference","name":"rating"},"right":1}]},"right":0}},"isDigitKeyEventCode":{"__symbolic":"function","parameters":["eventCode"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"eventCode"},"member":"indexOf"},"arguments":["Digit"]},"right":0}}}},"StarRating":{"__symbolic":"class","members":{"setRating":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"StarRatingConfigService"}]}],"svgVisible":[{"__symbolic":"method"}],"interactionPossible":[{"__symbolic":"method"}],"setColor":[{"__symbolic":"method"}],"setHalfStarVisible":[{"__symbolic":"method"}],"getComponentClassNames":[{"__symbolic":"method"}],"increment":[{"__symbolic":"method"}],"decrement":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]}},"StarRatingConfigService":{"__symbolic":"class","members":{"getColor":[{"__symbolic":"method"}],"getHalfStarVisible":[{"__symbolic":"method"}]}},"StarRatingComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StarRating"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"star-rating-comp","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":10,"character":11},"useExisting":{"__symbolic":"reference","name":"StarRatingComponent"},"multi":true}],"inputs":["getHalfStarVisible","getColor","showHalfStars","hoverEnabled","rating","step","disabled","readOnly","space","starType","size","speed","numOfStars","direction","staticColor","labelPosition","labelText","id"],"outputs":["starClickChange","ratingChange","hoverRatingChange"],"styles":[],"template":"
\n
{{labelText}}
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n"}]}],"members":{"saveOnClick":[{"__symbolic":"method"}],"saveOnRatingChange":[{"__symbolic":"method"}],"saveOnHover":[{"__symbolic":"method"}],"saveOnTouch":[{"__symbolic":"method"}],"saveOnModelChange":[{"__symbolic":"method"}],"onKeyDown":[{"__symbolic":"method"}],"onBlur":[{"__symbolic":"method"}],"onFocus":[{"__symbolic":"method"}],"onStarHover":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"StarRatingConfigService"}]}],"setRating":[{"__symbolic":"method"}],"onStarClicked":[{"__symbolic":"method"}]}},"StarRatingModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":8,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":9,"character":12}],"declarations":[[{"__symbolic":"reference","name":"StarRatingComponent"}]],"exports":[[[{"__symbolic":"reference","name":"StarRatingComponent"}]]]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"StarRatingModule"},"providers":[{"__symbolic":"reference","name":"StarRatingConfigService"}]}},"forChild":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"StarRatingModule"},"providers":[]}}}}},"origins":{"ClickEvent":"./src/interfaces/click-event.interface","HoverRatingChangeEvent":"./src/interfaces/hover-rating-change-event.interface","RatingChangeEvent":"./src/interfaces/rating-change-event.interface","StarRatingConfig":"./src/interfaces/star-rating-config.interface","StarRatingUtils":"./src/services/star-rating.utils","StarRating":"./src/services/star-rating","StarRatingConfigService":"./src/services/star-rating-config.service","StarRatingComponent":"./src/components/star-rating.component","StarRatingModule":"./src/angular-star-rating.module"},"importAs":"angular-star-rating"} \ No newline at end of file +{"__symbolic":"module","version":4,"metadata":{"ClickEvent":{"__symbolic":"interface"},"HoverRatingChangeEvent":{"__symbolic":"interface"},"RatingChangeEvent":{"__symbolic":"interface"},"StarRatingConfig":{"__symbolic":"class","members":{}},"StarRatingUtils":{"__symbolic":"class","members":{},"statics":{"getHalfStarVisible":{"__symbolic":"function","parameters":["rating"],"value":{"__symbolic":"binop","operator":">","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Math"},"member":"abs"},"arguments":[{"__symbolic":"binop","operator":"%","left":{"__symbolic":"reference","name":"rating"},"right":1}]},"right":0}},"isDigitKeyEventCode":{"__symbolic":"function","parameters":["eventCode"],"value":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"eventCode"},"member":"indexOf"},"arguments":["Digit"]},"right":0}}}},"StarRating":{"__symbolic":"class","members":{"setRating":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"StarRatingConfigService"}]}],"svgVisible":[{"__symbolic":"method"}],"interactionPossible":[{"__symbolic":"method"}],"setColor":[{"__symbolic":"method"}],"setHalfStarVisible":[{"__symbolic":"method"}],"getComponentClassNames":[{"__symbolic":"method"}],"increment":[{"__symbolic":"method"}],"decrement":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}]}},"StarRatingConfigService":{"__symbolic":"class","members":{"getColor":[{"__symbolic":"method"}],"getHalfStarVisible":[{"__symbolic":"method"}]}},"StarRatingComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StarRating"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"star-rating","inputs":["getHalfStarVisible","getColor","showHalfStars","hoverEnabled","rating","step","disabled","readOnly","space","starType","size","speed","numOfStars","direction","staticColor","labelPosition","labelText","id"],"outputs":["starClickChange","ratingChange","hoverRatingChange"],"styles":[],"template":"
\n
{{labelText}}
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n"}]}],"members":{"saveOnClick":[{"__symbolic":"method"}],"saveOnRatingChange":[{"__symbolic":"method"}],"saveOnHover":[{"__symbolic":"method"}],"onKeyDown":[{"__symbolic":"method"}],"onStarHover":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"StarRatingConfigService"}]}],"setRating":[{"__symbolic":"method"}],"onStarClicked":[{"__symbolic":"method"}]}},"StarRatingControlComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"StarRating"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"star-rating-control","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":10,"character":11},"useExisting":{"__symbolic":"reference","name":"StarRatingControlComponent"},"multi":true}],"inputs":["getHalfStarVisible","getColor","showHalfStars","hoverEnabled","rating","step","disabled","readOnly","space","starType","size","speed","numOfStars","direction","staticColor","labelPosition","labelText","id"],"outputs":["starClickChange","ratingChange","hoverRatingChange"],"styles":[],"template":"
\n
{{labelText}}
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n"}]}],"members":{"saveOnClick":[{"__symbolic":"method"}],"saveOnRatingChange":[{"__symbolic":"method"}],"saveOnHover":[{"__symbolic":"method"}],"saveOnTouch":[{"__symbolic":"method"}],"saveOnModelChange":[{"__symbolic":"method"}],"onKeyDown":[{"__symbolic":"method"}],"onBlur":[{"__symbolic":"method"}],"onFocus":[{"__symbolic":"method"}],"onStarHover":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"StarRatingConfigService"}]}],"setRating":[{"__symbolic":"method"}],"onStarClicked":[{"__symbolic":"method"}]}},"StarRatingModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":12,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":13,"character":12}],"declarations":[[{"__symbolic":"reference","name":"StarRatingComponent"},{"__symbolic":"reference","name":"StarRatingControlComponent"}]],"exports":[[[{"__symbolic":"reference","name":"StarRatingComponent"},{"__symbolic":"reference","name":"StarRatingControlComponent"}]]]}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"StarRatingModule"},"providers":[{"__symbolic":"reference","name":"StarRatingConfigService"}]}},"forChild":{"__symbolic":"function","parameters":[],"value":{"ngModule":{"__symbolic":"reference","name":"StarRatingModule"},"providers":[]}}}}},"origins":{"ClickEvent":"./src/interfaces/click-event.interface","HoverRatingChangeEvent":"./src/interfaces/hover-rating-change-event.interface","RatingChangeEvent":"./src/interfaces/rating-change-event.interface","StarRatingConfig":"./src/interfaces/star-rating-config.interface","StarRatingUtils":"./src/services/star-rating.utils","StarRating":"./src/services/star-rating","StarRatingConfigService":"./src/services/star-rating-config.service","StarRatingComponent":"./src/components/star-rating/star-rating.component","StarRatingControlComponent":"./src/components/star-rating-control/star-rating-control.component","StarRatingModule":"./src/angular-star-rating.module"},"importAs":"angular-star-rating"} \ No newline at end of file diff --git a/@packaged/angular-star-rating/bundles/angular-star-rating.umd.js b/@packaged/angular-star-rating/bundles/angular-star-rating.umd.js index c1ff882..f44bb65 100644 --- a/@packaged/angular-star-rating/bundles/angular-star-rating.umd.js +++ b/@packaged/angular-star-rating/bundles/angular-star-rating.umd.js @@ -567,11 +567,6 @@ var StarRatingConfigService = /** @class */ (function () { }; return StarRatingConfigService; }()); -var STAR_RATING_CONTROL_ACCESSOR = { - provide: forms.NG_VALUE_ACCESSOR, - useExisting: core.forwardRef(function () { return StarRatingComponent; }), - multi: true -}; var StarRatingComponent = /** @class */ (function (_super) { __extends(StarRatingComponent, _super); function StarRatingComponent(config) { @@ -579,8 +574,6 @@ var StarRatingComponent = /** @class */ (function (_super) { _this.starClickChange = new core.EventEmitter(); _this.ratingChange = new core.EventEmitter(); _this.hoverRatingChange = new core.EventEmitter(); - _this.onModelChangeRegistered = false; - _this.onTouchRegistered = false; return _this; } StarRatingComponent.prototype.saveOnClick = function ($event) { @@ -598,17 +591,140 @@ var StarRatingComponent = /** @class */ (function (_super) { this.hoverRatingChange.emit($event); } }; - StarRatingComponent.prototype.saveOnTouch = function () { + StarRatingComponent.prototype.onKeyDown = function (event) { + var _this = this; + if (!this.interactionPossible()) { + return; + } + var handlers = { + Minus: function () { return _this.decrement(); }, + ArrowDown: function () { return _this.decrement(); }, + ArrowLeft: function () { return _this.decrement(); }, + Plus: function () { return _this.increment(); }, + ArrowRight: function () { return _this.increment(); }, + ArrowUp: function () { return _this.increment(); }, + Backspace: function () { return _this.reset(); }, + Delete: function () { return _this.reset(); }, + Digit0: function () { return _this.reset(); } + }; + var handleDigits = function (eventCode) { + var dStr = 'Digit'; + var digit = parseInt(eventCode.substr(dStr.length, eventCode.length - 1), 10); + _this.rating = digit; + }; + if (handlers[event['code']] || + StarRatingUtils.isDigitKeyEventCode(event['code'])) { + if (StarRatingUtils.isDigitKeyEventCode(event['code'])) { + handleDigits(event['code']); + } + else { + handlers[event['code']](); + } + event.preventDefault(); + event.stopPropagation(); + } + }; + StarRatingComponent.prototype.onStarHover = function (rating) { + if (!this.interactionPossible() || !this.hoverEnabled) { + return; + } + this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0; + var $event = { hoverRating: this.hoverRating }; + this.saveOnHover($event); + }; + StarRatingComponent.prototype.setRating = function (value) { + var initValue = this.rating; + _super.prototype.setRating.call(this, value); + if (initValue !== this.rating) { + var $event = { rating: this.rating }; + this.saveOnRatingChange($event); + } + }; + StarRatingComponent.prototype.onStarClicked = function (rating) { + if (!this.interactionPossible()) { + return; + } + this.rating = rating; + var onClickEventObject = { + rating: this.rating + }; + this.saveOnClick(onClickEventObject); + }; + return StarRatingComponent; +}(StarRating)); +StarRatingComponent.decorators = [ + { type: core.Component, args: [{ + selector: 'star-rating', + inputs: [ + 'getHalfStarVisible', + 'getColor', + 'showHalfStars', + 'hoverEnabled', + 'rating', + 'step', + 'disabled', + 'readOnly', + 'space', + 'starType', + 'size', + 'speed', + 'numOfStars', + 'direction', + 'staticColor', + 'labelPosition', + 'labelText', + 'id' + ], + outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'], + styles: [], + template: "
\n
{{labelText}}
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n" + },] }, +]; +StarRatingComponent.ctorParameters = function () { return [ + { type: StarRatingConfigService, }, +]; }; +var STAR_RATING_CONTROL_ACCESSOR = { + provide: forms.NG_VALUE_ACCESSOR, + useExisting: core.forwardRef(function () { return StarRatingControlComponent; }), + multi: true +}; +var StarRatingControlComponent = /** @class */ (function (_super) { + __extends(StarRatingControlComponent, _super); + function StarRatingControlComponent(config) { + var _this = _super.call(this, config) || this; + _this.starClickChange = new core.EventEmitter(); + _this.ratingChange = new core.EventEmitter(); + _this.hoverRatingChange = new core.EventEmitter(); + _this.onModelChangeRegistered = false; + _this.onTouchRegistered = false; + return _this; + } + StarRatingControlComponent.prototype.saveOnClick = function ($event) { + if (this.starClickChange) { + this.starClickChange.emit($event); + } + }; + StarRatingControlComponent.prototype.saveOnRatingChange = function ($event) { + if (this.ratingChange) { + this.ratingChange.emit($event); + } + }; + StarRatingControlComponent.prototype.saveOnHover = function ($event) { + if (this.hoverRatingChange) { + this.hoverRatingChange.emit($event); + } + }; + StarRatingControlComponent.prototype.saveOnTouch = function () { if (this.onTouchRegistered) { this.onTouch(); } }; - StarRatingComponent.prototype.saveOnModelChange = function (value) { + StarRatingControlComponent.prototype.saveOnModelChange = function (value) { if (this.onModelChangeRegistered) { this.onModelChange(value); } }; - StarRatingComponent.prototype.onKeyDown = function (event) { + StarRatingControlComponent.prototype.onKeyDown = function (event) { var _this = this; if (!this.interactionPossible()) { return; @@ -626,7 +742,7 @@ var StarRatingComponent = /** @class */ (function (_super) { }; var handleDigits = function (eventCode) { var dStr = 'Digit'; - var digit = parseInt(eventCode.substr(dStr.length, eventCode.length - 1)); + var digit = parseInt(eventCode.substr(dStr.length, eventCode.length - 1), 10); _this.rating = digit; }; if (handlers[event['code']] || @@ -642,38 +758,38 @@ var StarRatingComponent = /** @class */ (function (_super) { } this.saveOnTouch(); }; - StarRatingComponent.prototype.onBlur = function (event) { + StarRatingControlComponent.prototype.onBlur = function (event) { this.focus = false; event.preventDefault(); event.stopPropagation(); this.saveOnTouch(); }; - StarRatingComponent.prototype.onFocus = function (event) { + StarRatingControlComponent.prototype.onFocus = function (event) { this.focus = true; event.preventDefault(); event.stopPropagation(); this.saveOnTouch(); }; - StarRatingComponent.prototype.onStarHover = function (rating) { + StarRatingControlComponent.prototype.onStarHover = function (rating) { if (!this.interactionPossible() || !this.hoverEnabled) { return; } - this.hoverRating = rating ? parseInt(rating.toString()) : 0; + this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0; var $event = { hoverRating: this.hoverRating }; this.saveOnHover($event); }; - StarRatingComponent.prototype.writeValue = function (obj) { + StarRatingControlComponent.prototype.writeValue = function (obj) { this.rating = obj; }; - StarRatingComponent.prototype.registerOnChange = function (fn) { + StarRatingControlComponent.prototype.registerOnChange = function (fn) { this.onModelChange = fn; this.onModelChangeRegistered = true; }; - StarRatingComponent.prototype.registerOnTouched = function (fn) { + StarRatingControlComponent.prototype.registerOnTouched = function (fn) { this.onTouch = fn; this.onTouchRegistered = true; }; - StarRatingComponent.prototype.setRating = function (value) { + StarRatingControlComponent.prototype.setRating = function (value) { var initValue = this.rating; _super.prototype.setRating.call(this, value); if (initValue !== this.rating) { @@ -682,7 +798,7 @@ var StarRatingComponent = /** @class */ (function (_super) { this.saveOnModelChange(this.rating); } }; - StarRatingComponent.prototype.onStarClicked = function (rating) { + StarRatingControlComponent.prototype.onStarClicked = function (rating) { if (!this.interactionPossible()) { return; } @@ -692,11 +808,11 @@ var StarRatingComponent = /** @class */ (function (_super) { }; this.saveOnClick(onClickEventObject); }; - return StarRatingComponent; + return StarRatingControlComponent; }(StarRating)); -StarRatingComponent.decorators = [ +StarRatingControlComponent.decorators = [ { type: core.Component, args: [{ - selector: 'star-rating-comp', + selector: 'star-rating-control', providers: [STAR_RATING_CONTROL_ACCESSOR], inputs: [ 'getHalfStarVisible', @@ -723,10 +839,13 @@ StarRatingComponent.decorators = [ template: "
\n
{{labelText}}
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n" },] }, ]; -StarRatingComponent.ctorParameters = function () { return [ +StarRatingControlComponent.ctorParameters = function () { return [ { type: StarRatingConfigService, }, ]; }; -var DECLARATIONS = [StarRatingComponent]; +var DECLARATIONS = [ + StarRatingComponent, + StarRatingControlComponent +]; var EXPORTS = [DECLARATIONS]; var StarRatingModule = /** @class */ (function () { function StarRatingModule() { @@ -761,6 +880,7 @@ exports.StarRatingUtils = StarRatingUtils; exports.StarRating = StarRating; exports.StarRatingConfigService = StarRatingConfigService; exports.StarRatingComponent = StarRatingComponent; +exports.StarRatingControlComponent = StarRatingControlComponent; exports.StarRatingModule = StarRatingModule; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/@packaged/angular-star-rating/bundles/angular-star-rating.umd.js.map b/@packaged/angular-star-rating/bundles/angular-star-rating.umd.js.map index 876cf64..afb919a 100644 --- a/@packaged/angular-star-rating/bundles/angular-star-rating.umd.js.map +++ b/@packaged/angular-star-rating/bundles/angular-star-rating.umd.js.map @@ -3,7 +3,8 @@ "file": "angular-star-rating.umd.js", "sources": [ "ng://angular-star-rating/out/src/angular-star-rating.module.ts", - "ng://angular-star-rating/out/src/components/star-rating.component.ts", + "ng://angular-star-rating/out/src/components/star-rating-control/star-rating-control.component.ts", + "ng://angular-star-rating/out/src/components/star-rating/star-rating.component.ts", "ng://angular-star-rating/out/src/services/star-rating-config.service.ts", "ng://angular-star-rating/out/src/services/star-rating.ts", "ng://angular-star-rating/out/src/services/star-rating.utils.ts", @@ -11,8 +12,9 @@ "ng://angular-star-rating/node_modules/tslib/tslib.es6.js" ], "sourcesContent": [ - "import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { StarRatingComponent } from './components/star-rating.component';\r\nimport { StarRatingConfigService } from './services/star-rating-config.service';\r\n\r\nconst DECLARATIONS = [StarRatingComponent];\r\nconst EXPORTS = [DECLARATIONS];\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DECLARATIONS],\r\n exports: [EXPORTS]\r\n})\r\nexport class StarRatingModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: [\r\n StarRatingConfigService\r\n ]\r\n };\r\n }\r\n\r\n static forChild(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n", - "import { Component, EventEmitter, forwardRef, Input } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ClickEvent } from '../interfaces/click-event.interface';\r\nimport { HoverRatingChangeEvent } from '../interfaces/hover-rating-change-event.interface';\r\nimport { RatingChangeEvent } from '../interfaces/rating-change-event.interface';\r\nimport { StarRating } from '../services/star-rating';\r\nimport { StarRatingConfigService } from '../services/star-rating-config.service';\r\nimport { StarRatingUtils } from '../services/star-rating.utils';\r\n\r\nconst STAR_RATING_CONTROL_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => StarRatingComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'star-rating-comp',\r\n providers: [STAR_RATING_CONTROL_ACCESSOR],\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `
\r\n
{{labelText}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\nexport class StarRatingComponent extends StarRating\r\n implements ControlValueAccessor {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter = new EventEmitter();\r\n\r\n ratingChange: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n onTouch: Function;\r\n onModelChange: Function;\r\n private onModelChangeRegistered = false;\r\n private onTouchRegistered = false;\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnTouch() {\r\n if (this.onTouchRegistered) {\r\n this.onTouch();\r\n }\r\n }\r\n\r\n saveOnModelChange(value: number) {\r\n if (this.onModelChangeRegistered) {\r\n this.onModelChange(value);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n let dStr = 'Digit';\r\n let digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1)\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n this.saveOnTouch();\r\n }\r\n\r\n //Focus events\r\n onBlur(event: FocusEvent) {\r\n this.focus = false;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n onFocus(event: FocusEvent) {\r\n this.focus = true;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString()) : 0;\r\n\r\n //fire onHoverRatingChange event\r\n let $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n /**Form Control - ControlValueAccessor implementation**/\r\n\r\n writeValue(obj: any): void {\r\n this.rating = obj;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n this.onModelChangeRegistered = true;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n this.onTouchRegistered = true;\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n let initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n let $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n\r\n this.saveOnModelChange(this.rating);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n let onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n", + "import {CommonModule} from '@angular/common';\r\nimport {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {StarRatingComponent} from './components/star-rating/star-rating.component';\r\nimport {StarRatingControlComponent} from './components/star-rating-control/star-rating-control.component';\r\nimport {StarRatingConfigService} from './services/star-rating-config.service';\r\n\r\nconst DECLARATIONS = [\r\n StarRatingComponent,\r\n StarRatingControlComponent\r\n];\r\nconst EXPORTS = [DECLARATIONS];\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DECLARATIONS],\r\n exports: [EXPORTS]\r\n})\r\nexport class StarRatingModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: [\r\n StarRatingConfigService\r\n ]\r\n };\r\n }\r\n\r\n static forChild(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n", + "import {Component, EventEmitter, forwardRef} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {ClickEvent} from '../../interfaces/click-event.interface';\r\nimport {HoverRatingChangeEvent} from '../../interfaces/hover-rating-change-event.interface';\r\nimport {RatingChangeEvent} from '../../interfaces/rating-change-event.interface';\r\nimport {StarRating} from '../../services/star-rating';\r\nimport {StarRatingConfigService} from '../../services/star-rating-config.service';\r\nimport {StarRatingUtils} from '../../services/star-rating.utils';\r\n\r\nconst STAR_RATING_CONTROL_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => StarRatingControlComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'star-rating-control',\r\n providers: [STAR_RATING_CONTROL_ACCESSOR],\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `
\r\n
{{labelText}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\nexport class StarRatingControlComponent extends StarRating\r\n implements ControlValueAccessor {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter = new EventEmitter();\r\n\r\n ratingChange: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n onTouch: Function;\r\n onModelChange: Function;\r\n private onModelChangeRegistered = false;\r\n private onTouchRegistered = false;\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnTouch() {\r\n if (this.onTouchRegistered) {\r\n this.onTouch();\r\n }\r\n }\r\n\r\n saveOnModelChange(value: number) {\r\n if (this.onModelChangeRegistered) {\r\n this.onModelChange(value);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n const dStr = 'Digit';\r\n const digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1), 10\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n this.saveOnTouch();\r\n }\r\n\r\n //Focus events\r\n onBlur(event: FocusEvent) {\r\n this.focus = false;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n onFocus(event: FocusEvent) {\r\n this.focus = true;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0;\r\n\r\n //fire onHoverRatingChange event\r\n const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n /**Form Control - ControlValueAccessor implementation**/\r\n\r\n writeValue(obj: any): void {\r\n this.rating = obj;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n this.onModelChangeRegistered = true;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n this.onTouchRegistered = true;\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n const initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n const $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n\r\n this.saveOnModelChange(this.rating);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n const onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n", + "import {Component, EventEmitter} from '@angular/core';\r\nimport {ClickEvent} from '../../interfaces/click-event.interface';\r\nimport {HoverRatingChangeEvent} from '../../interfaces/hover-rating-change-event.interface';\r\nimport {RatingChangeEvent} from '../../interfaces/rating-change-event.interface';\r\nimport {StarRating} from '../../services/star-rating';\r\nimport {StarRatingConfigService} from '../../services/star-rating-config.service';\r\nimport {StarRatingUtils} from '../../services/star-rating.utils';\r\n\r\n@Component({\r\n selector: 'star-rating',\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `
\r\n
{{labelText}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\nexport class StarRatingComponent extends StarRating {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter = new EventEmitter();\r\n\r\n ratingChange: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n const dStr = 'Digit';\r\n const digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1), 10\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0;\r\n\r\n //fire onHoverRatingChange event\r\n const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n const initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n const $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n const onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n", "import {\r\n StarRatingConfig,\r\n starRatingColor,\r\n starRatingSizes,\r\n starRatingSpeed,\r\n starRatingStarTypes,\r\n starRatingLabelPosition\r\n} from '../interfaces/star-rating-config.interface';\r\n\r\n/**\r\n * Configuration service for the StarRating component.\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the star ratings used in the application.\r\n */\r\nexport class StarRatingConfigService implements StarRatingConfig {\r\n _classEmpty = 'default-star-empty-icon';\r\n\r\n get classEmpty() {\r\n return this._classEmpty;\r\n }\r\n\r\n set classEmpty(classEmpty: string) {\r\n this._classEmpty = classEmpty;\r\n }\r\n\r\n private _classHalf = 'default-star-half-icon';\r\n\r\n get classHalf(): string {\r\n return this._classHalf;\r\n }\r\n\r\n set classHalf(classHalf: string) {\r\n this._classHalf = classHalf;\r\n }\r\n\r\n private _classFilled = 'default-star-filled-icon';\r\n\r\n get classFilled(): string {\r\n return this._classFilled;\r\n }\r\n\r\n set classFilled(classFilled: string) {\r\n this._classFilled = classFilled;\r\n }\r\n\r\n private _numOfStars = 5;\r\n\r\n get numOfStars(): number {\r\n return this._numOfStars;\r\n }\r\n\r\n set numOfStars(numOfStars: number) {\r\n this._numOfStars = numOfStars;\r\n }\r\n\r\n private _size: starRatingSizes = 'medium';\r\n\r\n get size(): starRatingSizes {\r\n return this._size;\r\n }\r\n\r\n set size(size: starRatingSizes) {\r\n this._size = size;\r\n }\r\n\r\n private _staticColor: starRatingColor;\r\n\r\n get staticColor(): starRatingColor {\r\n return this._staticColor;\r\n }\r\n\r\n set staticColor(value: starRatingColor) {\r\n this._staticColor = value;\r\n }\r\n\r\n private _labelPosition: starRatingLabelPosition = 'left';\r\n\r\n get labelPosition(): starRatingLabelPosition {\r\n return this._labelPosition;\r\n }\r\n\r\n set labelPosition(labelPosition: starRatingLabelPosition) {\r\n this._labelPosition = labelPosition;\r\n }\r\n\r\n private _speed: starRatingSpeed = 'noticeable';\r\n\r\n get speed(): starRatingSpeed {\r\n return this._speed;\r\n }\r\n\r\n set speed(speed: starRatingSpeed) {\r\n this._speed = speed;\r\n }\r\n\r\n private _starType: starRatingStarTypes = 'svg';\r\n\r\n get starType(): starRatingStarTypes {\r\n return this._starType;\r\n }\r\n\r\n set starType(starType: starRatingStarTypes) {\r\n this._starType = starType;\r\n }\r\n\r\n private _assetsPath = 'assets/images/';\r\n\r\n get assetsPath(): string {\r\n return this._assetsPath;\r\n }\r\n\r\n set assetsPath(assetsPath: string) {\r\n this._assetsPath = assetsPath;\r\n }\r\n\r\n private _svgPath = this.assetsPath + 'star-rating.icons.svg';\r\n\r\n get svgPath(): string {\r\n return this._svgPath;\r\n }\r\n\r\n set svgPath(svgPath: string) {\r\n this._svgPath = svgPath;\r\n }\r\n\r\n private _svgEmptySymbolId = 'star-empty';\r\n\r\n get svgEmptySymbolId(): string {\r\n return this._svgEmptySymbolId;\r\n }\r\n\r\n set svgEmptySymbolId(svgEmptySymbolId: string) {\r\n this._svgEmptySymbolId = svgEmptySymbolId;\r\n }\r\n\r\n private _svgHalfSymbolId = 'star-half';\r\n\r\n get svgHalfSymbolId(): string {\r\n return this._svgHalfSymbolId;\r\n }\r\n\r\n set svgHalfSymbolId(svgHalfSymbolId: string) {\r\n this._svgHalfSymbolId = svgHalfSymbolId;\r\n }\r\n\r\n private _svgFilledSymbolId = 'star-filled';\r\n\r\n get svgFilledSymbolId(): string {\r\n return this._svgFilledSymbolId;\r\n }\r\n\r\n set svgFilledSymbolId(svgFilledSymbolId: string) {\r\n this._svgFilledSymbolId = svgFilledSymbolId;\r\n }\r\n\r\n private _svgPathEmpty: string = this.svgPath + '#' + this.svgEmptySymbolId;\r\n\r\n get svgPathEmpty(): string {\r\n return this._svgPathEmpty;\r\n }\r\n\r\n set svgPathEmpty(svgPathEmpty: string) {\r\n this._svgPathEmpty = svgPathEmpty;\r\n }\r\n\r\n private _svgPathHalf: string = this.svgPath + '#' + this.svgHalfSymbolId;\r\n\r\n get svgPathHalf(): string {\r\n return this._svgPathHalf;\r\n }\r\n\r\n set svgPathHalf(svgPathHalf: string) {\r\n this._svgPathHalf = svgPathHalf;\r\n }\r\n\r\n private _svgPathFilled: string = this.svgPath + '#' + this.svgFilledSymbolId;\r\n\r\n get svgPathFilled(): string {\r\n return this._svgPathFilled;\r\n }\r\n\r\n set svgPathFilled(svgPathFilled: string) {\r\n this._svgPathFilled = svgPathFilled;\r\n }\r\n\r\n getColor(\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ): starRatingColor {\r\n rating = rating || 0;\r\n\r\n // if a fix color is set use this one\r\n if (staticColor) {\r\n return staticColor;\r\n }\r\n\r\n // calculate size of smallest fraction\r\n const fractionSize = numOfStars / 3;\r\n\r\n // apply color by fraction\r\n let color: starRatingColor = 'default';\r\n if (rating > 0) {\r\n color = 'negative';\r\n }\r\n if (rating > fractionSize) {\r\n color = 'ok';\r\n }\r\n if (rating > fractionSize * 2) {\r\n color = 'positive';\r\n }\r\n\r\n return color;\r\n }\r\n\r\n getHalfStarVisible(rating: number): boolean {\r\n return Math.abs(rating % 1) > 0;\r\n }\r\n}\r\n", "import {\r\n StarRatingConfig,\r\n starRatingColor,\r\n starRatingDirection,\r\n starRatingLabelPosition,\r\n starRatingSizes,\r\n starRatingSpeed,\r\n starRatingStarSpace,\r\n starRatingStarTypes\r\n} from '../interfaces/star-rating-config.interface';\r\nimport { StarRatingConfigService } from './star-rating-config.service';\r\nimport { StarRatingUtils } from './star-rating.utils';\r\n\r\nexport class StarRating {\r\n protected config: StarRatingConfig;\r\n\r\n //CTRL ONLY\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n classEmpty: string;\r\n classHalf: string;\r\n classFilled: string;\r\n\r\n pathEmpty: string;\r\n pathHalf: string;\r\n pathFilled: string;\r\n\r\n color: starRatingColor;\r\n stars: Array;\r\n ratingAsInteger: number;\r\n halfStarVisible: boolean;\r\n\r\n /////////////////////////////////////////////\r\n\r\n\r\n set rating(value: number) {\r\n this.setRating(value);\r\n }\r\n\r\n /**\r\n * showHalfStars\r\n */\r\n protected _showHalfStars: boolean;\r\n get showHalfStars(): boolean {\r\n return this._showHalfStars;\r\n }\r\n\r\n set showHalfStars(value: boolean) {\r\n this._showHalfStars = !!value;\r\n\r\n //update halfStarVisible\r\n this.setHalfStarVisible();\r\n }\r\n\r\n /**\r\n * getColor\r\n */\r\n getColor: (\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ) => starRatingColor;\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * getHalfStarVisible\r\n */\r\n getHalfStarVisible: (rating: number) => boolean;\r\n /////////////////////////////////////////////\r\n\r\n //Inputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * id property to identify the DOM element\r\n */\r\n protected _id: string;\r\n get id(): string {\r\n return this._id;\r\n }\r\n\r\n set id(value: string) {\r\n this._id = value || '';\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * focus\r\n */\r\n protected _focus: boolean;\r\n get focus(): boolean {\r\n return this._focus;\r\n }\r\n\r\n set focus(value: boolean) {\r\n this._focus = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * labelText\r\n */\r\n protected _labelText: string;\r\n get labelText(): string {\r\n return this._labelText;\r\n }\r\n\r\n set labelText(value: string) {\r\n this._labelText = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * labelPosition\r\n */\r\n protected _labelPosition: starRatingLabelPosition;\r\n get labelPosition(): starRatingLabelPosition {\r\n return this._labelPosition;\r\n }\r\n\r\n set labelPosition(value: starRatingLabelPosition) {\r\n this._labelPosition = value || this.config.labelPosition;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * labelVisible\r\n */\r\n protected _labelVisible: boolean;\r\n get labelVisible(): boolean {\r\n return this._labelVisible;\r\n }\r\n\r\n set labelVisible(value: boolean) {\r\n this._labelVisible = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * hoverEnabled\r\n */\r\n protected _hoverEnabled: boolean;\r\n get hoverEnabled(): boolean {\r\n return this._hoverEnabled;\r\n }\r\n\r\n set hoverEnabled(value: boolean) {\r\n this._hoverEnabled = value !== undefined ? !!value : false;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * staticColor\r\n */\r\n protected _staticColor: starRatingColor;\r\n get staticColor(): starRatingColor {\r\n return this._staticColor || this.config.staticColor || undefined;\r\n }\r\n\r\n set staticColor(value: starRatingColor) {\r\n this._staticColor = value;\r\n\r\n //update color.\r\n this.setColor();\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * direction\r\n */\r\n protected _direction: starRatingDirection;\r\n get direction(): starRatingDirection {\r\n return this._direction;\r\n }\r\n\r\n set direction(value: starRatingDirection) {\r\n this._direction = value || undefined;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * numOfStars\r\n */\r\n protected _numOfStars: number;\r\n get numOfStars(): number {\r\n return this._numOfStars;\r\n }\r\n\r\n set numOfStars(value: number) {\r\n this._numOfStars = value > 0 ? value : this.config.numOfStars;\r\n\r\n //update stars array\r\n this.stars = StarRatingUtils.getStarsArray(this.numOfStars);\r\n\r\n //update color\r\n this.setColor();\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * hoverRating\r\n */\r\n protected _hoverRating: number;\r\n get hoverRating(): number {\r\n return this._hoverRating;\r\n }\r\n\r\n set hoverRating(value: number) {\r\n this._hoverRating = value > 0 ? value : 0;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * speed\r\n */\r\n protected _speed: starRatingSpeed;\r\n get speed(): starRatingSpeed {\r\n return this._speed;\r\n }\r\n\r\n set speed(value: starRatingSpeed) {\r\n this._speed = value || this.config.speed;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * size\r\n */\r\n protected _size: starRatingSizes;\r\n get size(): starRatingSizes {\r\n return this._size || this.config.size;\r\n }\r\n\r\n set size(value: starRatingSizes) {\r\n this._size = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * starType\r\n */\r\n protected _starType: starRatingStarTypes;\r\n get starType(): starRatingStarTypes {\r\n return this._starType || this.config.starType;\r\n }\r\n\r\n set starType(value: starRatingStarTypes) {\r\n this._starType = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * space\r\n */\r\n protected _space: starRatingStarSpace;\r\n get space(): starRatingStarSpace {\r\n return this._space;\r\n }\r\n\r\n set space(value: starRatingStarSpace) {\r\n this._space = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * readOnly\r\n */\r\n protected _readOnly: boolean;\r\n get readOnly(): boolean {\r\n return this._readOnly;\r\n }\r\n\r\n set readOnly(value: boolean) {\r\n this._readOnly = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * disabled\r\n */\r\n protected _disabled: boolean;\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n private _step: number;\r\n get step(): number {\r\n return this._step;\r\n }\r\n\r\n set step(value: number) {\r\n this._step = value > 0 ? value : 1;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * rating\r\n */\r\n protected _rating: number;\r\n get rating(): number {\r\n return this._rating;\r\n }\r\n\r\n /**\r\n * setRating\r\n * I use a setter function instead of a set method to enable overrides for this function.\r\n * @param value\r\n */\r\n setRating(value: number) {\r\n //validate and apply newRating\r\n let newRating = 0;\r\n if (value >= 0 && value <= this.numOfStars) {\r\n newRating = value;\r\n }\r\n\r\n //limit max value to max number of stars\r\n if (value > this.numOfStars) {\r\n newRating = this.numOfStars;\r\n }\r\n this._rating = newRating;\r\n\r\n //update ratingAsInteger. rating parsed to int for the value-[n] modifier\r\n this.ratingAsInteger = parseInt(this._rating.toString(), 10);\r\n\r\n //update halfStarsVisible\r\n this.setHalfStarVisible();\r\n\r\n //update calculated Color\r\n this.setColor();\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n this.config = config;\r\n\r\n //set default ctrl props\r\n this.classEmpty = this.config.classEmpty;\r\n this.classHalf = this.config.classHalf;\r\n this.classFilled = this.config.classFilled;\r\n this.pathEmpty = this.config.svgPathEmpty;\r\n this.pathHalf = this.config.svgPathHalf;\r\n this.pathFilled = this.config.svgPathFilled;\r\n\r\n //set default Component Inputs\r\n if (\r\n 'getColor' in this.config &&\r\n typeof this.config.getColor === 'function'\r\n ) {\r\n this.getColor = this.config.getColor;\r\n }\r\n\r\n if (\r\n 'getHalfStarVisible' in this.config &&\r\n typeof this.config.getHalfStarVisible === 'function'\r\n ) {\r\n this.getHalfStarVisible = this.config.getHalfStarVisible;\r\n }\r\n\r\n this.numOfStars = this.config.numOfStars;\r\n this.rating = 0;\r\n this.step = 1;\r\n }\r\n\r\n svgVisible(): boolean {\r\n return this.starType === 'svg';\r\n }\r\n\r\n interactionPossible(): boolean {\r\n return !this.readOnly && !this.disabled;\r\n }\r\n\r\n setColor(): void {\r\n //check if custom function is given\r\n if (typeof this.getColor === 'function') {\r\n this.color = this.getColor(\r\n this.rating,\r\n this.numOfStars,\r\n this.staticColor\r\n );\r\n } else {\r\n this.color = StarRatingUtils.getColor(\r\n this.rating,\r\n this.numOfStars,\r\n this.staticColor\r\n );\r\n }\r\n }\r\n\r\n setHalfStarVisible(): void {\r\n //update halfStarVisible\r\n if (this.showHalfStars) {\r\n //check if custom function is given\r\n if (typeof this.getHalfStarVisible === 'function') {\r\n this.halfStarVisible = this.getHalfStarVisible(this.rating);\r\n } else {\r\n this.halfStarVisible = StarRatingUtils.getHalfStarVisible(this.rating);\r\n }\r\n } else {\r\n this.halfStarVisible = false;\r\n }\r\n }\r\n\r\n getComponentClassNames(): string {\r\n const classNames: string[] = [];\r\n\r\n classNames.push(this.rating ? 'value-' + this.ratingAsInteger : 'value-0');\r\n classNames.push(this.halfStarVisible ? 'half' : '');\r\n classNames.push(this.hoverEnabled ? 'hover' : '');\r\n\r\n const hoverRating = this.hoverRating\r\n ? 'hover-' + this.hoverRating\r\n : 'hover-0';\r\n classNames.push(this.hoverEnabled ? hoverRating : '');\r\n\r\n classNames.push(this.space ? 'space-' + this.space : '');\r\n classNames.push(this.labelPosition ? 'label-' + this.labelPosition : '');\r\n classNames.push(this.color ? 'color-' + this.color : '');\r\n classNames.push(this.starType ? 'star-' + this.starType : '');\r\n classNames.push(this.speed);\r\n classNames.push(this.size);\r\n classNames.push(this.readOnly ? 'read-only' : '');\r\n classNames.push(this.disabled ? 'disabled' : '');\r\n classNames.push(this.direction ? 'direction-' + this.direction : '');\r\n\r\n return classNames.join(' ');\r\n }\r\n\r\n increment() {\r\n //increment to next higher step\r\n const absDiff = Math.abs(this.rating % this.step);\r\n this.rating = this.rating + (absDiff > 0 ? this.step - absDiff : this.step);\r\n }\r\n\r\n decrement() {\r\n //decrement to next lower step\r\n const absDiff = Math.abs(this.rating % this.step);\r\n this.rating = this.rating - (absDiff > 0 ? absDiff : this.step);\r\n }\r\n\r\n reset() {\r\n this.rating = 0;\r\n }\r\n}\r\n", "import { starRatingColor } from '../interfaces/star-rating-config.interface';\r\nexport class StarRatingUtils {\r\n //Static methods\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n /*\r\n * getStarsArray\r\n *\r\n * returns an array of increasing numbers starting at 1\r\n *\r\n * @param numOfStars\r\n * @returns {Array}\r\n */\r\n static getStarsArray(numOfStars: number): Array {\r\n let stars: Array = [];\r\n for (let i = 0; i < numOfStars; i++) {\r\n stars.push(i + 1);\r\n }\r\n return stars;\r\n }\r\n\r\n /*\r\n * getHalfStarVisible\r\n *\r\n * Returns true if there should be a half star visible, and false if not.\r\n *\r\n * @param rating\r\n * @returns {boolean}\r\n */\r\n static getHalfStarVisible(rating: number): boolean {\r\n return Math.abs(rating % 1) > 0;\r\n }\r\n\r\n /*\r\n * getColor\r\n *\r\n * The default function for color calculation\r\n * based on the current rating and the the number of stars possible.\r\n * If a staticColor is set the function will use it as return value.\r\n *\r\n * @param rating\r\n * @param numOfStars\r\n * @param staticColor\r\n * @returns {starRatingColor}\r\n */\r\n static getColor(\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ): starRatingColor {\r\n rating = rating || 0;\r\n\r\n //if a fix color is set use this one\r\n if (staticColor) {\r\n return staticColor;\r\n }\r\n\r\n //calculate size of smallest fraction\r\n let fractionSize = numOfStars / 3;\r\n\r\n //apply color by fraction\r\n let color: starRatingColor = 'default';\r\n if (rating > 0) {\r\n color = 'negative';\r\n }\r\n if (rating > fractionSize) {\r\n color = 'ok';\r\n }\r\n if (rating > fractionSize * 2) {\r\n color = 'positive';\r\n }\r\n\r\n return color;\r\n }\r\n\r\n /*\r\n * isDigitKeyEventCode\r\n * detects digit key event sodes\r\n * @param eventCode\r\n * @returns {boolean}\r\n */\r\n static isDigitKeyEventCode(eventCode: string): boolean {\r\n return eventCode.indexOf('Digit') === 0;\r\n }\r\n}\r\n", @@ -28,5 +30,5 @@ "forwardRef", "NG_VALUE_ACCESSOR" ], - "mappings": "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" + "mappings": "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" } diff --git a/@packaged/angular-star-rating/bundles/angular-star-rating.umd.min.js b/@packaged/angular-star-rating/bundles/angular-star-rating.umd.min.js index 093e144..82dd3ff 100644 --- a/@packaged/angular-star-rating/bundles/angular-star-rating.umd.min.js +++ b/@packaged/angular-star-rating/bundles/angular-star-rating.umd.min.js @@ -1,2 +1,2 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/forms"),require("@angular/common")):"function"==typeof define&&define.amd?define("angular-star-rating",["exports","@angular/core","@angular/forms","@angular/common"],e):e(t["angular-star-rating"]={},t.ng.core,t.ng.forms,t.ng.common)}(this,function(t,i,e,n){"use strict";var s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])};var r=function(){},o=function(){function t(){}return t.getStarsArray=function(t){for(var e=[],i=0;ithis.numOfStars&&(e=this.numOfStars),this._rating=e,this.ratingAsInteger=parseInt(this._rating.toString(),10),this.setHalfStarVisible(),this.setColor()},t.prototype.svgVisible=function(){return"svg"===this.starType},t.prototype.interactionPossible=function(){return!this.readOnly&&!this.disabled},t.prototype.setColor=function(){"function"==typeof this.getColor?this.color=this.getColor(this.rating,this.numOfStars,this.staticColor):this.color=o.getColor(this.rating,this.numOfStars,this.staticColor)},t.prototype.setHalfStarVisible=function(){this.showHalfStars?"function"==typeof this.getHalfStarVisible?this.halfStarVisible=this.getHalfStarVisible(this.rating):this.halfStarVisible=o.getHalfStarVisible(this.rating):this.halfStarVisible=!1},t.prototype.getComponentClassNames=function(){var t=[];t.push(this.rating?"value-"+this.ratingAsInteger:"value-0"),t.push(this.halfStarVisible?"half":""),t.push(this.hoverEnabled?"hover":"");var e=this.hoverRating?"hover-"+this.hoverRating:"hover-0";return t.push(this.hoverEnabled?e:""),t.push(this.space?"space-"+this.space:""),t.push(this.labelPosition?"label-"+this.labelPosition:""),t.push(this.color?"color-"+this.color:""),t.push(this.starType?"star-"+this.starType:""),t.push(this.speed),t.push(this.size),t.push(this.readOnly?"read-only":""),t.push(this.disabled?"disabled":""),t.push(this.direction?"direction-"+this.direction:""),t.join(" ")},t.prototype.increment=function(){var t=Math.abs(this.rating%this.step);this.rating=this.rating+(0\n
{{labelText}}
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n\n'}]}],c.ctorParameters=function(){return[{type:l}]};var h=[c],f=[h],g=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[l]}},t.forChild=function(){return{ngModule:t,providers:[]}},t}();g.decorators=[{type:i.NgModule,args:[{imports:[n.CommonModule],declarations:[h],exports:[f]}]}],g.ctorParameters=function(){return[]},t.StarRatingConfig=r,t.StarRatingUtils=o,t.StarRating=a,t.StarRatingConfigService=l,t.StarRatingComponent=c,t.StarRatingModule=g,Object.defineProperty(t,"__esModule",{value:!0})}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/forms"),require("@angular/common")):"function"==typeof define&&define.amd?define("angular-star-rating",["exports","@angular/core","@angular/forms","@angular/common"],e):e(t["angular-star-rating"]={},t.ng.core,t.ng.forms,t.ng.common)}(this,function(t,n,e,i){"use strict";var s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};function r(t,e){function n(){this.constructor=t}s(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var o=function(){},a=function(){function t(){}return t.getStarsArray=function(t){for(var e=[],n=0;nthis.numOfStars&&(e=this.numOfStars),this._rating=e,this.ratingAsInteger=parseInt(this._rating.toString(),10),this.setHalfStarVisible(),this.setColor()},t.prototype.svgVisible=function(){return"svg"===this.starType},t.prototype.interactionPossible=function(){return!this.readOnly&&!this.disabled},t.prototype.setColor=function(){"function"==typeof this.getColor?this.color=this.getColor(this.rating,this.numOfStars,this.staticColor):this.color=a.getColor(this.rating,this.numOfStars,this.staticColor)},t.prototype.setHalfStarVisible=function(){this.showHalfStars?"function"==typeof this.getHalfStarVisible?this.halfStarVisible=this.getHalfStarVisible(this.rating):this.halfStarVisible=a.getHalfStarVisible(this.rating):this.halfStarVisible=!1},t.prototype.getComponentClassNames=function(){var t=[];t.push(this.rating?"value-"+this.ratingAsInteger:"value-0"),t.push(this.halfStarVisible?"half":""),t.push(this.hoverEnabled?"hover":"");var e=this.hoverRating?"hover-"+this.hoverRating:"hover-0";return t.push(this.hoverEnabled?e:""),t.push(this.space?"space-"+this.space:""),t.push(this.labelPosition?"label-"+this.labelPosition:""),t.push(this.color?"color-"+this.color:""),t.push(this.starType?"star-"+this.starType:""),t.push(this.speed),t.push(this.size),t.push(this.readOnly?"read-only":""),t.push(this.disabled?"disabled":""),t.push(this.direction?"direction-"+this.direction:""),t.join(" ")},t.prototype.increment=function(){var t=Math.abs(this.rating%this.step);this.rating=this.rating+(0\n
{{labelText}}
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n\n'}]}],u.ctorParameters=function(){return[{type:c}]};var h={provide:e.NG_VALUE_ACCESSOR,useExisting:n.forwardRef(function(){return f}),multi:!0},f=function(i){function t(t){var e=i.call(this,t)||this;return e.starClickChange=new n.EventEmitter,e.ratingChange=new n.EventEmitter,e.hoverRatingChange=new n.EventEmitter,e.onModelChangeRegistered=!1,e.onTouchRegistered=!1,e}return r(t,i),t.prototype.saveOnClick=function(t){this.starClickChange&&this.starClickChange.emit(t)},t.prototype.saveOnRatingChange=function(t){this.ratingChange&&this.ratingChange.emit(t)},t.prototype.saveOnHover=function(t){this.hoverRatingChange&&this.hoverRatingChange.emit(t)},t.prototype.saveOnTouch=function(){this.onTouchRegistered&&this.onTouch()},t.prototype.saveOnModelChange=function(t){this.onModelChangeRegistered&&this.onModelChange(t)},t.prototype.onKeyDown=function(t){var e=this;if(this.interactionPossible()){var n,i,s={Minus:function(){return e.decrement()},ArrowDown:function(){return e.decrement()},ArrowLeft:function(){return e.decrement()},Plus:function(){return e.increment()},ArrowRight:function(){return e.increment()},ArrowUp:function(){return e.increment()},Backspace:function(){return e.reset()},Delete:function(){return e.reset()},Digit0:function(){return e.reset()}};(s[t.code]||a.isDigitKeyEventCode(t.code))&&(a.isDigitKeyEventCode(t.code)?(n=t.code,i=parseInt(n.substr("Digit".length,n.length-1),10),e.rating=i):s[t.code](),t.preventDefault(),t.stopPropagation()),this.saveOnTouch()}},t.prototype.onBlur=function(t){this.focus=!1,t.preventDefault(),t.stopPropagation(),this.saveOnTouch()},t.prototype.onFocus=function(t){this.focus=!0,t.preventDefault(),t.stopPropagation(),this.saveOnTouch()},t.prototype.onStarHover=function(t){if(this.interactionPossible()&&this.hoverEnabled){this.hoverRating=t?parseInt(t.toString(),10):0;var e={hoverRating:this.hoverRating};this.saveOnHover(e)}},t.prototype.writeValue=function(t){this.rating=t},t.prototype.registerOnChange=function(t){this.onModelChange=t,this.onModelChangeRegistered=!0},t.prototype.registerOnTouched=function(t){this.onTouch=t,this.onTouchRegistered=!0},t.prototype.setRating=function(t){var e=this.rating;if(i.prototype.setRating.call(this,t),e!==this.rating){var n={rating:this.rating};this.saveOnRatingChange(n),this.saveOnModelChange(this.rating)}},t.prototype.onStarClicked=function(t){if(this.interactionPossible()){this.rating=t;var e={rating:this.rating};this.saveOnClick(e)}},t}(l);f.decorators=[{type:n.Component,args:[{selector:"star-rating-control",providers:[h],inputs:["getHalfStarVisible","getColor","showHalfStars","hoverEnabled","rating","step","disabled","readOnly","space","starType","size","speed","numOfStars","direction","staticColor","labelPosition","labelText","id"],outputs:["starClickChange","ratingChange","hoverRatingChange"],styles:[],template:'
\n
{{labelText}}
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n'}]}],f.ctorParameters=function(){return[{type:c}]};var g=[u,f],p=[g],d=function(){function t(){}return t.forRoot=function(){return{ngModule:t,providers:[c]}},t.forChild=function(){return{ngModule:t,providers:[]}},t}();d.decorators=[{type:n.NgModule,args:[{imports:[i.CommonModule],declarations:[g],exports:[p]}]}],d.ctorParameters=function(){return[]},t.StarRatingConfig=o,t.StarRatingUtils=a,t.StarRating=l,t.StarRatingConfigService=c,t.StarRatingComponent=u,t.StarRatingControlComponent=f,t.StarRatingModule=d,Object.defineProperty(t,"__esModule",{value:!0})}); //# sourceMappingURL=angular-star-rating.umd.min.js.map diff --git a/@packaged/angular-star-rating/bundles/angular-star-rating.umd.min.js.map b/@packaged/angular-star-rating/bundles/angular-star-rating.umd.min.js.map index ef277ea..6505ad1 100644 --- a/@packaged/angular-star-rating/bundles/angular-star-rating.umd.min.js.map +++ b/@packaged/angular-star-rating/bundles/angular-star-rating.umd.min.js.map @@ -7,7 +7,8 @@ "ng://angular-star-rating/out/src/services/star-rating.utils.ts", "ng://angular-star-rating/out/src/services/star-rating.ts", "ng://angular-star-rating/out/src/services/star-rating-config.service.ts", - "ng://angular-star-rating/out/src/components/star-rating.component.ts", + "ng://angular-star-rating/out/src/components/star-rating/star-rating.component.ts", + "ng://angular-star-rating/out/src/components/star-rating-control/star-rating-control.component.ts", "ng://angular-star-rating/out/src/angular-star-rating.module.ts" ], "sourcesContent": [ @@ -16,8 +17,9 @@ "import { starRatingColor } from '../interfaces/star-rating-config.interface';\r\nexport class StarRatingUtils {\r\n //Static methods\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n /*\r\n * getStarsArray\r\n *\r\n * returns an array of increasing numbers starting at 1\r\n *\r\n * @param numOfStars\r\n * @returns {Array}\r\n */\r\n static getStarsArray(numOfStars: number): Array {\r\n let stars: Array = [];\r\n for (let i = 0; i < numOfStars; i++) {\r\n stars.push(i + 1);\r\n }\r\n return stars;\r\n }\r\n\r\n /*\r\n * getHalfStarVisible\r\n *\r\n * Returns true if there should be a half star visible, and false if not.\r\n *\r\n * @param rating\r\n * @returns {boolean}\r\n */\r\n static getHalfStarVisible(rating: number): boolean {\r\n return Math.abs(rating % 1) > 0;\r\n }\r\n\r\n /*\r\n * getColor\r\n *\r\n * The default function for color calculation\r\n * based on the current rating and the the number of stars possible.\r\n * If a staticColor is set the function will use it as return value.\r\n *\r\n * @param rating\r\n * @param numOfStars\r\n * @param staticColor\r\n * @returns {starRatingColor}\r\n */\r\n static getColor(\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ): starRatingColor {\r\n rating = rating || 0;\r\n\r\n //if a fix color is set use this one\r\n if (staticColor) {\r\n return staticColor;\r\n }\r\n\r\n //calculate size of smallest fraction\r\n let fractionSize = numOfStars / 3;\r\n\r\n //apply color by fraction\r\n let color: starRatingColor = 'default';\r\n if (rating > 0) {\r\n color = 'negative';\r\n }\r\n if (rating > fractionSize) {\r\n color = 'ok';\r\n }\r\n if (rating > fractionSize * 2) {\r\n color = 'positive';\r\n }\r\n\r\n return color;\r\n }\r\n\r\n /*\r\n * isDigitKeyEventCode\r\n * detects digit key event sodes\r\n * @param eventCode\r\n * @returns {boolean}\r\n */\r\n static isDigitKeyEventCode(eventCode: string): boolean {\r\n return eventCode.indexOf('Digit') === 0;\r\n }\r\n}\r\n", "import {\r\n StarRatingConfig,\r\n starRatingColor,\r\n starRatingDirection,\r\n starRatingLabelPosition,\r\n starRatingSizes,\r\n starRatingSpeed,\r\n starRatingStarSpace,\r\n starRatingStarTypes\r\n} from '../interfaces/star-rating-config.interface';\r\nimport { StarRatingConfigService } from './star-rating-config.service';\r\nimport { StarRatingUtils } from './star-rating.utils';\r\n\r\nexport class StarRating {\r\n protected config: StarRatingConfig;\r\n\r\n //CTRL ONLY\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n classEmpty: string;\r\n classHalf: string;\r\n classFilled: string;\r\n\r\n pathEmpty: string;\r\n pathHalf: string;\r\n pathFilled: string;\r\n\r\n color: starRatingColor;\r\n stars: Array;\r\n ratingAsInteger: number;\r\n halfStarVisible: boolean;\r\n\r\n /////////////////////////////////////////////\r\n\r\n\r\n set rating(value: number) {\r\n this.setRating(value);\r\n }\r\n\r\n /**\r\n * showHalfStars\r\n */\r\n protected _showHalfStars: boolean;\r\n get showHalfStars(): boolean {\r\n return this._showHalfStars;\r\n }\r\n\r\n set showHalfStars(value: boolean) {\r\n this._showHalfStars = !!value;\r\n\r\n //update halfStarVisible\r\n this.setHalfStarVisible();\r\n }\r\n\r\n /**\r\n * getColor\r\n */\r\n getColor: (\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ) => starRatingColor;\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * getHalfStarVisible\r\n */\r\n getHalfStarVisible: (rating: number) => boolean;\r\n /////////////////////////////////////////////\r\n\r\n //Inputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * id property to identify the DOM element\r\n */\r\n protected _id: string;\r\n get id(): string {\r\n return this._id;\r\n }\r\n\r\n set id(value: string) {\r\n this._id = value || '';\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * focus\r\n */\r\n protected _focus: boolean;\r\n get focus(): boolean {\r\n return this._focus;\r\n }\r\n\r\n set focus(value: boolean) {\r\n this._focus = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * labelText\r\n */\r\n protected _labelText: string;\r\n get labelText(): string {\r\n return this._labelText;\r\n }\r\n\r\n set labelText(value: string) {\r\n this._labelText = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * labelPosition\r\n */\r\n protected _labelPosition: starRatingLabelPosition;\r\n get labelPosition(): starRatingLabelPosition {\r\n return this._labelPosition;\r\n }\r\n\r\n set labelPosition(value: starRatingLabelPosition) {\r\n this._labelPosition = value || this.config.labelPosition;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * labelVisible\r\n */\r\n protected _labelVisible: boolean;\r\n get labelVisible(): boolean {\r\n return this._labelVisible;\r\n }\r\n\r\n set labelVisible(value: boolean) {\r\n this._labelVisible = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * hoverEnabled\r\n */\r\n protected _hoverEnabled: boolean;\r\n get hoverEnabled(): boolean {\r\n return this._hoverEnabled;\r\n }\r\n\r\n set hoverEnabled(value: boolean) {\r\n this._hoverEnabled = value !== undefined ? !!value : false;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * staticColor\r\n */\r\n protected _staticColor: starRatingColor;\r\n get staticColor(): starRatingColor {\r\n return this._staticColor || this.config.staticColor || undefined;\r\n }\r\n\r\n set staticColor(value: starRatingColor) {\r\n this._staticColor = value;\r\n\r\n //update color.\r\n this.setColor();\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * direction\r\n */\r\n protected _direction: starRatingDirection;\r\n get direction(): starRatingDirection {\r\n return this._direction;\r\n }\r\n\r\n set direction(value: starRatingDirection) {\r\n this._direction = value || undefined;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * numOfStars\r\n */\r\n protected _numOfStars: number;\r\n get numOfStars(): number {\r\n return this._numOfStars;\r\n }\r\n\r\n set numOfStars(value: number) {\r\n this._numOfStars = value > 0 ? value : this.config.numOfStars;\r\n\r\n //update stars array\r\n this.stars = StarRatingUtils.getStarsArray(this.numOfStars);\r\n\r\n //update color\r\n this.setColor();\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * hoverRating\r\n */\r\n protected _hoverRating: number;\r\n get hoverRating(): number {\r\n return this._hoverRating;\r\n }\r\n\r\n set hoverRating(value: number) {\r\n this._hoverRating = value > 0 ? value : 0;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * speed\r\n */\r\n protected _speed: starRatingSpeed;\r\n get speed(): starRatingSpeed {\r\n return this._speed;\r\n }\r\n\r\n set speed(value: starRatingSpeed) {\r\n this._speed = value || this.config.speed;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * size\r\n */\r\n protected _size: starRatingSizes;\r\n get size(): starRatingSizes {\r\n return this._size || this.config.size;\r\n }\r\n\r\n set size(value: starRatingSizes) {\r\n this._size = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * starType\r\n */\r\n protected _starType: starRatingStarTypes;\r\n get starType(): starRatingStarTypes {\r\n return this._starType || this.config.starType;\r\n }\r\n\r\n set starType(value: starRatingStarTypes) {\r\n this._starType = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * space\r\n */\r\n protected _space: starRatingStarSpace;\r\n get space(): starRatingStarSpace {\r\n return this._space;\r\n }\r\n\r\n set space(value: starRatingStarSpace) {\r\n this._space = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * readOnly\r\n */\r\n protected _readOnly: boolean;\r\n get readOnly(): boolean {\r\n return this._readOnly;\r\n }\r\n\r\n set readOnly(value: boolean) {\r\n this._readOnly = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * disabled\r\n */\r\n protected _disabled: boolean;\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n private _step: number;\r\n get step(): number {\r\n return this._step;\r\n }\r\n\r\n set step(value: number) {\r\n this._step = value > 0 ? value : 1;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * rating\r\n */\r\n protected _rating: number;\r\n get rating(): number {\r\n return this._rating;\r\n }\r\n\r\n /**\r\n * setRating\r\n * I use a setter function instead of a set method to enable overrides for this function.\r\n * @param value\r\n */\r\n setRating(value: number) {\r\n //validate and apply newRating\r\n let newRating = 0;\r\n if (value >= 0 && value <= this.numOfStars) {\r\n newRating = value;\r\n }\r\n\r\n //limit max value to max number of stars\r\n if (value > this.numOfStars) {\r\n newRating = this.numOfStars;\r\n }\r\n this._rating = newRating;\r\n\r\n //update ratingAsInteger. rating parsed to int for the value-[n] modifier\r\n this.ratingAsInteger = parseInt(this._rating.toString(), 10);\r\n\r\n //update halfStarsVisible\r\n this.setHalfStarVisible();\r\n\r\n //update calculated Color\r\n this.setColor();\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n this.config = config;\r\n\r\n //set default ctrl props\r\n this.classEmpty = this.config.classEmpty;\r\n this.classHalf = this.config.classHalf;\r\n this.classFilled = this.config.classFilled;\r\n this.pathEmpty = this.config.svgPathEmpty;\r\n this.pathHalf = this.config.svgPathHalf;\r\n this.pathFilled = this.config.svgPathFilled;\r\n\r\n //set default Component Inputs\r\n if (\r\n 'getColor' in this.config &&\r\n typeof this.config.getColor === 'function'\r\n ) {\r\n this.getColor = this.config.getColor;\r\n }\r\n\r\n if (\r\n 'getHalfStarVisible' in this.config &&\r\n typeof this.config.getHalfStarVisible === 'function'\r\n ) {\r\n this.getHalfStarVisible = this.config.getHalfStarVisible;\r\n }\r\n\r\n this.numOfStars = this.config.numOfStars;\r\n this.rating = 0;\r\n this.step = 1;\r\n }\r\n\r\n svgVisible(): boolean {\r\n return this.starType === 'svg';\r\n }\r\n\r\n interactionPossible(): boolean {\r\n return !this.readOnly && !this.disabled;\r\n }\r\n\r\n setColor(): void {\r\n //check if custom function is given\r\n if (typeof this.getColor === 'function') {\r\n this.color = this.getColor(\r\n this.rating,\r\n this.numOfStars,\r\n this.staticColor\r\n );\r\n } else {\r\n this.color = StarRatingUtils.getColor(\r\n this.rating,\r\n this.numOfStars,\r\n this.staticColor\r\n );\r\n }\r\n }\r\n\r\n setHalfStarVisible(): void {\r\n //update halfStarVisible\r\n if (this.showHalfStars) {\r\n //check if custom function is given\r\n if (typeof this.getHalfStarVisible === 'function') {\r\n this.halfStarVisible = this.getHalfStarVisible(this.rating);\r\n } else {\r\n this.halfStarVisible = StarRatingUtils.getHalfStarVisible(this.rating);\r\n }\r\n } else {\r\n this.halfStarVisible = false;\r\n }\r\n }\r\n\r\n getComponentClassNames(): string {\r\n const classNames: string[] = [];\r\n\r\n classNames.push(this.rating ? 'value-' + this.ratingAsInteger : 'value-0');\r\n classNames.push(this.halfStarVisible ? 'half' : '');\r\n classNames.push(this.hoverEnabled ? 'hover' : '');\r\n\r\n const hoverRating = this.hoverRating\r\n ? 'hover-' + this.hoverRating\r\n : 'hover-0';\r\n classNames.push(this.hoverEnabled ? hoverRating : '');\r\n\r\n classNames.push(this.space ? 'space-' + this.space : '');\r\n classNames.push(this.labelPosition ? 'label-' + this.labelPosition : '');\r\n classNames.push(this.color ? 'color-' + this.color : '');\r\n classNames.push(this.starType ? 'star-' + this.starType : '');\r\n classNames.push(this.speed);\r\n classNames.push(this.size);\r\n classNames.push(this.readOnly ? 'read-only' : '');\r\n classNames.push(this.disabled ? 'disabled' : '');\r\n classNames.push(this.direction ? 'direction-' + this.direction : '');\r\n\r\n return classNames.join(' ');\r\n }\r\n\r\n increment() {\r\n //increment to next higher step\r\n const absDiff = Math.abs(this.rating % this.step);\r\n this.rating = this.rating + (absDiff > 0 ? this.step - absDiff : this.step);\r\n }\r\n\r\n decrement() {\r\n //decrement to next lower step\r\n const absDiff = Math.abs(this.rating % this.step);\r\n this.rating = this.rating - (absDiff > 0 ? absDiff : this.step);\r\n }\r\n\r\n reset() {\r\n this.rating = 0;\r\n }\r\n}\r\n", "import {\r\n StarRatingConfig,\r\n starRatingColor,\r\n starRatingSizes,\r\n starRatingSpeed,\r\n starRatingStarTypes,\r\n starRatingLabelPosition\r\n} from '../interfaces/star-rating-config.interface';\r\n\r\n/**\r\n * Configuration service for the StarRating component.\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the star ratings used in the application.\r\n */\r\nexport class StarRatingConfigService implements StarRatingConfig {\r\n _classEmpty = 'default-star-empty-icon';\r\n\r\n get classEmpty() {\r\n return this._classEmpty;\r\n }\r\n\r\n set classEmpty(classEmpty: string) {\r\n this._classEmpty = classEmpty;\r\n }\r\n\r\n private _classHalf = 'default-star-half-icon';\r\n\r\n get classHalf(): string {\r\n return this._classHalf;\r\n }\r\n\r\n set classHalf(classHalf: string) {\r\n this._classHalf = classHalf;\r\n }\r\n\r\n private _classFilled = 'default-star-filled-icon';\r\n\r\n get classFilled(): string {\r\n return this._classFilled;\r\n }\r\n\r\n set classFilled(classFilled: string) {\r\n this._classFilled = classFilled;\r\n }\r\n\r\n private _numOfStars = 5;\r\n\r\n get numOfStars(): number {\r\n return this._numOfStars;\r\n }\r\n\r\n set numOfStars(numOfStars: number) {\r\n this._numOfStars = numOfStars;\r\n }\r\n\r\n private _size: starRatingSizes = 'medium';\r\n\r\n get size(): starRatingSizes {\r\n return this._size;\r\n }\r\n\r\n set size(size: starRatingSizes) {\r\n this._size = size;\r\n }\r\n\r\n private _staticColor: starRatingColor;\r\n\r\n get staticColor(): starRatingColor {\r\n return this._staticColor;\r\n }\r\n\r\n set staticColor(value: starRatingColor) {\r\n this._staticColor = value;\r\n }\r\n\r\n private _labelPosition: starRatingLabelPosition = 'left';\r\n\r\n get labelPosition(): starRatingLabelPosition {\r\n return this._labelPosition;\r\n }\r\n\r\n set labelPosition(labelPosition: starRatingLabelPosition) {\r\n this._labelPosition = labelPosition;\r\n }\r\n\r\n private _speed: starRatingSpeed = 'noticeable';\r\n\r\n get speed(): starRatingSpeed {\r\n return this._speed;\r\n }\r\n\r\n set speed(speed: starRatingSpeed) {\r\n this._speed = speed;\r\n }\r\n\r\n private _starType: starRatingStarTypes = 'svg';\r\n\r\n get starType(): starRatingStarTypes {\r\n return this._starType;\r\n }\r\n\r\n set starType(starType: starRatingStarTypes) {\r\n this._starType = starType;\r\n }\r\n\r\n private _assetsPath = 'assets/images/';\r\n\r\n get assetsPath(): string {\r\n return this._assetsPath;\r\n }\r\n\r\n set assetsPath(assetsPath: string) {\r\n this._assetsPath = assetsPath;\r\n }\r\n\r\n private _svgPath = this.assetsPath + 'star-rating.icons.svg';\r\n\r\n get svgPath(): string {\r\n return this._svgPath;\r\n }\r\n\r\n set svgPath(svgPath: string) {\r\n this._svgPath = svgPath;\r\n }\r\n\r\n private _svgEmptySymbolId = 'star-empty';\r\n\r\n get svgEmptySymbolId(): string {\r\n return this._svgEmptySymbolId;\r\n }\r\n\r\n set svgEmptySymbolId(svgEmptySymbolId: string) {\r\n this._svgEmptySymbolId = svgEmptySymbolId;\r\n }\r\n\r\n private _svgHalfSymbolId = 'star-half';\r\n\r\n get svgHalfSymbolId(): string {\r\n return this._svgHalfSymbolId;\r\n }\r\n\r\n set svgHalfSymbolId(svgHalfSymbolId: string) {\r\n this._svgHalfSymbolId = svgHalfSymbolId;\r\n }\r\n\r\n private _svgFilledSymbolId = 'star-filled';\r\n\r\n get svgFilledSymbolId(): string {\r\n return this._svgFilledSymbolId;\r\n }\r\n\r\n set svgFilledSymbolId(svgFilledSymbolId: string) {\r\n this._svgFilledSymbolId = svgFilledSymbolId;\r\n }\r\n\r\n private _svgPathEmpty: string = this.svgPath + '#' + this.svgEmptySymbolId;\r\n\r\n get svgPathEmpty(): string {\r\n return this._svgPathEmpty;\r\n }\r\n\r\n set svgPathEmpty(svgPathEmpty: string) {\r\n this._svgPathEmpty = svgPathEmpty;\r\n }\r\n\r\n private _svgPathHalf: string = this.svgPath + '#' + this.svgHalfSymbolId;\r\n\r\n get svgPathHalf(): string {\r\n return this._svgPathHalf;\r\n }\r\n\r\n set svgPathHalf(svgPathHalf: string) {\r\n this._svgPathHalf = svgPathHalf;\r\n }\r\n\r\n private _svgPathFilled: string = this.svgPath + '#' + this.svgFilledSymbolId;\r\n\r\n get svgPathFilled(): string {\r\n return this._svgPathFilled;\r\n }\r\n\r\n set svgPathFilled(svgPathFilled: string) {\r\n this._svgPathFilled = svgPathFilled;\r\n }\r\n\r\n getColor(\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ): starRatingColor {\r\n rating = rating || 0;\r\n\r\n // if a fix color is set use this one\r\n if (staticColor) {\r\n return staticColor;\r\n }\r\n\r\n // calculate size of smallest fraction\r\n const fractionSize = numOfStars / 3;\r\n\r\n // apply color by fraction\r\n let color: starRatingColor = 'default';\r\n if (rating > 0) {\r\n color = 'negative';\r\n }\r\n if (rating > fractionSize) {\r\n color = 'ok';\r\n }\r\n if (rating > fractionSize * 2) {\r\n color = 'positive';\r\n }\r\n\r\n return color;\r\n }\r\n\r\n getHalfStarVisible(rating: number): boolean {\r\n return Math.abs(rating % 1) > 0;\r\n }\r\n}\r\n", - "import { Component, EventEmitter, forwardRef, Input } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ClickEvent } from '../interfaces/click-event.interface';\r\nimport { HoverRatingChangeEvent } from '../interfaces/hover-rating-change-event.interface';\r\nimport { RatingChangeEvent } from '../interfaces/rating-change-event.interface';\r\nimport { StarRating } from '../services/star-rating';\r\nimport { StarRatingConfigService } from '../services/star-rating-config.service';\r\nimport { StarRatingUtils } from '../services/star-rating.utils';\r\n\r\nconst STAR_RATING_CONTROL_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => StarRatingComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'star-rating-comp',\r\n providers: [STAR_RATING_CONTROL_ACCESSOR],\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `
\r\n
{{labelText}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\nexport class StarRatingComponent extends StarRating\r\n implements ControlValueAccessor {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter = new EventEmitter();\r\n\r\n ratingChange: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n onTouch: Function;\r\n onModelChange: Function;\r\n private onModelChangeRegistered = false;\r\n private onTouchRegistered = false;\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnTouch() {\r\n if (this.onTouchRegistered) {\r\n this.onTouch();\r\n }\r\n }\r\n\r\n saveOnModelChange(value: number) {\r\n if (this.onModelChangeRegistered) {\r\n this.onModelChange(value);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n let dStr = 'Digit';\r\n let digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1)\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n this.saveOnTouch();\r\n }\r\n\r\n //Focus events\r\n onBlur(event: FocusEvent) {\r\n this.focus = false;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n onFocus(event: FocusEvent) {\r\n this.focus = true;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString()) : 0;\r\n\r\n //fire onHoverRatingChange event\r\n let $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n /**Form Control - ControlValueAccessor implementation**/\r\n\r\n writeValue(obj: any): void {\r\n this.rating = obj;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n this.onModelChangeRegistered = true;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n this.onTouchRegistered = true;\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n let initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n let $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n\r\n this.saveOnModelChange(this.rating);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n let onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n", - "import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { StarRatingComponent } from './components/star-rating.component';\r\nimport { StarRatingConfigService } from './services/star-rating-config.service';\r\n\r\nconst DECLARATIONS = [StarRatingComponent];\r\nconst EXPORTS = [DECLARATIONS];\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DECLARATIONS],\r\n exports: [EXPORTS]\r\n})\r\nexport class StarRatingModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: [\r\n StarRatingConfigService\r\n ]\r\n };\r\n }\r\n\r\n static forChild(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n" + "import {Component, EventEmitter} from '@angular/core';\r\nimport {ClickEvent} from '../../interfaces/click-event.interface';\r\nimport {HoverRatingChangeEvent} from '../../interfaces/hover-rating-change-event.interface';\r\nimport {RatingChangeEvent} from '../../interfaces/rating-change-event.interface';\r\nimport {StarRating} from '../../services/star-rating';\r\nimport {StarRatingConfigService} from '../../services/star-rating-config.service';\r\nimport {StarRatingUtils} from '../../services/star-rating.utils';\r\n\r\n@Component({\r\n selector: 'star-rating',\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `
\r\n
{{labelText}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\nexport class StarRatingComponent extends StarRating {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter = new EventEmitter();\r\n\r\n ratingChange: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n const dStr = 'Digit';\r\n const digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1), 10\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0;\r\n\r\n //fire onHoverRatingChange event\r\n const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n const initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n const $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n const onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n", + "import {Component, EventEmitter, forwardRef} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {ClickEvent} from '../../interfaces/click-event.interface';\r\nimport {HoverRatingChangeEvent} from '../../interfaces/hover-rating-change-event.interface';\r\nimport {RatingChangeEvent} from '../../interfaces/rating-change-event.interface';\r\nimport {StarRating} from '../../services/star-rating';\r\nimport {StarRatingConfigService} from '../../services/star-rating-config.service';\r\nimport {StarRatingUtils} from '../../services/star-rating.utils';\r\n\r\nconst STAR_RATING_CONTROL_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => StarRatingControlComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'star-rating-control',\r\n providers: [STAR_RATING_CONTROL_ACCESSOR],\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `
\r\n
{{labelText}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\nexport class StarRatingControlComponent extends StarRating\r\n implements ControlValueAccessor {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter = new EventEmitter();\r\n\r\n ratingChange: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n onTouch: Function;\r\n onModelChange: Function;\r\n private onModelChangeRegistered = false;\r\n private onTouchRegistered = false;\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnTouch() {\r\n if (this.onTouchRegistered) {\r\n this.onTouch();\r\n }\r\n }\r\n\r\n saveOnModelChange(value: number) {\r\n if (this.onModelChangeRegistered) {\r\n this.onModelChange(value);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n const dStr = 'Digit';\r\n const digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1), 10\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n this.saveOnTouch();\r\n }\r\n\r\n //Focus events\r\n onBlur(event: FocusEvent) {\r\n this.focus = false;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n onFocus(event: FocusEvent) {\r\n this.focus = true;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0;\r\n\r\n //fire onHoverRatingChange event\r\n const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n /**Form Control - ControlValueAccessor implementation**/\r\n\r\n writeValue(obj: any): void {\r\n this.rating = obj;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n this.onModelChangeRegistered = true;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n this.onTouchRegistered = true;\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n const initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n const $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n\r\n this.saveOnModelChange(this.rating);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n const onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n", + "import {CommonModule} from '@angular/common';\r\nimport {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {StarRatingComponent} from './components/star-rating/star-rating.component';\r\nimport {StarRatingControlComponent} from './components/star-rating-control/star-rating-control.component';\r\nimport {StarRatingConfigService} from './services/star-rating-config.service';\r\n\r\nconst DECLARATIONS = [\r\n StarRatingComponent,\r\n StarRatingControlComponent\r\n];\r\nconst EXPORTS = [DECLARATIONS];\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DECLARATIONS],\r\n exports: [EXPORTS]\r\n})\r\nexport class StarRatingModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: [\r\n StarRatingConfigService\r\n ]\r\n };\r\n }\r\n\r\n static forChild(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n" ], "names": [ "extendStatics", @@ -29,6 +31,12 @@ "b", "p", "hasOwnProperty", + "__extends", + "__", + "this", + "constructor", + "prototype", + "create", "StarRatingConfig", "StarRatingUtils", "getStarsArray", @@ -49,7 +57,6 @@ "indexOf", "StarRating", "config", - "this", "classEmpty", "classHalf", "classFilled", @@ -61,7 +68,6 @@ "svgPathFilled", "step", "defineProperty", - "prototype", "get", "_rating", "set", @@ -130,13 +136,7 @@ "svgHalfSymbolId", "_svgPathFilled", "svgFilledSymbolId", - "STAR_RATING_CONTROL_ACCESSOR", - "provide", - "NG_VALUE_ACCESSOR", - "useExisting", - "forwardRef", "StarRatingComponent", - "multi", "_super", "_this", "call", @@ -144,21 +144,12 @@ "EventEmitter", "ratingChange", "hoverRatingChange", - "onModelChangeRegistered", - "onTouchRegistered", - "__", - "constructor", - "create", "tslib_1.__extends", "saveOnClick", "$event", "emit", "saveOnRatingChange", "saveOnHover", - "saveOnTouch", - "onTouch", - "saveOnModelChange", - "onModelChange", "onKeyDown", "event", "digit", @@ -176,15 +167,7 @@ "length", "preventDefault", "stopPropagation", - "onBlur", - "focus", - "onFocus", "onStarHover", - "writeValue", - "obj", - "registerOnChange", - "fn", - "registerOnTouched", "initValue", "onStarClicked", "onClickEventObject", @@ -192,11 +175,32 @@ "Component", "args", "selector", - "providers", "inputs", "outputs", "styles", "template", + "STAR_RATING_CONTROL_ACCESSOR", + "provide", + "NG_VALUE_ACCESSOR", + "useExisting", + "forwardRef", + "StarRatingControlComponent", + "multi", + "onModelChangeRegistered", + "onTouchRegistered", + "saveOnTouch", + "onTouch", + "saveOnModelChange", + "onModelChange", + "onBlur", + "focus", + "onFocus", + "writeValue", + "obj", + "registerOnChange", + "fn", + "registerOnTouched", + "providers", "DECLARATIONS", "EXPORTS", "StarRatingModule", @@ -209,5 +213,5 @@ "declarations", "exports" ], - "mappings": "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" + "mappings": "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" } diff --git a/@packaged/angular-star-rating/esm2015/angular-star-rating.js b/@packaged/angular-star-rating/esm2015/angular-star-rating.js index 35c84f0..650d975 100644 --- a/@packaged/angular-star-rating/esm2015/angular-star-rating.js +++ b/@packaged/angular-star-rating/esm2015/angular-star-rating.js @@ -751,16 +751,206 @@ class StarRatingConfigService { } } +/** + * @fileoverview added by tsickle + * @suppress {checkTypes} checked by tsc + */ +class StarRatingComponent extends StarRating { + /** + * @param {?} config + */ + constructor(config) { + super(config); + //Outputs + this.starClickChange = new EventEmitter(); + this.ratingChange = new EventEmitter(); + this.hoverRatingChange = new EventEmitter(); + } + /** + * @param {?} $event + * @return {?} + */ + saveOnClick($event) { + if (this.starClickChange) { + this.starClickChange.emit($event); + } + } + /** + * @param {?} $event + * @return {?} + */ + saveOnRatingChange($event) { + if (this.ratingChange) { + this.ratingChange.emit($event); + } + } + /** + * @param {?} $event + * @return {?} + */ + saveOnHover($event) { + if (this.hoverRatingChange) { + this.hoverRatingChange.emit($event); + } + } + /** + * ACCESSIBILITY * + * @param {?} event + * @return {?} + */ + onKeyDown(event) { + if (!this.interactionPossible()) { + return; + } + const /** @type {?} */ handlers = { + //Decrement + Minus: () => this.decrement(), + ArrowDown: () => this.decrement(), + ArrowLeft: () => this.decrement(), + //Increment + Plus: () => this.increment(), + ArrowRight: () => this.increment(), + ArrowUp: () => this.increment(), + //Reset + Backspace: () => this.reset(), + Delete: () => this.reset(), + Digit0: () => this.reset() + }; + const /** @type {?} */ handleDigits = (eventCode) => { + const /** @type {?} */ dStr = 'Digit'; + const /** @type {?} */ digit = parseInt(eventCode.substr(dStr.length, eventCode.length - 1), 10); + this.rating = digit; + }; + if (handlers[event['code']] || + StarRatingUtils.isDigitKeyEventCode(event['code'])) { + if (StarRatingUtils.isDigitKeyEventCode(event['code'])) { + handleDigits(event['code']); + } + else { + handlers[event['code']](); + } + event.preventDefault(); + event.stopPropagation(); + } + } + /** + * @param {?=} rating + * @return {?} + */ + onStarHover(rating) { + if (!this.interactionPossible() || !this.hoverEnabled) { + return; + } + this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0; + //fire onHoverRatingChange event + const /** @type {?} */ $event = { hoverRating: this.hoverRating }; + this.saveOnHover($event); + } + /** + * @param {?} value + * @return {?} + */ + setRating(value) { + const /** @type {?} */ initValue = this.rating; + super.setRating(value); + //if value changed trigger valueAccessor events and outputs + if (initValue !== this.rating) { + const /** @type {?} */ $event = { rating: this.rating }; + this.saveOnRatingChange($event); + } + } + /** + * onStarClicked + * + * Is fired when a star is clicked. And updated the rating value. + * This function returns if the disabled or readOnly + * property is set. If provided it emits the onClick event + * handler with the actual rating value. + * + * @param {?} rating + * @return {?} + */ + onStarClicked(rating) { + //fire onClick event + if (!this.interactionPossible()) { + return; + } + this.rating = rating; + const /** @type {?} */ onClickEventObject = { + rating: this.rating + }; + this.saveOnClick(onClickEventObject); + } +} +StarRatingComponent.decorators = [ + { type: Component, args: [{ + selector: 'star-rating', + inputs: [ + 'getHalfStarVisible', + 'getColor', + 'showHalfStars', + 'hoverEnabled', + 'rating', + 'step', + 'disabled', + 'readOnly', + 'space', + 'starType', + 'size', + 'speed', + 'numOfStars', + 'direction', + 'staticColor', + 'labelPosition', + 'labelText', + 'id' + ], + outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'], + styles: [], + template: `
+
{{labelText}}
+
+
+ + + + + + + + + + + + +
+
+
+` + },] }, +]; +/** @nocollapse */ +StarRatingComponent.ctorParameters = () => [ + { type: StarRatingConfigService, }, +]; + /** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ const STAR_RATING_CONTROL_ACCESSOR = { provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(() => StarRatingComponent), + useExisting: forwardRef(() => StarRatingControlComponent), multi: true }; -class StarRatingComponent extends StarRating { +class StarRatingControlComponent extends StarRating { /** * @param {?} config */ @@ -841,8 +1031,8 @@ class StarRatingComponent extends StarRating { Digit0: () => this.reset() }; const /** @type {?} */ handleDigits = (eventCode) => { - let /** @type {?} */ dStr = 'Digit'; - let /** @type {?} */ digit = parseInt(eventCode.substr(dStr.length, eventCode.length - 1)); + const /** @type {?} */ dStr = 'Digit'; + const /** @type {?} */ digit = parseInt(eventCode.substr(dStr.length, eventCode.length - 1), 10); this.rating = digit; }; if (handlers[event['code']] || @@ -886,9 +1076,9 @@ class StarRatingComponent extends StarRating { if (!this.interactionPossible() || !this.hoverEnabled) { return; } - this.hoverRating = rating ? parseInt(rating.toString()) : 0; + this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0; //fire onHoverRatingChange event - let /** @type {?} */ $event = { hoverRating: this.hoverRating }; + const /** @type {?} */ $event = { hoverRating: this.hoverRating }; this.saveOnHover($event); } /** @@ -920,11 +1110,11 @@ class StarRatingComponent extends StarRating { * @return {?} */ setRating(value) { - let /** @type {?} */ initValue = this.rating; + const /** @type {?} */ initValue = this.rating; super.setRating(value); //if value changed trigger valueAccessor events and outputs if (initValue !== this.rating) { - let /** @type {?} */ $event = { rating: this.rating }; + const /** @type {?} */ $event = { rating: this.rating }; this.saveOnRatingChange($event); this.saveOnModelChange(this.rating); } @@ -946,15 +1136,15 @@ class StarRatingComponent extends StarRating { return; } this.rating = rating; - let /** @type {?} */ onClickEventObject = { + const /** @type {?} */ onClickEventObject = { rating: this.rating }; this.saveOnClick(onClickEventObject); } } -StarRatingComponent.decorators = [ +StarRatingControlComponent.decorators = [ { type: Component, args: [{ - selector: 'star-rating-comp', + selector: 'star-rating-control', providers: [STAR_RATING_CONTROL_ACCESSOR], inputs: [ 'getHalfStarVisible', @@ -1010,7 +1200,7 @@ StarRatingComponent.decorators = [ },] }, ]; /** @nocollapse */ -StarRatingComponent.ctorParameters = () => [ +StarRatingControlComponent.ctorParameters = () => [ { type: StarRatingConfigService, }, ]; @@ -1018,7 +1208,10 @@ StarRatingComponent.ctorParameters = () => [ * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ -const DECLARATIONS = [StarRatingComponent]; +const DECLARATIONS = [ + StarRatingComponent, + StarRatingControlComponent +]; const EXPORTS = [DECLARATIONS]; class StarRatingModule { /** @@ -1065,5 +1258,5 @@ StarRatingModule.ctorParameters = () => []; * Generated bundle index. Do not edit. */ -export { StarRatingConfig, StarRatingUtils, StarRating, StarRatingConfigService, StarRatingComponent, StarRatingModule }; +export { StarRatingConfig, StarRatingUtils, StarRating, StarRatingConfigService, StarRatingComponent, StarRatingControlComponent, StarRatingModule }; //# sourceMappingURL=angular-star-rating.js.map diff --git a/@packaged/angular-star-rating/esm2015/angular-star-rating.js.map b/@packaged/angular-star-rating/esm2015/angular-star-rating.js.map index b494d25..d64378b 100644 --- a/@packaged/angular-star-rating/esm2015/angular-star-rating.js.map +++ b/@packaged/angular-star-rating/esm2015/angular-star-rating.js.map @@ -3,20 +3,22 @@ "file": "angular-star-rating.js", "sources": [ "ng://angular-star-rating/out/src/angular-star-rating.module.ts", - "ng://angular-star-rating/out/src/components/star-rating.component.ts", + "ng://angular-star-rating/out/src/components/star-rating-control/star-rating-control.component.ts", + "ng://angular-star-rating/out/src/components/star-rating/star-rating.component.ts", "ng://angular-star-rating/out/src/services/star-rating-config.service.ts", "ng://angular-star-rating/out/src/services/star-rating.ts", "ng://angular-star-rating/out/src/services/star-rating.utils.ts", "ng://angular-star-rating/out/src/interfaces/star-rating-config.interface.ts" ], "sourcesContent": [ - "import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { StarRatingComponent } from './components/star-rating.component';\r\nimport { StarRatingConfigService } from './services/star-rating-config.service';\r\n\r\nconst DECLARATIONS = [StarRatingComponent];\r\nconst EXPORTS = [DECLARATIONS];\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DECLARATIONS],\r\n exports: [EXPORTS]\r\n})\r\nexport class StarRatingModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: [\r\n StarRatingConfigService\r\n ]\r\n };\r\n }\r\n\r\n static forChild(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n", - "import { Component, EventEmitter, forwardRef, Input } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ClickEvent } from '../interfaces/click-event.interface';\r\nimport { HoverRatingChangeEvent } from '../interfaces/hover-rating-change-event.interface';\r\nimport { RatingChangeEvent } from '../interfaces/rating-change-event.interface';\r\nimport { StarRating } from '../services/star-rating';\r\nimport { StarRatingConfigService } from '../services/star-rating-config.service';\r\nimport { StarRatingUtils } from '../services/star-rating.utils';\r\n\r\nconst STAR_RATING_CONTROL_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => StarRatingComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'star-rating-comp',\r\n providers: [STAR_RATING_CONTROL_ACCESSOR],\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `
\r\n
{{labelText}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\nexport class StarRatingComponent extends StarRating\r\n implements ControlValueAccessor {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter = new EventEmitter();\r\n\r\n ratingChange: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n onTouch: Function;\r\n onModelChange: Function;\r\n private onModelChangeRegistered = false;\r\n private onTouchRegistered = false;\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnTouch() {\r\n if (this.onTouchRegistered) {\r\n this.onTouch();\r\n }\r\n }\r\n\r\n saveOnModelChange(value: number) {\r\n if (this.onModelChangeRegistered) {\r\n this.onModelChange(value);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n let dStr = 'Digit';\r\n let digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1)\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n this.saveOnTouch();\r\n }\r\n\r\n //Focus events\r\n onBlur(event: FocusEvent) {\r\n this.focus = false;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n onFocus(event: FocusEvent) {\r\n this.focus = true;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString()) : 0;\r\n\r\n //fire onHoverRatingChange event\r\n let $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n /**Form Control - ControlValueAccessor implementation**/\r\n\r\n writeValue(obj: any): void {\r\n this.rating = obj;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n this.onModelChangeRegistered = true;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n this.onTouchRegistered = true;\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n let initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n let $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n\r\n this.saveOnModelChange(this.rating);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n let onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n", + "import {CommonModule} from '@angular/common';\r\nimport {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {StarRatingComponent} from './components/star-rating/star-rating.component';\r\nimport {StarRatingControlComponent} from './components/star-rating-control/star-rating-control.component';\r\nimport {StarRatingConfigService} from './services/star-rating-config.service';\r\n\r\nconst DECLARATIONS = [\r\n StarRatingComponent,\r\n StarRatingControlComponent\r\n];\r\nconst EXPORTS = [DECLARATIONS];\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DECLARATIONS],\r\n exports: [EXPORTS]\r\n})\r\nexport class StarRatingModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: [\r\n StarRatingConfigService\r\n ]\r\n };\r\n }\r\n\r\n static forChild(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n", + "import {Component, EventEmitter, forwardRef} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {ClickEvent} from '../../interfaces/click-event.interface';\r\nimport {HoverRatingChangeEvent} from '../../interfaces/hover-rating-change-event.interface';\r\nimport {RatingChangeEvent} from '../../interfaces/rating-change-event.interface';\r\nimport {StarRating} from '../../services/star-rating';\r\nimport {StarRatingConfigService} from '../../services/star-rating-config.service';\r\nimport {StarRatingUtils} from '../../services/star-rating.utils';\r\n\r\nconst STAR_RATING_CONTROL_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => StarRatingControlComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'star-rating-control',\r\n providers: [STAR_RATING_CONTROL_ACCESSOR],\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `
\r\n
{{labelText}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\nexport class StarRatingControlComponent extends StarRating\r\n implements ControlValueAccessor {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter = new EventEmitter();\r\n\r\n ratingChange: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n onTouch: Function;\r\n onModelChange: Function;\r\n private onModelChangeRegistered = false;\r\n private onTouchRegistered = false;\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnTouch() {\r\n if (this.onTouchRegistered) {\r\n this.onTouch();\r\n }\r\n }\r\n\r\n saveOnModelChange(value: number) {\r\n if (this.onModelChangeRegistered) {\r\n this.onModelChange(value);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n const dStr = 'Digit';\r\n const digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1), 10\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n this.saveOnTouch();\r\n }\r\n\r\n //Focus events\r\n onBlur(event: FocusEvent) {\r\n this.focus = false;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n onFocus(event: FocusEvent) {\r\n this.focus = true;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0;\r\n\r\n //fire onHoverRatingChange event\r\n const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n /**Form Control - ControlValueAccessor implementation**/\r\n\r\n writeValue(obj: any): void {\r\n this.rating = obj;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n this.onModelChangeRegistered = true;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n this.onTouchRegistered = true;\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n const initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n const $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n\r\n this.saveOnModelChange(this.rating);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n const onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n", + "import {Component, EventEmitter} from '@angular/core';\r\nimport {ClickEvent} from '../../interfaces/click-event.interface';\r\nimport {HoverRatingChangeEvent} from '../../interfaces/hover-rating-change-event.interface';\r\nimport {RatingChangeEvent} from '../../interfaces/rating-change-event.interface';\r\nimport {StarRating} from '../../services/star-rating';\r\nimport {StarRatingConfigService} from '../../services/star-rating-config.service';\r\nimport {StarRatingUtils} from '../../services/star-rating.utils';\r\n\r\n@Component({\r\n selector: 'star-rating',\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `
\r\n
{{labelText}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\nexport class StarRatingComponent extends StarRating {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter = new EventEmitter();\r\n\r\n ratingChange: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n const dStr = 'Digit';\r\n const digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1), 10\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0;\r\n\r\n //fire onHoverRatingChange event\r\n const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n const initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n const $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n const onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n", "import {\r\n StarRatingConfig,\r\n starRatingColor,\r\n starRatingSizes,\r\n starRatingSpeed,\r\n starRatingStarTypes,\r\n starRatingLabelPosition\r\n} from '../interfaces/star-rating-config.interface';\r\n\r\n/**\r\n * Configuration service for the StarRating component.\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the star ratings used in the application.\r\n */\r\nexport class StarRatingConfigService implements StarRatingConfig {\r\n _classEmpty = 'default-star-empty-icon';\r\n\r\n get classEmpty() {\r\n return this._classEmpty;\r\n }\r\n\r\n set classEmpty(classEmpty: string) {\r\n this._classEmpty = classEmpty;\r\n }\r\n\r\n private _classHalf = 'default-star-half-icon';\r\n\r\n get classHalf(): string {\r\n return this._classHalf;\r\n }\r\n\r\n set classHalf(classHalf: string) {\r\n this._classHalf = classHalf;\r\n }\r\n\r\n private _classFilled = 'default-star-filled-icon';\r\n\r\n get classFilled(): string {\r\n return this._classFilled;\r\n }\r\n\r\n set classFilled(classFilled: string) {\r\n this._classFilled = classFilled;\r\n }\r\n\r\n private _numOfStars = 5;\r\n\r\n get numOfStars(): number {\r\n return this._numOfStars;\r\n }\r\n\r\n set numOfStars(numOfStars: number) {\r\n this._numOfStars = numOfStars;\r\n }\r\n\r\n private _size: starRatingSizes = 'medium';\r\n\r\n get size(): starRatingSizes {\r\n return this._size;\r\n }\r\n\r\n set size(size: starRatingSizes) {\r\n this._size = size;\r\n }\r\n\r\n private _staticColor: starRatingColor;\r\n\r\n get staticColor(): starRatingColor {\r\n return this._staticColor;\r\n }\r\n\r\n set staticColor(value: starRatingColor) {\r\n this._staticColor = value;\r\n }\r\n\r\n private _labelPosition: starRatingLabelPosition = 'left';\r\n\r\n get labelPosition(): starRatingLabelPosition {\r\n return this._labelPosition;\r\n }\r\n\r\n set labelPosition(labelPosition: starRatingLabelPosition) {\r\n this._labelPosition = labelPosition;\r\n }\r\n\r\n private _speed: starRatingSpeed = 'noticeable';\r\n\r\n get speed(): starRatingSpeed {\r\n return this._speed;\r\n }\r\n\r\n set speed(speed: starRatingSpeed) {\r\n this._speed = speed;\r\n }\r\n\r\n private _starType: starRatingStarTypes = 'svg';\r\n\r\n get starType(): starRatingStarTypes {\r\n return this._starType;\r\n }\r\n\r\n set starType(starType: starRatingStarTypes) {\r\n this._starType = starType;\r\n }\r\n\r\n private _assetsPath = 'assets/images/';\r\n\r\n get assetsPath(): string {\r\n return this._assetsPath;\r\n }\r\n\r\n set assetsPath(assetsPath: string) {\r\n this._assetsPath = assetsPath;\r\n }\r\n\r\n private _svgPath = this.assetsPath + 'star-rating.icons.svg';\r\n\r\n get svgPath(): string {\r\n return this._svgPath;\r\n }\r\n\r\n set svgPath(svgPath: string) {\r\n this._svgPath = svgPath;\r\n }\r\n\r\n private _svgEmptySymbolId = 'star-empty';\r\n\r\n get svgEmptySymbolId(): string {\r\n return this._svgEmptySymbolId;\r\n }\r\n\r\n set svgEmptySymbolId(svgEmptySymbolId: string) {\r\n this._svgEmptySymbolId = svgEmptySymbolId;\r\n }\r\n\r\n private _svgHalfSymbolId = 'star-half';\r\n\r\n get svgHalfSymbolId(): string {\r\n return this._svgHalfSymbolId;\r\n }\r\n\r\n set svgHalfSymbolId(svgHalfSymbolId: string) {\r\n this._svgHalfSymbolId = svgHalfSymbolId;\r\n }\r\n\r\n private _svgFilledSymbolId = 'star-filled';\r\n\r\n get svgFilledSymbolId(): string {\r\n return this._svgFilledSymbolId;\r\n }\r\n\r\n set svgFilledSymbolId(svgFilledSymbolId: string) {\r\n this._svgFilledSymbolId = svgFilledSymbolId;\r\n }\r\n\r\n private _svgPathEmpty: string = this.svgPath + '#' + this.svgEmptySymbolId;\r\n\r\n get svgPathEmpty(): string {\r\n return this._svgPathEmpty;\r\n }\r\n\r\n set svgPathEmpty(svgPathEmpty: string) {\r\n this._svgPathEmpty = svgPathEmpty;\r\n }\r\n\r\n private _svgPathHalf: string = this.svgPath + '#' + this.svgHalfSymbolId;\r\n\r\n get svgPathHalf(): string {\r\n return this._svgPathHalf;\r\n }\r\n\r\n set svgPathHalf(svgPathHalf: string) {\r\n this._svgPathHalf = svgPathHalf;\r\n }\r\n\r\n private _svgPathFilled: string = this.svgPath + '#' + this.svgFilledSymbolId;\r\n\r\n get svgPathFilled(): string {\r\n return this._svgPathFilled;\r\n }\r\n\r\n set svgPathFilled(svgPathFilled: string) {\r\n this._svgPathFilled = svgPathFilled;\r\n }\r\n\r\n getColor(\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ): starRatingColor {\r\n rating = rating || 0;\r\n\r\n // if a fix color is set use this one\r\n if (staticColor) {\r\n return staticColor;\r\n }\r\n\r\n // calculate size of smallest fraction\r\n const fractionSize = numOfStars / 3;\r\n\r\n // apply color by fraction\r\n let color: starRatingColor = 'default';\r\n if (rating > 0) {\r\n color = 'negative';\r\n }\r\n if (rating > fractionSize) {\r\n color = 'ok';\r\n }\r\n if (rating > fractionSize * 2) {\r\n color = 'positive';\r\n }\r\n\r\n return color;\r\n }\r\n\r\n getHalfStarVisible(rating: number): boolean {\r\n return Math.abs(rating % 1) > 0;\r\n }\r\n}\r\n", "import {\r\n StarRatingConfig,\r\n starRatingColor,\r\n starRatingDirection,\r\n starRatingLabelPosition,\r\n starRatingSizes,\r\n starRatingSpeed,\r\n starRatingStarSpace,\r\n starRatingStarTypes\r\n} from '../interfaces/star-rating-config.interface';\r\nimport { StarRatingConfigService } from './star-rating-config.service';\r\nimport { StarRatingUtils } from './star-rating.utils';\r\n\r\nexport class StarRating {\r\n protected config: StarRatingConfig;\r\n\r\n //CTRL ONLY\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n classEmpty: string;\r\n classHalf: string;\r\n classFilled: string;\r\n\r\n pathEmpty: string;\r\n pathHalf: string;\r\n pathFilled: string;\r\n\r\n color: starRatingColor;\r\n stars: Array;\r\n ratingAsInteger: number;\r\n halfStarVisible: boolean;\r\n\r\n /////////////////////////////////////////////\r\n\r\n\r\n set rating(value: number) {\r\n this.setRating(value);\r\n }\r\n\r\n /**\r\n * showHalfStars\r\n */\r\n protected _showHalfStars: boolean;\r\n get showHalfStars(): boolean {\r\n return this._showHalfStars;\r\n }\r\n\r\n set showHalfStars(value: boolean) {\r\n this._showHalfStars = !!value;\r\n\r\n //update halfStarVisible\r\n this.setHalfStarVisible();\r\n }\r\n\r\n /**\r\n * getColor\r\n */\r\n getColor: (\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ) => starRatingColor;\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * getHalfStarVisible\r\n */\r\n getHalfStarVisible: (rating: number) => boolean;\r\n /////////////////////////////////////////////\r\n\r\n //Inputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * id property to identify the DOM element\r\n */\r\n protected _id: string;\r\n get id(): string {\r\n return this._id;\r\n }\r\n\r\n set id(value: string) {\r\n this._id = value || '';\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * focus\r\n */\r\n protected _focus: boolean;\r\n get focus(): boolean {\r\n return this._focus;\r\n }\r\n\r\n set focus(value: boolean) {\r\n this._focus = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * labelText\r\n */\r\n protected _labelText: string;\r\n get labelText(): string {\r\n return this._labelText;\r\n }\r\n\r\n set labelText(value: string) {\r\n this._labelText = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * labelPosition\r\n */\r\n protected _labelPosition: starRatingLabelPosition;\r\n get labelPosition(): starRatingLabelPosition {\r\n return this._labelPosition;\r\n }\r\n\r\n set labelPosition(value: starRatingLabelPosition) {\r\n this._labelPosition = value || this.config.labelPosition;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * labelVisible\r\n */\r\n protected _labelVisible: boolean;\r\n get labelVisible(): boolean {\r\n return this._labelVisible;\r\n }\r\n\r\n set labelVisible(value: boolean) {\r\n this._labelVisible = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * hoverEnabled\r\n */\r\n protected _hoverEnabled: boolean;\r\n get hoverEnabled(): boolean {\r\n return this._hoverEnabled;\r\n }\r\n\r\n set hoverEnabled(value: boolean) {\r\n this._hoverEnabled = value !== undefined ? !!value : false;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * staticColor\r\n */\r\n protected _staticColor: starRatingColor;\r\n get staticColor(): starRatingColor {\r\n return this._staticColor || this.config.staticColor || undefined;\r\n }\r\n\r\n set staticColor(value: starRatingColor) {\r\n this._staticColor = value;\r\n\r\n //update color.\r\n this.setColor();\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * direction\r\n */\r\n protected _direction: starRatingDirection;\r\n get direction(): starRatingDirection {\r\n return this._direction;\r\n }\r\n\r\n set direction(value: starRatingDirection) {\r\n this._direction = value || undefined;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * numOfStars\r\n */\r\n protected _numOfStars: number;\r\n get numOfStars(): number {\r\n return this._numOfStars;\r\n }\r\n\r\n set numOfStars(value: number) {\r\n this._numOfStars = value > 0 ? value : this.config.numOfStars;\r\n\r\n //update stars array\r\n this.stars = StarRatingUtils.getStarsArray(this.numOfStars);\r\n\r\n //update color\r\n this.setColor();\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * hoverRating\r\n */\r\n protected _hoverRating: number;\r\n get hoverRating(): number {\r\n return this._hoverRating;\r\n }\r\n\r\n set hoverRating(value: number) {\r\n this._hoverRating = value > 0 ? value : 0;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * speed\r\n */\r\n protected _speed: starRatingSpeed;\r\n get speed(): starRatingSpeed {\r\n return this._speed;\r\n }\r\n\r\n set speed(value: starRatingSpeed) {\r\n this._speed = value || this.config.speed;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * size\r\n */\r\n protected _size: starRatingSizes;\r\n get size(): starRatingSizes {\r\n return this._size || this.config.size;\r\n }\r\n\r\n set size(value: starRatingSizes) {\r\n this._size = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * starType\r\n */\r\n protected _starType: starRatingStarTypes;\r\n get starType(): starRatingStarTypes {\r\n return this._starType || this.config.starType;\r\n }\r\n\r\n set starType(value: starRatingStarTypes) {\r\n this._starType = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * space\r\n */\r\n protected _space: starRatingStarSpace;\r\n get space(): starRatingStarSpace {\r\n return this._space;\r\n }\r\n\r\n set space(value: starRatingStarSpace) {\r\n this._space = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * readOnly\r\n */\r\n protected _readOnly: boolean;\r\n get readOnly(): boolean {\r\n return this._readOnly;\r\n }\r\n\r\n set readOnly(value: boolean) {\r\n this._readOnly = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * disabled\r\n */\r\n protected _disabled: boolean;\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n private _step: number;\r\n get step(): number {\r\n return this._step;\r\n }\r\n\r\n set step(value: number) {\r\n this._step = value > 0 ? value : 1;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * rating\r\n */\r\n protected _rating: number;\r\n get rating(): number {\r\n return this._rating;\r\n }\r\n\r\n /**\r\n * setRating\r\n * I use a setter function instead of a set method to enable overrides for this function.\r\n * @param value\r\n */\r\n setRating(value: number) {\r\n //validate and apply newRating\r\n let newRating = 0;\r\n if (value >= 0 && value <= this.numOfStars) {\r\n newRating = value;\r\n }\r\n\r\n //limit max value to max number of stars\r\n if (value > this.numOfStars) {\r\n newRating = this.numOfStars;\r\n }\r\n this._rating = newRating;\r\n\r\n //update ratingAsInteger. rating parsed to int for the value-[n] modifier\r\n this.ratingAsInteger = parseInt(this._rating.toString(), 10);\r\n\r\n //update halfStarsVisible\r\n this.setHalfStarVisible();\r\n\r\n //update calculated Color\r\n this.setColor();\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n this.config = config;\r\n\r\n //set default ctrl props\r\n this.classEmpty = this.config.classEmpty;\r\n this.classHalf = this.config.classHalf;\r\n this.classFilled = this.config.classFilled;\r\n this.pathEmpty = this.config.svgPathEmpty;\r\n this.pathHalf = this.config.svgPathHalf;\r\n this.pathFilled = this.config.svgPathFilled;\r\n\r\n //set default Component Inputs\r\n if (\r\n 'getColor' in this.config &&\r\n typeof this.config.getColor === 'function'\r\n ) {\r\n this.getColor = this.config.getColor;\r\n }\r\n\r\n if (\r\n 'getHalfStarVisible' in this.config &&\r\n typeof this.config.getHalfStarVisible === 'function'\r\n ) {\r\n this.getHalfStarVisible = this.config.getHalfStarVisible;\r\n }\r\n\r\n this.numOfStars = this.config.numOfStars;\r\n this.rating = 0;\r\n this.step = 1;\r\n }\r\n\r\n svgVisible(): boolean {\r\n return this.starType === 'svg';\r\n }\r\n\r\n interactionPossible(): boolean {\r\n return !this.readOnly && !this.disabled;\r\n }\r\n\r\n setColor(): void {\r\n //check if custom function is given\r\n if (typeof this.getColor === 'function') {\r\n this.color = this.getColor(\r\n this.rating,\r\n this.numOfStars,\r\n this.staticColor\r\n );\r\n } else {\r\n this.color = StarRatingUtils.getColor(\r\n this.rating,\r\n this.numOfStars,\r\n this.staticColor\r\n );\r\n }\r\n }\r\n\r\n setHalfStarVisible(): void {\r\n //update halfStarVisible\r\n if (this.showHalfStars) {\r\n //check if custom function is given\r\n if (typeof this.getHalfStarVisible === 'function') {\r\n this.halfStarVisible = this.getHalfStarVisible(this.rating);\r\n } else {\r\n this.halfStarVisible = StarRatingUtils.getHalfStarVisible(this.rating);\r\n }\r\n } else {\r\n this.halfStarVisible = false;\r\n }\r\n }\r\n\r\n getComponentClassNames(): string {\r\n const classNames: string[] = [];\r\n\r\n classNames.push(this.rating ? 'value-' + this.ratingAsInteger : 'value-0');\r\n classNames.push(this.halfStarVisible ? 'half' : '');\r\n classNames.push(this.hoverEnabled ? 'hover' : '');\r\n\r\n const hoverRating = this.hoverRating\r\n ? 'hover-' + this.hoverRating\r\n : 'hover-0';\r\n classNames.push(this.hoverEnabled ? hoverRating : '');\r\n\r\n classNames.push(this.space ? 'space-' + this.space : '');\r\n classNames.push(this.labelPosition ? 'label-' + this.labelPosition : '');\r\n classNames.push(this.color ? 'color-' + this.color : '');\r\n classNames.push(this.starType ? 'star-' + this.starType : '');\r\n classNames.push(this.speed);\r\n classNames.push(this.size);\r\n classNames.push(this.readOnly ? 'read-only' : '');\r\n classNames.push(this.disabled ? 'disabled' : '');\r\n classNames.push(this.direction ? 'direction-' + this.direction : '');\r\n\r\n return classNames.join(' ');\r\n }\r\n\r\n increment() {\r\n //increment to next higher step\r\n const absDiff = Math.abs(this.rating % this.step);\r\n this.rating = this.rating + (absDiff > 0 ? this.step - absDiff : this.step);\r\n }\r\n\r\n decrement() {\r\n //decrement to next lower step\r\n const absDiff = Math.abs(this.rating % this.step);\r\n this.rating = this.rating - (absDiff > 0 ? absDiff : this.step);\r\n }\r\n\r\n reset() {\r\n this.rating = 0;\r\n }\r\n}\r\n", "import { starRatingColor } from '../interfaces/star-rating-config.interface';\r\nexport class StarRatingUtils {\r\n //Static methods\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n /*\r\n * getStarsArray\r\n *\r\n * returns an array of increasing numbers starting at 1\r\n *\r\n * @param numOfStars\r\n * @returns {Array}\r\n */\r\n static getStarsArray(numOfStars: number): Array {\r\n let stars: Array = [];\r\n for (let i = 0; i < numOfStars; i++) {\r\n stars.push(i + 1);\r\n }\r\n return stars;\r\n }\r\n\r\n /*\r\n * getHalfStarVisible\r\n *\r\n * Returns true if there should be a half star visible, and false if not.\r\n *\r\n * @param rating\r\n * @returns {boolean}\r\n */\r\n static getHalfStarVisible(rating: number): boolean {\r\n return Math.abs(rating % 1) > 0;\r\n }\r\n\r\n /*\r\n * getColor\r\n *\r\n * The default function for color calculation\r\n * based on the current rating and the the number of stars possible.\r\n * If a staticColor is set the function will use it as return value.\r\n *\r\n * @param rating\r\n * @param numOfStars\r\n * @param staticColor\r\n * @returns {starRatingColor}\r\n */\r\n static getColor(\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ): starRatingColor {\r\n rating = rating || 0;\r\n\r\n //if a fix color is set use this one\r\n if (staticColor) {\r\n return staticColor;\r\n }\r\n\r\n //calculate size of smallest fraction\r\n let fractionSize = numOfStars / 3;\r\n\r\n //apply color by fraction\r\n let color: starRatingColor = 'default';\r\n if (rating > 0) {\r\n color = 'negative';\r\n }\r\n if (rating > fractionSize) {\r\n color = 'ok';\r\n }\r\n if (rating > fractionSize * 2) {\r\n color = 'positive';\r\n }\r\n\r\n return color;\r\n }\r\n\r\n /*\r\n * isDigitKeyEventCode\r\n * detects digit key event sodes\r\n * @param eventCode\r\n * @returns {boolean}\r\n */\r\n static isDigitKeyEventCode(eventCode: string): boolean {\r\n return eventCode.indexOf('Digit') === 0;\r\n }\r\n}\r\n", "export type starRatingSizes = 'small' | 'medium' | 'large';\r\nexport type starRatingColor = 'default' | 'negative' | 'ok' | 'positive';\r\nexport type starRatingSpeed = 'immediately' | 'noticeable' | 'slow';\r\nexport type starRatingLabelPosition = 'left' | 'right' | 'top' | 'bottom';\r\nexport type starRatingStarTypes = 'svg' | 'icon' | 'custom-icon';\r\nexport type starRatingStarSpace = 'no' | 'between' | 'around';\r\nexport type starRatingDirection = 'rtl' | 'ltr';\r\n\r\nexport class StarRatingConfig {\r\n // binding defaults\r\n numOfStars?: number;\r\n size?: starRatingSizes;\r\n speed?: starRatingSpeed;\r\n labelPosition?: starRatingLabelPosition;\r\n starType?: starRatingStarTypes;\r\n staticColor: starRatingColor;\r\n getColor?: (\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ) => starRatingColor;\r\n getHalfStarVisible?: (rating: number) => boolean;\r\n // statics\r\n classEmpty?: string;\r\n classHalf?: string;\r\n classFilled?: string;\r\n assetsPath?: string;\r\n svgPath?: string;\r\n svgEmptySymbolId?: string;\r\n svgHalfSymbolId?: string;\r\n svgFilledSymbolId?: string;\r\n svgPathEmpty?: string;\r\n svgPathHalf?: string;\r\n svgPathFilled?: string;\r\n}\r\n" ], "names": [], - "mappings": "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" + "mappings": "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" } diff --git a/@packaged/angular-star-rating/esm5/angular-star-rating.js b/@packaged/angular-star-rating/esm5/angular-star-rating.js index 738ece9..e2a62e8 100644 --- a/@packaged/angular-star-rating/esm5/angular-star-rating.js +++ b/@packaged/angular-star-rating/esm5/angular-star-rating.js @@ -544,11 +544,6 @@ var StarRatingConfigService = /** @class */ (function () { }; return StarRatingConfigService; }()); -var STAR_RATING_CONTROL_ACCESSOR = { - provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(function () { return StarRatingComponent; }), - multi: true -}; var StarRatingComponent = /** @class */ (function (_super) { __extends(StarRatingComponent, _super); function StarRatingComponent(config) { @@ -556,8 +551,6 @@ var StarRatingComponent = /** @class */ (function (_super) { _this.starClickChange = new EventEmitter(); _this.ratingChange = new EventEmitter(); _this.hoverRatingChange = new EventEmitter(); - _this.onModelChangeRegistered = false; - _this.onTouchRegistered = false; return _this; } StarRatingComponent.prototype.saveOnClick = function ($event) { @@ -575,17 +568,140 @@ var StarRatingComponent = /** @class */ (function (_super) { this.hoverRatingChange.emit($event); } }; - StarRatingComponent.prototype.saveOnTouch = function () { + StarRatingComponent.prototype.onKeyDown = function (event) { + var _this = this; + if (!this.interactionPossible()) { + return; + } + var handlers = { + Minus: function () { return _this.decrement(); }, + ArrowDown: function () { return _this.decrement(); }, + ArrowLeft: function () { return _this.decrement(); }, + Plus: function () { return _this.increment(); }, + ArrowRight: function () { return _this.increment(); }, + ArrowUp: function () { return _this.increment(); }, + Backspace: function () { return _this.reset(); }, + Delete: function () { return _this.reset(); }, + Digit0: function () { return _this.reset(); } + }; + var handleDigits = function (eventCode) { + var dStr = 'Digit'; + var digit = parseInt(eventCode.substr(dStr.length, eventCode.length - 1), 10); + _this.rating = digit; + }; + if (handlers[event['code']] || + StarRatingUtils.isDigitKeyEventCode(event['code'])) { + if (StarRatingUtils.isDigitKeyEventCode(event['code'])) { + handleDigits(event['code']); + } + else { + handlers[event['code']](); + } + event.preventDefault(); + event.stopPropagation(); + } + }; + StarRatingComponent.prototype.onStarHover = function (rating) { + if (!this.interactionPossible() || !this.hoverEnabled) { + return; + } + this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0; + var $event = { hoverRating: this.hoverRating }; + this.saveOnHover($event); + }; + StarRatingComponent.prototype.setRating = function (value) { + var initValue = this.rating; + _super.prototype.setRating.call(this, value); + if (initValue !== this.rating) { + var $event = { rating: this.rating }; + this.saveOnRatingChange($event); + } + }; + StarRatingComponent.prototype.onStarClicked = function (rating) { + if (!this.interactionPossible()) { + return; + } + this.rating = rating; + var onClickEventObject = { + rating: this.rating + }; + this.saveOnClick(onClickEventObject); + }; + return StarRatingComponent; +}(StarRating)); +StarRatingComponent.decorators = [ + { type: Component, args: [{ + selector: 'star-rating', + inputs: [ + 'getHalfStarVisible', + 'getColor', + 'showHalfStars', + 'hoverEnabled', + 'rating', + 'step', + 'disabled', + 'readOnly', + 'space', + 'starType', + 'size', + 'speed', + 'numOfStars', + 'direction', + 'staticColor', + 'labelPosition', + 'labelText', + 'id' + ], + outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'], + styles: [], + template: "
\n
{{labelText}}
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n" + },] }, +]; +StarRatingComponent.ctorParameters = function () { return [ + { type: StarRatingConfigService, }, +]; }; +var STAR_RATING_CONTROL_ACCESSOR = { + provide: NG_VALUE_ACCESSOR, + useExisting: forwardRef(function () { return StarRatingControlComponent; }), + multi: true +}; +var StarRatingControlComponent = /** @class */ (function (_super) { + __extends(StarRatingControlComponent, _super); + function StarRatingControlComponent(config) { + var _this = _super.call(this, config) || this; + _this.starClickChange = new EventEmitter(); + _this.ratingChange = new EventEmitter(); + _this.hoverRatingChange = new EventEmitter(); + _this.onModelChangeRegistered = false; + _this.onTouchRegistered = false; + return _this; + } + StarRatingControlComponent.prototype.saveOnClick = function ($event) { + if (this.starClickChange) { + this.starClickChange.emit($event); + } + }; + StarRatingControlComponent.prototype.saveOnRatingChange = function ($event) { + if (this.ratingChange) { + this.ratingChange.emit($event); + } + }; + StarRatingControlComponent.prototype.saveOnHover = function ($event) { + if (this.hoverRatingChange) { + this.hoverRatingChange.emit($event); + } + }; + StarRatingControlComponent.prototype.saveOnTouch = function () { if (this.onTouchRegistered) { this.onTouch(); } }; - StarRatingComponent.prototype.saveOnModelChange = function (value) { + StarRatingControlComponent.prototype.saveOnModelChange = function (value) { if (this.onModelChangeRegistered) { this.onModelChange(value); } }; - StarRatingComponent.prototype.onKeyDown = function (event) { + StarRatingControlComponent.prototype.onKeyDown = function (event) { var _this = this; if (!this.interactionPossible()) { return; @@ -603,7 +719,7 @@ var StarRatingComponent = /** @class */ (function (_super) { }; var handleDigits = function (eventCode) { var dStr = 'Digit'; - var digit = parseInt(eventCode.substr(dStr.length, eventCode.length - 1)); + var digit = parseInt(eventCode.substr(dStr.length, eventCode.length - 1), 10); _this.rating = digit; }; if (handlers[event['code']] || @@ -619,38 +735,38 @@ var StarRatingComponent = /** @class */ (function (_super) { } this.saveOnTouch(); }; - StarRatingComponent.prototype.onBlur = function (event) { + StarRatingControlComponent.prototype.onBlur = function (event) { this.focus = false; event.preventDefault(); event.stopPropagation(); this.saveOnTouch(); }; - StarRatingComponent.prototype.onFocus = function (event) { + StarRatingControlComponent.prototype.onFocus = function (event) { this.focus = true; event.preventDefault(); event.stopPropagation(); this.saveOnTouch(); }; - StarRatingComponent.prototype.onStarHover = function (rating) { + StarRatingControlComponent.prototype.onStarHover = function (rating) { if (!this.interactionPossible() || !this.hoverEnabled) { return; } - this.hoverRating = rating ? parseInt(rating.toString()) : 0; + this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0; var $event = { hoverRating: this.hoverRating }; this.saveOnHover($event); }; - StarRatingComponent.prototype.writeValue = function (obj) { + StarRatingControlComponent.prototype.writeValue = function (obj) { this.rating = obj; }; - StarRatingComponent.prototype.registerOnChange = function (fn) { + StarRatingControlComponent.prototype.registerOnChange = function (fn) { this.onModelChange = fn; this.onModelChangeRegistered = true; }; - StarRatingComponent.prototype.registerOnTouched = function (fn) { + StarRatingControlComponent.prototype.registerOnTouched = function (fn) { this.onTouch = fn; this.onTouchRegistered = true; }; - StarRatingComponent.prototype.setRating = function (value) { + StarRatingControlComponent.prototype.setRating = function (value) { var initValue = this.rating; _super.prototype.setRating.call(this, value); if (initValue !== this.rating) { @@ -659,7 +775,7 @@ var StarRatingComponent = /** @class */ (function (_super) { this.saveOnModelChange(this.rating); } }; - StarRatingComponent.prototype.onStarClicked = function (rating) { + StarRatingControlComponent.prototype.onStarClicked = function (rating) { if (!this.interactionPossible()) { return; } @@ -669,11 +785,11 @@ var StarRatingComponent = /** @class */ (function (_super) { }; this.saveOnClick(onClickEventObject); }; - return StarRatingComponent; + return StarRatingControlComponent; }(StarRating)); -StarRatingComponent.decorators = [ +StarRatingControlComponent.decorators = [ { type: Component, args: [{ - selector: 'star-rating-comp', + selector: 'star-rating-control', providers: [STAR_RATING_CONTROL_ACCESSOR], inputs: [ 'getHalfStarVisible', @@ -700,10 +816,13 @@ StarRatingComponent.decorators = [ template: "
\n
{{labelText}}
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n" },] }, ]; -StarRatingComponent.ctorParameters = function () { return [ +StarRatingControlComponent.ctorParameters = function () { return [ { type: StarRatingConfigService, }, ]; }; -var DECLARATIONS = [StarRatingComponent]; +var DECLARATIONS = [ + StarRatingComponent, + StarRatingControlComponent +]; var EXPORTS = [DECLARATIONS]; var StarRatingModule = /** @class */ (function () { function StarRatingModule() { @@ -733,5 +852,5 @@ StarRatingModule.decorators = [ ]; StarRatingModule.ctorParameters = function () { return []; }; -export { StarRatingConfig, StarRatingUtils, StarRating, StarRatingConfigService, StarRatingComponent, StarRatingModule }; +export { StarRatingConfig, StarRatingUtils, StarRating, StarRatingConfigService, StarRatingComponent, StarRatingControlComponent, StarRatingModule }; //# sourceMappingURL=angular-star-rating.js.map diff --git a/@packaged/angular-star-rating/esm5/angular-star-rating.js.map b/@packaged/angular-star-rating/esm5/angular-star-rating.js.map index 27e5997..7a90575 100644 --- a/@packaged/angular-star-rating/esm5/angular-star-rating.js.map +++ b/@packaged/angular-star-rating/esm5/angular-star-rating.js.map @@ -3,15 +3,17 @@ "file": "angular-star-rating.js", "sources": [ "ng://angular-star-rating/out/src/angular-star-rating.module.ts", - "ng://angular-star-rating/out/src/components/star-rating.component.ts", + "ng://angular-star-rating/out/src/components/star-rating-control/star-rating-control.component.ts", + "ng://angular-star-rating/out/src/components/star-rating/star-rating.component.ts", "ng://angular-star-rating/out/src/services/star-rating-config.service.ts", "ng://angular-star-rating/out/src/services/star-rating.ts", "ng://angular-star-rating/out/src/services/star-rating.utils.ts", "ng://angular-star-rating/out/src/interfaces/star-rating-config.interface.ts" ], "sourcesContent": [ - "import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { StarRatingComponent } from './components/star-rating.component';\r\nimport { StarRatingConfigService } from './services/star-rating-config.service';\r\n\r\nconst DECLARATIONS = [StarRatingComponent];\r\nconst EXPORTS = [DECLARATIONS];\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DECLARATIONS],\r\n exports: [EXPORTS]\r\n})\r\nexport class StarRatingModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: [\r\n StarRatingConfigService\r\n ]\r\n };\r\n }\r\n\r\n static forChild(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n", - "import { Component, EventEmitter, forwardRef, Input } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ClickEvent } from '../interfaces/click-event.interface';\r\nimport { HoverRatingChangeEvent } from '../interfaces/hover-rating-change-event.interface';\r\nimport { RatingChangeEvent } from '../interfaces/rating-change-event.interface';\r\nimport { StarRating } from '../services/star-rating';\r\nimport { StarRatingConfigService } from '../services/star-rating-config.service';\r\nimport { StarRatingUtils } from '../services/star-rating.utils';\r\n\r\nconst STAR_RATING_CONTROL_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => StarRatingComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'star-rating-comp',\r\n providers: [STAR_RATING_CONTROL_ACCESSOR],\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `
\r\n
{{labelText}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\nexport class StarRatingComponent extends StarRating\r\n implements ControlValueAccessor {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter = new EventEmitter();\r\n\r\n ratingChange: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n onTouch: Function;\r\n onModelChange: Function;\r\n private onModelChangeRegistered = false;\r\n private onTouchRegistered = false;\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnTouch() {\r\n if (this.onTouchRegistered) {\r\n this.onTouch();\r\n }\r\n }\r\n\r\n saveOnModelChange(value: number) {\r\n if (this.onModelChangeRegistered) {\r\n this.onModelChange(value);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n let dStr = 'Digit';\r\n let digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1)\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n this.saveOnTouch();\r\n }\r\n\r\n //Focus events\r\n onBlur(event: FocusEvent) {\r\n this.focus = false;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n onFocus(event: FocusEvent) {\r\n this.focus = true;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString()) : 0;\r\n\r\n //fire onHoverRatingChange event\r\n let $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n /**Form Control - ControlValueAccessor implementation**/\r\n\r\n writeValue(obj: any): void {\r\n this.rating = obj;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n this.onModelChangeRegistered = true;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n this.onTouchRegistered = true;\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n let initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n let $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n\r\n this.saveOnModelChange(this.rating);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n let onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n", + "import {CommonModule} from '@angular/common';\r\nimport {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {StarRatingComponent} from './components/star-rating/star-rating.component';\r\nimport {StarRatingControlComponent} from './components/star-rating-control/star-rating-control.component';\r\nimport {StarRatingConfigService} from './services/star-rating-config.service';\r\n\r\nconst DECLARATIONS = [\r\n StarRatingComponent,\r\n StarRatingControlComponent\r\n];\r\nconst EXPORTS = [DECLARATIONS];\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DECLARATIONS],\r\n exports: [EXPORTS]\r\n})\r\nexport class StarRatingModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: [\r\n StarRatingConfigService\r\n ]\r\n };\r\n }\r\n\r\n static forChild(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n", + "import {Component, EventEmitter, forwardRef} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {ClickEvent} from '../../interfaces/click-event.interface';\r\nimport {HoverRatingChangeEvent} from '../../interfaces/hover-rating-change-event.interface';\r\nimport {RatingChangeEvent} from '../../interfaces/rating-change-event.interface';\r\nimport {StarRating} from '../../services/star-rating';\r\nimport {StarRatingConfigService} from '../../services/star-rating-config.service';\r\nimport {StarRatingUtils} from '../../services/star-rating.utils';\r\n\r\nconst STAR_RATING_CONTROL_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => StarRatingControlComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'star-rating-control',\r\n providers: [STAR_RATING_CONTROL_ACCESSOR],\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `
\r\n
{{labelText}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\nexport class StarRatingControlComponent extends StarRating\r\n implements ControlValueAccessor {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter = new EventEmitter();\r\n\r\n ratingChange: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n onTouch: Function;\r\n onModelChange: Function;\r\n private onModelChangeRegistered = false;\r\n private onTouchRegistered = false;\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnTouch() {\r\n if (this.onTouchRegistered) {\r\n this.onTouch();\r\n }\r\n }\r\n\r\n saveOnModelChange(value: number) {\r\n if (this.onModelChangeRegistered) {\r\n this.onModelChange(value);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n const dStr = 'Digit';\r\n const digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1), 10\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n this.saveOnTouch();\r\n }\r\n\r\n //Focus events\r\n onBlur(event: FocusEvent) {\r\n this.focus = false;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n onFocus(event: FocusEvent) {\r\n this.focus = true;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0;\r\n\r\n //fire onHoverRatingChange event\r\n const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n /**Form Control - ControlValueAccessor implementation**/\r\n\r\n writeValue(obj: any): void {\r\n this.rating = obj;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n this.onModelChangeRegistered = true;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n this.onTouchRegistered = true;\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n const initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n const $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n\r\n this.saveOnModelChange(this.rating);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n const onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n", + "import {Component, EventEmitter} from '@angular/core';\r\nimport {ClickEvent} from '../../interfaces/click-event.interface';\r\nimport {HoverRatingChangeEvent} from '../../interfaces/hover-rating-change-event.interface';\r\nimport {RatingChangeEvent} from '../../interfaces/rating-change-event.interface';\r\nimport {StarRating} from '../../services/star-rating';\r\nimport {StarRatingConfigService} from '../../services/star-rating-config.service';\r\nimport {StarRatingUtils} from '../../services/star-rating.utils';\r\n\r\n@Component({\r\n selector: 'star-rating',\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `
\r\n
{{labelText}}
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n`\r\n})\r\nexport class StarRatingComponent extends StarRating {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter = new EventEmitter();\r\n\r\n ratingChange: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n const dStr = 'Digit';\r\n const digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1), 10\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0;\r\n\r\n //fire onHoverRatingChange event\r\n const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n const initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n const $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n const onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n", "import {\r\n StarRatingConfig,\r\n starRatingColor,\r\n starRatingSizes,\r\n starRatingSpeed,\r\n starRatingStarTypes,\r\n starRatingLabelPosition\r\n} from '../interfaces/star-rating-config.interface';\r\n\r\n/**\r\n * Configuration service for the StarRating component.\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the star ratings used in the application.\r\n */\r\nexport class StarRatingConfigService implements StarRatingConfig {\r\n _classEmpty = 'default-star-empty-icon';\r\n\r\n get classEmpty() {\r\n return this._classEmpty;\r\n }\r\n\r\n set classEmpty(classEmpty: string) {\r\n this._classEmpty = classEmpty;\r\n }\r\n\r\n private _classHalf = 'default-star-half-icon';\r\n\r\n get classHalf(): string {\r\n return this._classHalf;\r\n }\r\n\r\n set classHalf(classHalf: string) {\r\n this._classHalf = classHalf;\r\n }\r\n\r\n private _classFilled = 'default-star-filled-icon';\r\n\r\n get classFilled(): string {\r\n return this._classFilled;\r\n }\r\n\r\n set classFilled(classFilled: string) {\r\n this._classFilled = classFilled;\r\n }\r\n\r\n private _numOfStars = 5;\r\n\r\n get numOfStars(): number {\r\n return this._numOfStars;\r\n }\r\n\r\n set numOfStars(numOfStars: number) {\r\n this._numOfStars = numOfStars;\r\n }\r\n\r\n private _size: starRatingSizes = 'medium';\r\n\r\n get size(): starRatingSizes {\r\n return this._size;\r\n }\r\n\r\n set size(size: starRatingSizes) {\r\n this._size = size;\r\n }\r\n\r\n private _staticColor: starRatingColor;\r\n\r\n get staticColor(): starRatingColor {\r\n return this._staticColor;\r\n }\r\n\r\n set staticColor(value: starRatingColor) {\r\n this._staticColor = value;\r\n }\r\n\r\n private _labelPosition: starRatingLabelPosition = 'left';\r\n\r\n get labelPosition(): starRatingLabelPosition {\r\n return this._labelPosition;\r\n }\r\n\r\n set labelPosition(labelPosition: starRatingLabelPosition) {\r\n this._labelPosition = labelPosition;\r\n }\r\n\r\n private _speed: starRatingSpeed = 'noticeable';\r\n\r\n get speed(): starRatingSpeed {\r\n return this._speed;\r\n }\r\n\r\n set speed(speed: starRatingSpeed) {\r\n this._speed = speed;\r\n }\r\n\r\n private _starType: starRatingStarTypes = 'svg';\r\n\r\n get starType(): starRatingStarTypes {\r\n return this._starType;\r\n }\r\n\r\n set starType(starType: starRatingStarTypes) {\r\n this._starType = starType;\r\n }\r\n\r\n private _assetsPath = 'assets/images/';\r\n\r\n get assetsPath(): string {\r\n return this._assetsPath;\r\n }\r\n\r\n set assetsPath(assetsPath: string) {\r\n this._assetsPath = assetsPath;\r\n }\r\n\r\n private _svgPath = this.assetsPath + 'star-rating.icons.svg';\r\n\r\n get svgPath(): string {\r\n return this._svgPath;\r\n }\r\n\r\n set svgPath(svgPath: string) {\r\n this._svgPath = svgPath;\r\n }\r\n\r\n private _svgEmptySymbolId = 'star-empty';\r\n\r\n get svgEmptySymbolId(): string {\r\n return this._svgEmptySymbolId;\r\n }\r\n\r\n set svgEmptySymbolId(svgEmptySymbolId: string) {\r\n this._svgEmptySymbolId = svgEmptySymbolId;\r\n }\r\n\r\n private _svgHalfSymbolId = 'star-half';\r\n\r\n get svgHalfSymbolId(): string {\r\n return this._svgHalfSymbolId;\r\n }\r\n\r\n set svgHalfSymbolId(svgHalfSymbolId: string) {\r\n this._svgHalfSymbolId = svgHalfSymbolId;\r\n }\r\n\r\n private _svgFilledSymbolId = 'star-filled';\r\n\r\n get svgFilledSymbolId(): string {\r\n return this._svgFilledSymbolId;\r\n }\r\n\r\n set svgFilledSymbolId(svgFilledSymbolId: string) {\r\n this._svgFilledSymbolId = svgFilledSymbolId;\r\n }\r\n\r\n private _svgPathEmpty: string = this.svgPath + '#' + this.svgEmptySymbolId;\r\n\r\n get svgPathEmpty(): string {\r\n return this._svgPathEmpty;\r\n }\r\n\r\n set svgPathEmpty(svgPathEmpty: string) {\r\n this._svgPathEmpty = svgPathEmpty;\r\n }\r\n\r\n private _svgPathHalf: string = this.svgPath + '#' + this.svgHalfSymbolId;\r\n\r\n get svgPathHalf(): string {\r\n return this._svgPathHalf;\r\n }\r\n\r\n set svgPathHalf(svgPathHalf: string) {\r\n this._svgPathHalf = svgPathHalf;\r\n }\r\n\r\n private _svgPathFilled: string = this.svgPath + '#' + this.svgFilledSymbolId;\r\n\r\n get svgPathFilled(): string {\r\n return this._svgPathFilled;\r\n }\r\n\r\n set svgPathFilled(svgPathFilled: string) {\r\n this._svgPathFilled = svgPathFilled;\r\n }\r\n\r\n getColor(\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ): starRatingColor {\r\n rating = rating || 0;\r\n\r\n // if a fix color is set use this one\r\n if (staticColor) {\r\n return staticColor;\r\n }\r\n\r\n // calculate size of smallest fraction\r\n const fractionSize = numOfStars / 3;\r\n\r\n // apply color by fraction\r\n let color: starRatingColor = 'default';\r\n if (rating > 0) {\r\n color = 'negative';\r\n }\r\n if (rating > fractionSize) {\r\n color = 'ok';\r\n }\r\n if (rating > fractionSize * 2) {\r\n color = 'positive';\r\n }\r\n\r\n return color;\r\n }\r\n\r\n getHalfStarVisible(rating: number): boolean {\r\n return Math.abs(rating % 1) > 0;\r\n }\r\n}\r\n", "import {\r\n StarRatingConfig,\r\n starRatingColor,\r\n starRatingDirection,\r\n starRatingLabelPosition,\r\n starRatingSizes,\r\n starRatingSpeed,\r\n starRatingStarSpace,\r\n starRatingStarTypes\r\n} from '../interfaces/star-rating-config.interface';\r\nimport { StarRatingConfigService } from './star-rating-config.service';\r\nimport { StarRatingUtils } from './star-rating.utils';\r\n\r\nexport class StarRating {\r\n protected config: StarRatingConfig;\r\n\r\n //CTRL ONLY\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n classEmpty: string;\r\n classHalf: string;\r\n classFilled: string;\r\n\r\n pathEmpty: string;\r\n pathHalf: string;\r\n pathFilled: string;\r\n\r\n color: starRatingColor;\r\n stars: Array;\r\n ratingAsInteger: number;\r\n halfStarVisible: boolean;\r\n\r\n /////////////////////////////////////////////\r\n\r\n\r\n set rating(value: number) {\r\n this.setRating(value);\r\n }\r\n\r\n /**\r\n * showHalfStars\r\n */\r\n protected _showHalfStars: boolean;\r\n get showHalfStars(): boolean {\r\n return this._showHalfStars;\r\n }\r\n\r\n set showHalfStars(value: boolean) {\r\n this._showHalfStars = !!value;\r\n\r\n //update halfStarVisible\r\n this.setHalfStarVisible();\r\n }\r\n\r\n /**\r\n * getColor\r\n */\r\n getColor: (\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ) => starRatingColor;\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * getHalfStarVisible\r\n */\r\n getHalfStarVisible: (rating: number) => boolean;\r\n /////////////////////////////////////////////\r\n\r\n //Inputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n /**\r\n * id property to identify the DOM element\r\n */\r\n protected _id: string;\r\n get id(): string {\r\n return this._id;\r\n }\r\n\r\n set id(value: string) {\r\n this._id = value || '';\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * focus\r\n */\r\n protected _focus: boolean;\r\n get focus(): boolean {\r\n return this._focus;\r\n }\r\n\r\n set focus(value: boolean) {\r\n this._focus = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * labelText\r\n */\r\n protected _labelText: string;\r\n get labelText(): string {\r\n return this._labelText;\r\n }\r\n\r\n set labelText(value: string) {\r\n this._labelText = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * labelPosition\r\n */\r\n protected _labelPosition: starRatingLabelPosition;\r\n get labelPosition(): starRatingLabelPosition {\r\n return this._labelPosition;\r\n }\r\n\r\n set labelPosition(value: starRatingLabelPosition) {\r\n this._labelPosition = value || this.config.labelPosition;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * labelVisible\r\n */\r\n protected _labelVisible: boolean;\r\n get labelVisible(): boolean {\r\n return this._labelVisible;\r\n }\r\n\r\n set labelVisible(value: boolean) {\r\n this._labelVisible = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * hoverEnabled\r\n */\r\n protected _hoverEnabled: boolean;\r\n get hoverEnabled(): boolean {\r\n return this._hoverEnabled;\r\n }\r\n\r\n set hoverEnabled(value: boolean) {\r\n this._hoverEnabled = value !== undefined ? !!value : false;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * staticColor\r\n */\r\n protected _staticColor: starRatingColor;\r\n get staticColor(): starRatingColor {\r\n return this._staticColor || this.config.staticColor || undefined;\r\n }\r\n\r\n set staticColor(value: starRatingColor) {\r\n this._staticColor = value;\r\n\r\n //update color.\r\n this.setColor();\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * direction\r\n */\r\n protected _direction: starRatingDirection;\r\n get direction(): starRatingDirection {\r\n return this._direction;\r\n }\r\n\r\n set direction(value: starRatingDirection) {\r\n this._direction = value || undefined;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * numOfStars\r\n */\r\n protected _numOfStars: number;\r\n get numOfStars(): number {\r\n return this._numOfStars;\r\n }\r\n\r\n set numOfStars(value: number) {\r\n this._numOfStars = value > 0 ? value : this.config.numOfStars;\r\n\r\n //update stars array\r\n this.stars = StarRatingUtils.getStarsArray(this.numOfStars);\r\n\r\n //update color\r\n this.setColor();\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * hoverRating\r\n */\r\n protected _hoverRating: number;\r\n get hoverRating(): number {\r\n return this._hoverRating;\r\n }\r\n\r\n set hoverRating(value: number) {\r\n this._hoverRating = value > 0 ? value : 0;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * speed\r\n */\r\n protected _speed: starRatingSpeed;\r\n get speed(): starRatingSpeed {\r\n return this._speed;\r\n }\r\n\r\n set speed(value: starRatingSpeed) {\r\n this._speed = value || this.config.speed;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * size\r\n */\r\n protected _size: starRatingSizes;\r\n get size(): starRatingSizes {\r\n return this._size || this.config.size;\r\n }\r\n\r\n set size(value: starRatingSizes) {\r\n this._size = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * starType\r\n */\r\n protected _starType: starRatingStarTypes;\r\n get starType(): starRatingStarTypes {\r\n return this._starType || this.config.starType;\r\n }\r\n\r\n set starType(value: starRatingStarTypes) {\r\n this._starType = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * space\r\n */\r\n protected _space: starRatingStarSpace;\r\n get space(): starRatingStarSpace {\r\n return this._space;\r\n }\r\n\r\n set space(value: starRatingStarSpace) {\r\n this._space = value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * readOnly\r\n */\r\n protected _readOnly: boolean;\r\n get readOnly(): boolean {\r\n return this._readOnly;\r\n }\r\n\r\n set readOnly(value: boolean) {\r\n this._readOnly = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * disabled\r\n */\r\n protected _disabled: boolean;\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n\r\n set disabled(value: boolean) {\r\n this._disabled = !!value;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n private _step: number;\r\n get step(): number {\r\n return this._step;\r\n }\r\n\r\n set step(value: number) {\r\n this._step = value > 0 ? value : 1;\r\n }\r\n\r\n /////////////////////////////////////////////\r\n\r\n /**\r\n * rating\r\n */\r\n protected _rating: number;\r\n get rating(): number {\r\n return this._rating;\r\n }\r\n\r\n /**\r\n * setRating\r\n * I use a setter function instead of a set method to enable overrides for this function.\r\n * @param value\r\n */\r\n setRating(value: number) {\r\n //validate and apply newRating\r\n let newRating = 0;\r\n if (value >= 0 && value <= this.numOfStars) {\r\n newRating = value;\r\n }\r\n\r\n //limit max value to max number of stars\r\n if (value > this.numOfStars) {\r\n newRating = this.numOfStars;\r\n }\r\n this._rating = newRating;\r\n\r\n //update ratingAsInteger. rating parsed to int for the value-[n] modifier\r\n this.ratingAsInteger = parseInt(this._rating.toString(), 10);\r\n\r\n //update halfStarsVisible\r\n this.setHalfStarVisible();\r\n\r\n //update calculated Color\r\n this.setColor();\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n this.config = config;\r\n\r\n //set default ctrl props\r\n this.classEmpty = this.config.classEmpty;\r\n this.classHalf = this.config.classHalf;\r\n this.classFilled = this.config.classFilled;\r\n this.pathEmpty = this.config.svgPathEmpty;\r\n this.pathHalf = this.config.svgPathHalf;\r\n this.pathFilled = this.config.svgPathFilled;\r\n\r\n //set default Component Inputs\r\n if (\r\n 'getColor' in this.config &&\r\n typeof this.config.getColor === 'function'\r\n ) {\r\n this.getColor = this.config.getColor;\r\n }\r\n\r\n if (\r\n 'getHalfStarVisible' in this.config &&\r\n typeof this.config.getHalfStarVisible === 'function'\r\n ) {\r\n this.getHalfStarVisible = this.config.getHalfStarVisible;\r\n }\r\n\r\n this.numOfStars = this.config.numOfStars;\r\n this.rating = 0;\r\n this.step = 1;\r\n }\r\n\r\n svgVisible(): boolean {\r\n return this.starType === 'svg';\r\n }\r\n\r\n interactionPossible(): boolean {\r\n return !this.readOnly && !this.disabled;\r\n }\r\n\r\n setColor(): void {\r\n //check if custom function is given\r\n if (typeof this.getColor === 'function') {\r\n this.color = this.getColor(\r\n this.rating,\r\n this.numOfStars,\r\n this.staticColor\r\n );\r\n } else {\r\n this.color = StarRatingUtils.getColor(\r\n this.rating,\r\n this.numOfStars,\r\n this.staticColor\r\n );\r\n }\r\n }\r\n\r\n setHalfStarVisible(): void {\r\n //update halfStarVisible\r\n if (this.showHalfStars) {\r\n //check if custom function is given\r\n if (typeof this.getHalfStarVisible === 'function') {\r\n this.halfStarVisible = this.getHalfStarVisible(this.rating);\r\n } else {\r\n this.halfStarVisible = StarRatingUtils.getHalfStarVisible(this.rating);\r\n }\r\n } else {\r\n this.halfStarVisible = false;\r\n }\r\n }\r\n\r\n getComponentClassNames(): string {\r\n const classNames: string[] = [];\r\n\r\n classNames.push(this.rating ? 'value-' + this.ratingAsInteger : 'value-0');\r\n classNames.push(this.halfStarVisible ? 'half' : '');\r\n classNames.push(this.hoverEnabled ? 'hover' : '');\r\n\r\n const hoverRating = this.hoverRating\r\n ? 'hover-' + this.hoverRating\r\n : 'hover-0';\r\n classNames.push(this.hoverEnabled ? hoverRating : '');\r\n\r\n classNames.push(this.space ? 'space-' + this.space : '');\r\n classNames.push(this.labelPosition ? 'label-' + this.labelPosition : '');\r\n classNames.push(this.color ? 'color-' + this.color : '');\r\n classNames.push(this.starType ? 'star-' + this.starType : '');\r\n classNames.push(this.speed);\r\n classNames.push(this.size);\r\n classNames.push(this.readOnly ? 'read-only' : '');\r\n classNames.push(this.disabled ? 'disabled' : '');\r\n classNames.push(this.direction ? 'direction-' + this.direction : '');\r\n\r\n return classNames.join(' ');\r\n }\r\n\r\n increment() {\r\n //increment to next higher step\r\n const absDiff = Math.abs(this.rating % this.step);\r\n this.rating = this.rating + (absDiff > 0 ? this.step - absDiff : this.step);\r\n }\r\n\r\n decrement() {\r\n //decrement to next lower step\r\n const absDiff = Math.abs(this.rating % this.step);\r\n this.rating = this.rating - (absDiff > 0 ? absDiff : this.step);\r\n }\r\n\r\n reset() {\r\n this.rating = 0;\r\n }\r\n}\r\n", "import { starRatingColor } from '../interfaces/star-rating-config.interface';\r\nexport class StarRatingUtils {\r\n //Static methods\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n /*\r\n * getStarsArray\r\n *\r\n * returns an array of increasing numbers starting at 1\r\n *\r\n * @param numOfStars\r\n * @returns {Array}\r\n */\r\n static getStarsArray(numOfStars: number): Array {\r\n let stars: Array = [];\r\n for (let i = 0; i < numOfStars; i++) {\r\n stars.push(i + 1);\r\n }\r\n return stars;\r\n }\r\n\r\n /*\r\n * getHalfStarVisible\r\n *\r\n * Returns true if there should be a half star visible, and false if not.\r\n *\r\n * @param rating\r\n * @returns {boolean}\r\n */\r\n static getHalfStarVisible(rating: number): boolean {\r\n return Math.abs(rating % 1) > 0;\r\n }\r\n\r\n /*\r\n * getColor\r\n *\r\n * The default function for color calculation\r\n * based on the current rating and the the number of stars possible.\r\n * If a staticColor is set the function will use it as return value.\r\n *\r\n * @param rating\r\n * @param numOfStars\r\n * @param staticColor\r\n * @returns {starRatingColor}\r\n */\r\n static getColor(\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ): starRatingColor {\r\n rating = rating || 0;\r\n\r\n //if a fix color is set use this one\r\n if (staticColor) {\r\n return staticColor;\r\n }\r\n\r\n //calculate size of smallest fraction\r\n let fractionSize = numOfStars / 3;\r\n\r\n //apply color by fraction\r\n let color: starRatingColor = 'default';\r\n if (rating > 0) {\r\n color = 'negative';\r\n }\r\n if (rating > fractionSize) {\r\n color = 'ok';\r\n }\r\n if (rating > fractionSize * 2) {\r\n color = 'positive';\r\n }\r\n\r\n return color;\r\n }\r\n\r\n /*\r\n * isDigitKeyEventCode\r\n * detects digit key event sodes\r\n * @param eventCode\r\n * @returns {boolean}\r\n */\r\n static isDigitKeyEventCode(eventCode: string): boolean {\r\n return eventCode.indexOf('Digit') === 0;\r\n }\r\n}\r\n", @@ -20,5 +22,5 @@ "names": [ "tslib_1.__extends" ], - "mappings": "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" + "mappings": "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" } diff --git a/@packaged/angular-star-rating/index.d.ts b/@packaged/angular-star-rating/index.d.ts index e974d6b..bb6562f 100644 --- a/@packaged/angular-star-rating/index.d.ts +++ b/@packaged/angular-star-rating/index.d.ts @@ -5,5 +5,6 @@ export { StarRatingConfig } from './src/interfaces/star-rating-config.interface' export { StarRatingUtils } from './src/services/star-rating.utils'; export { StarRating } from './src/services/star-rating'; export { StarRatingConfigService } from './src/services/star-rating-config.service'; -export { StarRatingComponent } from './src/components/star-rating.component'; +export { StarRatingComponent } from './src/components/star-rating/star-rating.component'; +export { StarRatingControlComponent } from './src/components/star-rating-control/star-rating-control.component'; export { StarRatingModule } from './src/angular-star-rating.module'; diff --git a/@packaged/angular-star-rating/src/components/star-rating.component.d.ts b/@packaged/angular-star-rating/src/components/star-rating-control/star-rating-control.component.d.ts similarity index 73% rename from @packaged/angular-star-rating/src/components/star-rating.component.d.ts rename to @packaged/angular-star-rating/src/components/star-rating-control/star-rating-control.component.d.ts index bb44546..74fcf44 100644 --- a/@packaged/angular-star-rating/src/components/star-rating.component.d.ts +++ b/@packaged/angular-star-rating/src/components/star-rating-control/star-rating-control.component.d.ts @@ -1,11 +1,11 @@ import { EventEmitter } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; -import { ClickEvent } from '../interfaces/click-event.interface'; -import { HoverRatingChangeEvent } from '../interfaces/hover-rating-change-event.interface'; -import { RatingChangeEvent } from '../interfaces/rating-change-event.interface'; -import { StarRating } from '../services/star-rating'; -import { StarRatingConfigService } from '../services/star-rating-config.service'; -export declare class StarRatingComponent extends StarRating implements ControlValueAccessor { +import { ClickEvent } from '../../interfaces/click-event.interface'; +import { HoverRatingChangeEvent } from '../../interfaces/hover-rating-change-event.interface'; +import { RatingChangeEvent } from '../../interfaces/rating-change-event.interface'; +import { StarRating } from '../../services/star-rating'; +import { StarRatingConfigService } from '../../services/star-rating-config.service'; +export declare class StarRatingControlComponent extends StarRating implements ControlValueAccessor { starClickChange: EventEmitter; ratingChange: EventEmitter; hoverRatingChange: EventEmitter; diff --git a/@packaged/angular-star-rating/src/components/star-rating/star-rating.component.d.ts b/@packaged/angular-star-rating/src/components/star-rating/star-rating.component.d.ts new file mode 100644 index 0000000..e19bddd --- /dev/null +++ b/@packaged/angular-star-rating/src/components/star-rating/star-rating.component.d.ts @@ -0,0 +1,30 @@ +import { EventEmitter } from '@angular/core'; +import { ClickEvent } from '../../interfaces/click-event.interface'; +import { HoverRatingChangeEvent } from '../../interfaces/hover-rating-change-event.interface'; +import { RatingChangeEvent } from '../../interfaces/rating-change-event.interface'; +import { StarRating } from '../../services/star-rating'; +import { StarRatingConfigService } from '../../services/star-rating-config.service'; +export declare class StarRatingComponent extends StarRating { + starClickChange: EventEmitter; + ratingChange: EventEmitter; + hoverRatingChange: EventEmitter; + saveOnClick($event: ClickEvent): void; + saveOnRatingChange($event: RatingChangeEvent): void; + saveOnHover($event: HoverRatingChangeEvent): void; + /**ACCESSIBILITY **/ + onKeyDown(event: KeyboardEvent): void; + onStarHover(rating?: number): void; + constructor(config: StarRatingConfigService); + setRating(value: number): void; + /** + * onStarClicked + * + * Is fired when a star is clicked. And updated the rating value. + * This function returns if the disabled or readOnly + * property is set. If provided it emits the onClick event + * handler with the actual rating value. + * + * @param rating + */ + onStarClicked(rating: number): void; +} diff --git a/apps/angular5-example/src/app/app.module.ts b/apps/angular5-example/src/app/app.module.ts index 72c51b0..a31cc52 100644 --- a/apps/angular5-example/src/app/app.module.ts +++ b/apps/angular5-example/src/app/app.module.ts @@ -26,6 +26,7 @@ const DECLARATIONS = [ NxModule.forRoot(), ReactiveFormsModule, StarRatingModule.forRoot(), + StaticModuleModule, RouterModule.forRoot( [ { @@ -67,11 +68,9 @@ const DECLARATIONS = [ { useHash: true } - ), - StaticModuleModule + ) ], declarations: [DECLARATIONS], - providers: [], bootstrap: [AppComponent] }) export class AppModule {} diff --git a/apps/angular5-example/src/app/components/custom-style/custom-style.component.ts b/apps/angular5-example/src/app/components/custom-style/custom-style.component.ts index 97f9533..5f74f74 100644 --- a/apps/angular5-example/src/app/components/custom-style/custom-style.component.ts +++ b/apps/angular5-example/src/app/components/custom-style/custom-style.component.ts @@ -4,7 +4,7 @@ import {Component, OnInit, ViewEncapsulation} from '@angular/core'; selector: 'app-custom-style', template: ` Custom Style - `, + `, styleUrls: ['./custom-style.component.scss'], //encapsulation: ViewEncapsulation.None }) diff --git a/apps/angular5-example/src/app/components/event-bindings/event-bindings.component.ts b/apps/angular5-example/src/app/components/event-bindings/event-bindings.component.ts index e30d478..959af43 100644 --- a/apps/angular5-example/src/app/components/event-bindings/event-bindings.component.ts +++ b/apps/angular5-example/src/app/components/event-bindings/event-bindings.component.ts @@ -12,12 +12,12 @@ import {Component} from '@angular/core';

Event Bindings

- - +
diff --git a/apps/angular5-example/src/app/components/form-control-star-rating/form-control-star-rating.component.ts b/apps/angular5-example/src/app/components/form-control-star-rating/form-control-star-rating.component.ts index 6023050..ba547c1 100644 --- a/apps/angular5-example/src/app/components/form-control-star-rating/form-control-star-rating.component.ts +++ b/apps/angular5-example/src/app/components/form-control-star-rating/form-control-star-rating.component.ts @@ -9,10 +9,10 @@ import { FormBuilder, FormControl, FormGroup } from '@angular/forms';

Form Control

- + formControlName="ratingInput">
@@ -48,10 +48,10 @@

Property Bindings

- - +
@@ -69,10 +69,10 @@

Property Bindings

- - +
@@ -94,9 +94,9 @@

Property Bindings

- - +
@@ -116,9 +116,9 @@

Property Bindings

- - +
@@ -137,9 +137,9 @@

Property Bindings

- - +
@@ -157,9 +157,9 @@

Property Bindings

- - +
@@ -183,9 +183,9 @@

Property Bindings

- - +
@@ -204,9 +204,9 @@

Property Bindings

- - +
@@ -225,9 +225,9 @@

Property Bindings

- - +
@@ -246,9 +246,9 @@

Property Bindings

- - +
@@ -265,9 +265,9 @@

Property Bindings

- - +
@@ -281,10 +281,10 @@

Property Bindings

- - +
@@ -303,10 +303,10 @@

Property Bindings

- - +
@@ -325,9 +325,9 @@

Property Bindings

- - +
@@ -346,11 +346,11 @@

Property Bindings

- - +
@@ -369,9 +369,9 @@

Property Bindings

- - +
@@ -386,9 +386,9 @@

Property Bindings

- - +
diff --git a/apps/angular5-example/src/app/lazy-module/custom-config.component.ts b/apps/angular5-example/src/app/lazy-module/custom-config.component.ts index 18476ea..6fb5299 100644 --- a/apps/angular5-example/src/app/lazy-module/custom-config.component.ts +++ b/apps/angular5-example/src/app/lazy-module/custom-config.component.ts @@ -4,7 +4,7 @@ import { StarRatingConfigService } from '@angular-star-rating-lib/angular-star-r selector: 'custom-config', template: `

Custom static configuration in lazy module

- + Change config over service method
diff --git a/apps/angular5-example/src/app/lazy-module/custom-local-config.component.ts b/apps/angular5-example/src/app/lazy-module/custom-local-config.component.ts index 50414ed..7ae8de4 100644 --- a/apps/angular5-example/src/app/lazy-module/custom-local-config.component.ts +++ b/apps/angular5-example/src/app/lazy-module/custom-local-config.component.ts @@ -6,7 +6,7 @@ import { StarRatingConfigService } from '@angular-star-rating-lib/angular-star-r selector: 'custom-local-config', template: `

Custom local config in lazy module

- + Change config over service method
`, diff --git a/apps/angular5-example/src/app/static-module/custom-config.component.ts b/apps/angular5-example/src/app/static-module/custom-config.component.ts index 64fae0c..e5d2753 100644 --- a/apps/angular5-example/src/app/static-module/custom-config.component.ts +++ b/apps/angular5-example/src/app/static-module/custom-config.component.ts @@ -5,7 +5,7 @@ import { StarRatingConfigService } from '@angular-star-rating-lib/angular-star-r selector: 'custom-config', template: `

Custom static configuration in static module

- + Change config over service method
diff --git a/apps/angular5-example/src/app/static-module/custom-local-config.component.ts b/apps/angular5-example/src/app/static-module/custom-local-config.component.ts index ad3767f..371885a 100644 --- a/apps/angular5-example/src/app/static-module/custom-local-config.component.ts +++ b/apps/angular5-example/src/app/static-module/custom-local-config.component.ts @@ -6,7 +6,7 @@ import { StarRatingConfigService } from '@angular-star-rating-lib/angular-star-r selector: 'custom-local-config', template: `

Custom local config in static module

- + Change config over service method
`, diff --git a/apps/angular5-example/src/static-vendor/custom-local-config.service.ts b/apps/angular5-example/src/static-vendor/custom-local-config.service.ts new file mode 100644 index 0000000..3d921aa --- /dev/null +++ b/apps/angular5-example/src/static-vendor/custom-local-config.service.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; +import { StarRatingConfigService } from '@angular-star-rating-lib/angular-star-rating'; + +@Injectable() +export class TralalaService extends StarRatingConfigService { + constructor() { + super(); + this.size = 'small'; + } +} diff --git a/libs/angular-star-rating/angular-star-rating-4.0.0-beta.2.tgz b/libs/angular-star-rating/angular-star-rating-4.0.0-beta.2.tgz new file mode 100644 index 0000000..efb5ade Binary files /dev/null and b/libs/angular-star-rating/angular-star-rating-4.0.0-beta.2.tgz differ diff --git a/libs/angular-star-rating/index.ts b/libs/angular-star-rating/index.ts index 7a223ff..c646705 100644 --- a/libs/angular-star-rating/index.ts +++ b/libs/angular-star-rating/index.ts @@ -16,6 +16,7 @@ export { StarRatingConfigService } from './src/services/star-rating-config.service'; // components -export { StarRatingComponent } from './src/components/star-rating.component'; +export { StarRatingComponent } from './src/components/star-rating/star-rating.component'; +export { StarRatingControlComponent } from './src/components/star-rating-control/star-rating-control.component'; // module export { StarRatingModule } from './src/angular-star-rating.module'; diff --git a/libs/angular-star-rating/src/angular-star-rating.module.ts b/libs/angular-star-rating/src/angular-star-rating.module.ts index bd99bb5..947d192 100644 --- a/libs/angular-star-rating/src/angular-star-rating.module.ts +++ b/libs/angular-star-rating/src/angular-star-rating.module.ts @@ -1,9 +1,13 @@ -import { CommonModule } from '@angular/common'; -import { ModuleWithProviders, NgModule } from '@angular/core'; -import { StarRatingComponent } from './components/star-rating.component'; -import { StarRatingConfigService } from './services/star-rating-config.service'; +import {CommonModule} from '@angular/common'; +import {ModuleWithProviders, NgModule} from '@angular/core'; +import {StarRatingComponent} from './components/star-rating/star-rating.component'; +import {StarRatingControlComponent} from './components/star-rating-control/star-rating-control.component'; +import {StarRatingConfigService} from './services/star-rating-config.service'; -const DECLARATIONS = [StarRatingComponent]; +const DECLARATIONS = [ + StarRatingComponent, + StarRatingControlComponent +]; const EXPORTS = [DECLARATIONS]; @NgModule({ diff --git a/libs/angular-star-rating/src/components/star-rating.component.html b/libs/angular-star-rating/src/components/star-rating-control/star-rating-control.component.html similarity index 100% rename from libs/angular-star-rating/src/components/star-rating.component.html rename to libs/angular-star-rating/src/components/star-rating-control/star-rating-control.component.html diff --git a/libs/angular-star-rating/src/components/star-rating.component.ts b/libs/angular-star-rating/src/components/star-rating-control/star-rating-control.component.ts similarity index 78% rename from libs/angular-star-rating/src/components/star-rating.component.ts rename to libs/angular-star-rating/src/components/star-rating-control/star-rating-control.component.ts index 155437e..e46748a 100644 --- a/libs/angular-star-rating/src/components/star-rating.component.ts +++ b/libs/angular-star-rating/src/components/star-rating-control/star-rating-control.component.ts @@ -1,20 +1,20 @@ -import { Component, EventEmitter, forwardRef, Input } from '@angular/core'; -import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; -import { ClickEvent } from '../interfaces/click-event.interface'; -import { HoverRatingChangeEvent } from '../interfaces/hover-rating-change-event.interface'; -import { RatingChangeEvent } from '../interfaces/rating-change-event.interface'; -import { StarRating } from '../services/star-rating'; -import { StarRatingConfigService } from '../services/star-rating-config.service'; -import { StarRatingUtils } from '../services/star-rating.utils'; +import {Component, EventEmitter, forwardRef} from '@angular/core'; +import {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms'; +import {ClickEvent} from '../../interfaces/click-event.interface'; +import {HoverRatingChangeEvent} from '../../interfaces/hover-rating-change-event.interface'; +import {RatingChangeEvent} from '../../interfaces/rating-change-event.interface'; +import {StarRating} from '../../services/star-rating'; +import {StarRatingConfigService} from '../../services/star-rating-config.service'; +import {StarRatingUtils} from '../../services/star-rating.utils'; const STAR_RATING_CONTROL_ACCESSOR = { provide: NG_VALUE_ACCESSOR, - useExisting: forwardRef(() => StarRatingComponent), + useExisting: forwardRef(() => StarRatingControlComponent), multi: true }; @Component({ - selector: 'star-rating-comp', + selector: 'star-rating-control', providers: [STAR_RATING_CONTROL_ACCESSOR], inputs: [ 'getHalfStarVisible', @@ -39,9 +39,9 @@ const STAR_RATING_CONTROL_ACCESSOR = { ], outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'], styleUrls: [], - templateUrl: 'star-rating.component.html' + templateUrl: 'star-rating-control.component.html' }) -export class StarRatingComponent extends StarRating +export class StarRatingControlComponent extends StarRating implements ControlValueAccessor { //Outputs /////////////////////////////////////////////////////////////////////////////////////////// @@ -117,9 +117,9 @@ export class StarRatingComponent extends StarRating }; const handleDigits = (eventCode: string): void => { - let dStr = 'Digit'; - let digit: number = parseInt( - eventCode.substr(dStr.length, eventCode.length - 1) + const dStr = 'Digit'; + const digit: number = parseInt( + eventCode.substr(dStr.length, eventCode.length - 1), 10 ); this.rating = digit; }; @@ -161,10 +161,10 @@ export class StarRatingComponent extends StarRating return; } - this.hoverRating = rating ? parseInt(rating.toString()) : 0; + this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0; //fire onHoverRatingChange event - let $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating }; + const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating }; this.saveOnHover($event); } @@ -190,12 +190,12 @@ export class StarRatingComponent extends StarRating //Overrides setRating(value: number): void { - let initValue = this.rating; + const initValue = this.rating; super.setRating(value); //if value changed trigger valueAccessor events and outputs if (initValue !== this.rating) { - let $event: RatingChangeEvent = { rating: this.rating }; + const $event: RatingChangeEvent = { rating: this.rating }; this.saveOnRatingChange($event); this.saveOnModelChange(this.rating); @@ -220,7 +220,7 @@ export class StarRatingComponent extends StarRating this.rating = rating; - let onClickEventObject: ClickEvent = { + const onClickEventObject: ClickEvent = { rating: this.rating }; this.saveOnClick(onClickEventObject); diff --git a/libs/angular-star-rating/src/components/star-rating/star-rating.component.html b/libs/angular-star-rating/src/components/star-rating/star-rating.component.html new file mode 100644 index 0000000..34656c7 --- /dev/null +++ b/libs/angular-star-rating/src/components/star-rating/star-rating.component.html @@ -0,0 +1,26 @@ +
+
{{labelText}}
+
+
+ + + + + + + + + + + + +
+
+
diff --git a/libs/angular-star-rating/src/components/star-rating.component.spec.ts b/libs/angular-star-rating/src/components/star-rating/star-rating.component.spec.ts similarity index 100% rename from libs/angular-star-rating/src/components/star-rating.component.spec.ts rename to libs/angular-star-rating/src/components/star-rating/star-rating.component.spec.ts diff --git a/libs/angular-star-rating/src/components/star-rating/star-rating.component.ts b/libs/angular-star-rating/src/components/star-rating/star-rating.component.ts new file mode 100644 index 0000000..9aa8429 --- /dev/null +++ b/libs/angular-star-rating/src/components/star-rating/star-rating.component.ts @@ -0,0 +1,168 @@ +import {Component, EventEmitter} from '@angular/core'; +import {ClickEvent} from '../../interfaces/click-event.interface'; +import {HoverRatingChangeEvent} from '../../interfaces/hover-rating-change-event.interface'; +import {RatingChangeEvent} from '../../interfaces/rating-change-event.interface'; +import {StarRating} from '../../services/star-rating'; +import {StarRatingConfigService} from '../../services/star-rating-config.service'; +import {StarRatingUtils} from '../../services/star-rating.utils'; + +@Component({ + selector: 'star-rating', + inputs: [ + 'getHalfStarVisible', + 'getColor', + 'showHalfStars', + 'hoverEnabled', + 'rating', + 'step', + 'disabled', + 'readOnly', + 'space', + 'starType', + 'size', + 'speed', + 'numOfStars', + 'direction', + 'staticColor', + //, 'labelVisible' + 'labelPosition', + 'labelText', + 'id' + ], + outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'], + styleUrls: [], + templateUrl: 'star-rating.component.html' +}) +export class StarRatingComponent extends StarRating { + //Outputs + /////////////////////////////////////////////////////////////////////////////////////////// + + starClickChange: EventEmitter = new EventEmitter(); + + ratingChange: EventEmitter = new EventEmitter< + RatingChangeEvent + >(); + + hoverRatingChange: EventEmitter = new EventEmitter< + HoverRatingChangeEvent + >(); + + saveOnClick($event: ClickEvent) { + if (this.starClickChange) { + this.starClickChange.emit($event); + } + } + + saveOnRatingChange($event: RatingChangeEvent) { + if (this.ratingChange) { + this.ratingChange.emit($event); + } + } + + saveOnHover($event: HoverRatingChangeEvent) { + if (this.hoverRatingChange) { + this.hoverRatingChange.emit($event); + } + } + + /**ACCESSIBILITY **/ + + //Keyboard events + onKeyDown(event: KeyboardEvent) { + if (!this.interactionPossible()) { + return; + } + + const handlers: any = { + //Decrement + Minus: () => this.decrement(), + ArrowDown: () => this.decrement(), + ArrowLeft: () => this.decrement(), + + //Increment + Plus: () => this.increment(), + ArrowRight: () => this.increment(), + ArrowUp: () => this.increment(), + + //Reset + Backspace: () => this.reset(), + Delete: () => this.reset(), + Digit0: () => this.reset() + }; + + const handleDigits = (eventCode: string): void => { + const dStr = 'Digit'; + const digit: number = parseInt( + eventCode.substr(dStr.length, eventCode.length - 1), 10 + ); + this.rating = digit; + }; + + if ( + handlers[event['code']] || + StarRatingUtils.isDigitKeyEventCode(event['code']) + ) { + if (StarRatingUtils.isDigitKeyEventCode(event['code'])) { + handleDigits(event['code']); + } else { + handlers[event['code']](); + } + event.preventDefault(); + event.stopPropagation(); + } + + } + + //Hover events + onStarHover(rating?: number): void { + if (!this.interactionPossible() || !this.hoverEnabled) { + return; + } + + this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0; + + //fire onHoverRatingChange event + const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating }; + this.saveOnHover($event); + } + + constructor(config: StarRatingConfigService) { + super(config); + } + + //Overrides + setRating(value: number): void { + const initValue = this.rating; + super.setRating(value); + + //if value changed trigger valueAccessor events and outputs + if (initValue !== this.rating) { + const $event: RatingChangeEvent = { rating: this.rating }; + this.saveOnRatingChange($event); + } + } + + /** + * onStarClicked + * + * Is fired when a star is clicked. And updated the rating value. + * This function returns if the disabled or readOnly + * property is set. If provided it emits the onClick event + * handler with the actual rating value. + * + * @param rating + */ + onStarClicked(rating: number): void { + //fire onClick event + if (!this.interactionPossible()) { + return; + } + + this.rating = rating; + + const onClickEventObject: ClickEvent = { + rating: this.rating + }; + this.saveOnClick(onClickEventObject); + } +}