From aba563133ddcef66cb1f7d2f45834878679bec05 Mon Sep 17 00:00:00 2001 From: Michael Hladky Date: Sat, 7 Apr 2018 14:32:47 +0200 Subject: [PATCH] docs(github-page): update live demo --- @packaged/angular-star-rating.tgz | Bin 59208 -> 59235 bytes .../angular-star-rating.metadata.json | 2 +- .../bundles/angular-star-rating.umd.js | 70 +- .../bundles/angular-star-rating.umd.js.map | 12 +- .../bundles/angular-star-rating.umd.min.js | 2 +- .../angular-star-rating.umd.min.js.map | 28 +- .../esm2015/angular-star-rating.js | 89 +- .../esm2015/angular-star-rating.js.map | 12 +- .../esm5/angular-star-rating.js | 70 +- .../esm5/angular-star-rating.js.map | 12 +- @packaged/angular-star-rating/package.json | 2 +- .../src/components/star-rating.component.d.ts | 12 +- .../star-rating-config.interface.d.ts | 2 +- .../src/services/star-rating.d.ts | 48 +- .../src/app/app.component.html | 10 +- apps/angular5-example/src/app/app.module.ts | 26 +- .../custom-star-config.service.ts | 13 + .../event-bindings.component.ts | 28 +- .../property-bindings.component.html} | 25 +- .../property-bindings.component.ts | 170 +++- .../lazy-module/custom-config.component.ts | 17 +- .../custom-local-config.component.ts | 18 +- .../static-module/custom-config.component.ts | 3 +- .../static-module/custom-config.service.ts | 2 +- .../custom-local-config.component.ts | 3 +- .../assets/fontawesome/scss/_animated.scss | 20 + .../fontawesome/scss/_bordered-pulled.scss | 20 + .../src/assets/fontawesome/scss/_core.scss | 16 + .../assets/fontawesome/scss/_fixed-width.scss | 6 + .../src/assets/fontawesome/scss/_icons.scss | 876 +++++++++++++++++ .../src/assets/fontawesome/scss/_larger.scss | 23 + .../src/assets/fontawesome/scss/_list.scss | 18 + .../src/assets/fontawesome/scss/_mixins.scss | 57 ++ .../fontawesome/scss/_rotated-flipped.scss | 23 + .../fontawesome/scss/_screen-reader.scss | 5 + .../src/assets/fontawesome/scss/_stacked.scss | 31 + .../assets/fontawesome/scss/_variables.scss | 889 ++++++++++++++++++ .../assets/fontawesome/scss/fa-brands.scss | 21 + .../assets/fontawesome/scss/fa-regular.scss | 22 + .../src/assets/fontawesome/scss/fa-solid.scss | 23 + .../assets/fontawesome/scss/fontawesome.scss | 16 + apps/angular5-example/src/styles.scss | 8 +- docs/0.8f28a556ac492fae6ca3.chunk.js | 1 - docs/3rdpartylicenses.txt | 58 +- docs/index.html | 2 +- docs/inline.2255a49875ddb86f2cc4.bundle.js | 1 - docs/main.d1ab887c48719776201e.bundle.js | 1 - docs/polyfills.fd43c416068889cddb79.bundle.js | 1 - docs/styles.0434af7e8c2110d1de27.bundle.css | 6 - .../src/angular-star-rating.module.ts | 4 +- .../src/components/star-rating.component.html | 10 +- .../src/configs/default.config.ts | 98 +- .../star-rating-config.interface.ts | 2 +- .../src/services/star-rating.ts | 117 +-- package-lock.json | 18 +- 55 files changed, 2670 insertions(+), 399 deletions(-) create mode 100644 apps/angular5-example/src/app/components/custom-stars/custom-star-config.service.ts rename apps/angular5-example/src/app/components/{kitchensink/kitchensink.component.html => property-bindings/property-bindings.component.html} (94%) create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/_animated.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/_bordered-pulled.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/_core.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/_fixed-width.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/_icons.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/_larger.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/_list.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/_mixins.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/_rotated-flipped.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/_screen-reader.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/_stacked.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/_variables.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/fa-brands.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/fa-regular.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/fa-solid.scss create mode 100644 apps/angular5-example/src/assets/fontawesome/scss/fontawesome.scss delete mode 100644 docs/0.8f28a556ac492fae6ca3.chunk.js delete mode 100644 docs/inline.2255a49875ddb86f2cc4.bundle.js delete mode 100644 docs/main.d1ab887c48719776201e.bundle.js delete mode 100644 docs/polyfills.fd43c416068889cddb79.bundle.js delete mode 100644 docs/styles.0434af7e8c2110d1de27.bundle.css diff --git a/@packaged/angular-star-rating.tgz b/@packaged/angular-star-rating.tgz index b20e63f985b2d1e6740ea17502dacb1c32825a6c..3910cdbb534c07dace4142c2a05ef56cb91d828f 100644 GIT binary patch literal 59235 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

WaE=%0@ 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","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":["clickEmitter","ratingChangeEmitter","hoverRatingChangeEmitter"],"styles":[],"template":"

\n
{{labelText}}
\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":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 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 dd9a2bf..c1ff882 100644 --- a/@packaged/angular-star-rating/bundles/angular-star-rating.umd.js +++ b/@packaged/angular-star-rating/bundles/angular-star-rating.umd.js @@ -88,6 +88,27 @@ var StarRating = /** @class */ (function () { this.rating = 0; this.step = 1; } + Object.defineProperty(StarRating.prototype, "rating", { + get: function () { + return this._rating; + }, + set: function (value) { + this.setRating(value); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(StarRating.prototype, "showHalfStars", { + get: function () { + return this._showHalfStars; + }, + set: function (value) { + this._showHalfStars = !!value; + this.setHalfStarVisible(); + }, + enumerable: true, + configurable: true + }); Object.defineProperty(StarRating.prototype, "id", { get: function () { return this._id; @@ -261,16 +282,6 @@ var StarRating = /** @class */ (function () { enumerable: true, configurable: true }); - Object.defineProperty(StarRating.prototype, "rating", { - get: function () { - return this._rating; - }, - set: function (value) { - this.setRating(value); - }, - enumerable: true, - configurable: true - }); StarRating.prototype.setRating = function (value) { var newRating = 0; if (value >= 0 && value <= this.numOfStars) { @@ -280,21 +291,10 @@ var StarRating = /** @class */ (function () { newRating = this.numOfStars; } this._rating = newRating; - this.ratingAsInteger = parseInt(this._rating.toString()); + this.ratingAsInteger = parseInt(this._rating.toString(), 10); this.setHalfStarVisible(); this.setColor(); }; - Object.defineProperty(StarRating.prototype, "showHalfStars", { - get: function () { - return this._showHalfStars; - }, - set: function (value) { - this._showHalfStars = !!value; - this.setHalfStarVisible(); - }, - enumerable: true, - configurable: true - }); StarRating.prototype.svgVisible = function () { return this.starType === 'svg'; }; @@ -576,26 +576,26 @@ var StarRatingComponent = /** @class */ (function (_super) { __extends(StarRatingComponent, _super); function StarRatingComponent(config) { var _this = _super.call(this, config) || this; - _this.clickEmitter = new core.EventEmitter(); - _this.ratingChangeEmitter = new core.EventEmitter(); - _this.hoverRatingChangeEmitter = new core.EventEmitter(); + _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) { - if (this.clickEmitter) { - this.clickEmitter.emit($event); + if (this.starClickChange) { + this.starClickChange.emit($event); } }; StarRatingComponent.prototype.saveOnRatingChange = function ($event) { - if (this.ratingChangeEmitter) { - this.ratingChangeEmitter.emit($event); + if (this.ratingChange) { + this.ratingChange.emit($event); } }; StarRatingComponent.prototype.saveOnHover = function ($event) { - if (this.hoverRatingChangeEmitter) { - this.hoverRatingChangeEmitter.emit($event); + if (this.hoverRatingChange) { + this.hoverRatingChange.emit($event); } }; StarRatingComponent.prototype.saveOnTouch = function () { @@ -718,9 +718,9 @@ StarRatingComponent.decorators = [ 'labelText', 'id' ], - outputs: ['clickEmitter', 'ratingChangeEmitter', 'hoverRatingChangeEmitter'], + 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
" + 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 [ @@ -734,7 +734,9 @@ var StarRatingModule = /** @class */ (function () { StarRatingModule.forRoot = function () { return { ngModule: StarRatingModule, - providers: [StarRatingConfigService] + providers: [ + StarRatingConfigService + ] }; }; StarRatingModule.forChild = function () { 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 0fcf327..876cf64 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 @@ -11,12 +11,12 @@ "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: [StarRatingConfigService]\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: ['clickEmitter', 'ratingChangeEmitter', 'hoverRatingChangeEmitter'],\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\nexport class StarRatingComponent extends StarRating\r\n implements ControlValueAccessor {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n clickEmitter: EventEmitter = new EventEmitter();\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.clickEmitter) {\r\n this.clickEmitter.emit($event);\r\n }\r\n }\r\n\r\n ratingChangeEmitter: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChangeEmitter) {\r\n this.ratingChangeEmitter.emit($event);\r\n }\r\n }\r\n\r\n hoverRatingChangeEmitter: EventEmitter<\r\n HoverRatingChangeEvent\r\n > = new EventEmitter();\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChangeEmitter) {\r\n this.hoverRatingChangeEmitter.emit($event);\r\n }\r\n }\r\n\r\n onTouch: Function;\r\n onModelChange: Function;\r\n private onModelChangeRegistered: boolean = false;\r\n private onTouchRegistered: boolean = false;\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 {\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}\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 //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: number = 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());\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 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\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 //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 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 let 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 let 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 let 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 let 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 { 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 {\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' | 'image';\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", + "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", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n" ], "names": [ @@ -28,5 +28,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 d661bb4..093e144 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 r=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 s=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()),this.setHalfStarVisible(),this.setColor()},Object.defineProperty(t.prototype,"showHalfStars",{get:function(){return this._showHalfStars},set:function(t){this._showHalfStars=!!t,this.setHalfStarVisible()},enumerable:!0,configurable:!0}),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'}]}],c.ctorParameters=function(){return[{type:l}]};var f=[c],h=[f],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:[f],exports:[h]}]}],g.ctorParameters=function(){return[]},t.StarRatingConfig=s,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,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})}); //# 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 5378aba..ef277ea 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 @@ -12,12 +12,12 @@ ], "sourcesContent": [ "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\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' | 'image';\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", + "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", "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 //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: number = 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());\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 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\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 //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 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 let 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 let 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 let 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 let 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}\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: ['clickEmitter', 'ratingChangeEmitter', 'hoverRatingChangeEmitter'],\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\nexport class StarRatingComponent extends StarRating\r\n implements ControlValueAccessor {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n clickEmitter: EventEmitter = new EventEmitter();\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.clickEmitter) {\r\n this.clickEmitter.emit($event);\r\n }\r\n }\r\n\r\n ratingChangeEmitter: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChangeEmitter) {\r\n this.ratingChangeEmitter.emit($event);\r\n }\r\n }\r\n\r\n hoverRatingChangeEmitter: EventEmitter<\r\n HoverRatingChangeEvent\r\n > = new EventEmitter();\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChangeEmitter) {\r\n this.hoverRatingChangeEmitter.emit($event);\r\n }\r\n }\r\n\r\n onTouch: Function;\r\n onModelChange: Function;\r\n private onModelChangeRegistered: boolean = false;\r\n private onTouchRegistered: boolean = false;\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: [StarRatingConfigService]\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 {\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" ], "names": [ "extendStatics", @@ -63,9 +63,13 @@ "defineProperty", "prototype", "get", - "_id", + "_rating", "set", "value", + "setRating", + "_showHalfStars", + "setHalfStarVisible", + "_id", "_focus", "_labelText", "_labelPosition", @@ -88,14 +92,10 @@ "_readOnly", "_disabled", "_step", - "_rating", - "setRating", "newRating", "ratingAsInteger", "parseInt", "toString", - "setHalfStarVisible", - "_showHalfStars", "svgVisible", "interactionPossible", "readOnly", @@ -140,10 +140,10 @@ "_super", "_this", "call", - "clickEmitter", + "starClickChange", "EventEmitter", - "ratingChangeEmitter", - "hoverRatingChangeEmitter", + "ratingChange", + "hoverRatingChange", "onModelChangeRegistered", "onTouchRegistered", "__", @@ -209,5 +209,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 1575002..35c84f0 100644 --- a/@packaged/angular-star-rating/esm2015/angular-star-rating.js +++ b/@packaged/angular-star-rating/esm2015/angular-star-rating.js @@ -73,6 +73,28 @@ class StarRatingUtils { * @suppress {checkTypes} checked by tsc */ class StarRating { + /** + * @param {?} value + * @return {?} + */ + set rating(value) { + this.setRating(value); + } + /** + * @return {?} + */ + get showHalfStars() { + return this._showHalfStars; + } + /** + * @param {?} value + * @return {?} + */ + set showHalfStars(value) { + this._showHalfStars = !!value; + //update halfStarVisible + this.setHalfStarVisible(); + } /** * @return {?} */ @@ -324,34 +346,12 @@ class StarRating { } this._rating = newRating; //update ratingAsInteger. rating parsed to int for the value-[n] modifier - this.ratingAsInteger = parseInt(this._rating.toString()); + this.ratingAsInteger = parseInt(this._rating.toString(), 10); //update halfStarsVisible this.setHalfStarVisible(); //update calculated Color this.setColor(); } - /** - * @param {?} value - * @return {?} - */ - set rating(value) { - this.setRating(value); - } - /** - * @return {?} - */ - get showHalfStars() { - return this._showHalfStars; - } - /** - * @param {?} value - * @return {?} - */ - set showHalfStars(value) { - this._showHalfStars = !!value; - //update halfStarVisible - this.setHalfStarVisible(); - } /** * @param {?} config */ @@ -423,11 +423,11 @@ class StarRating { * @return {?} */ getComponentClassNames() { - let /** @type {?} */ classNames = []; + const /** @type {?} */ classNames = []; classNames.push(this.rating ? 'value-' + this.ratingAsInteger : 'value-0'); classNames.push(this.halfStarVisible ? 'half' : ''); classNames.push(this.hoverEnabled ? 'hover' : ''); - let /** @type {?} */ hoverRating = this.hoverRating + const /** @type {?} */ hoverRating = this.hoverRating ? 'hover-' + this.hoverRating : 'hover-0'; classNames.push(this.hoverEnabled ? hoverRating : ''); @@ -447,7 +447,7 @@ class StarRating { */ increment() { //increment to next higher step - let /** @type {?} */ absDiff = Math.abs(this.rating % this.step); + const /** @type {?} */ absDiff = Math.abs(this.rating % this.step); this.rating = this.rating + (absDiff > 0 ? this.step - absDiff : this.step); } /** @@ -455,7 +455,7 @@ class StarRating { */ decrement() { //decrement to next lower step - let /** @type {?} */ absDiff = Math.abs(this.rating % this.step); + const /** @type {?} */ absDiff = Math.abs(this.rating % this.step); this.rating = this.rating - (absDiff > 0 ? absDiff : this.step); } /** @@ -767,9 +767,9 @@ class StarRatingComponent extends StarRating { constructor(config) { super(config); //Outputs - this.clickEmitter = new EventEmitter(); - this.ratingChangeEmitter = new EventEmitter(); - this.hoverRatingChangeEmitter = new EventEmitter(); + this.starClickChange = new EventEmitter(); + this.ratingChange = new EventEmitter(); + this.hoverRatingChange = new EventEmitter(); this.onModelChangeRegistered = false; this.onTouchRegistered = false; } @@ -778,8 +778,8 @@ class StarRatingComponent extends StarRating { * @return {?} */ saveOnClick($event) { - if (this.clickEmitter) { - this.clickEmitter.emit($event); + if (this.starClickChange) { + this.starClickChange.emit($event); } } /** @@ -787,8 +787,8 @@ class StarRatingComponent extends StarRating { * @return {?} */ saveOnRatingChange($event) { - if (this.ratingChangeEmitter) { - this.ratingChangeEmitter.emit($event); + if (this.ratingChange) { + this.ratingChange.emit($event); } } /** @@ -796,8 +796,8 @@ class StarRatingComponent extends StarRating { * @return {?} */ saveOnHover($event) { - if (this.hoverRatingChangeEmitter) { - this.hoverRatingChangeEmitter.emit($event); + if (this.hoverRatingChange) { + this.hoverRatingChange.emit($event); } } /** @@ -976,7 +976,7 @@ StarRatingComponent.decorators = [ 'labelText', 'id' ], - outputs: ['clickEmitter', 'ratingChangeEmitter', 'hoverRatingChangeEmitter'], + outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'], styles: [], template: `
- + - + - + - +
-` + +` },] }, ]; /** @nocollapse */ @@ -1026,7 +1027,9 @@ class StarRatingModule { static forRoot() { return { ngModule: StarRatingModule, - providers: [StarRatingConfigService] + providers: [ + StarRatingConfigService + ] }; } /** 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 5172642..b494d25 100644 --- a/@packaged/angular-star-rating/esm2015/angular-star-rating.js.map +++ b/@packaged/angular-star-rating/esm2015/angular-star-rating.js.map @@ -10,13 +10,13 @@ "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: [StarRatingConfigService]\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: ['clickEmitter', 'ratingChangeEmitter', 'hoverRatingChangeEmitter'],\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\nexport class StarRatingComponent extends StarRating\r\n implements ControlValueAccessor {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n clickEmitter: EventEmitter = new EventEmitter();\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.clickEmitter) {\r\n this.clickEmitter.emit($event);\r\n }\r\n }\r\n\r\n ratingChangeEmitter: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChangeEmitter) {\r\n this.ratingChangeEmitter.emit($event);\r\n }\r\n }\r\n\r\n hoverRatingChangeEmitter: EventEmitter<\r\n HoverRatingChangeEvent\r\n > = new EventEmitter();\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChangeEmitter) {\r\n this.hoverRatingChangeEmitter.emit($event);\r\n }\r\n }\r\n\r\n onTouch: Function;\r\n onModelChange: Function;\r\n private onModelChangeRegistered: boolean = false;\r\n private onTouchRegistered: boolean = false;\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 {\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}\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 //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: number = 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());\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 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\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 //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 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 let 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 let 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 let 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 let 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 { 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 {\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' | 'image';\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" + "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 731cee0..738ece9 100644 --- a/@packaged/angular-star-rating/esm5/angular-star-rating.js +++ b/@packaged/angular-star-rating/esm5/angular-star-rating.js @@ -65,6 +65,27 @@ var StarRating = /** @class */ (function () { this.rating = 0; this.step = 1; } + Object.defineProperty(StarRating.prototype, "rating", { + get: function () { + return this._rating; + }, + set: function (value) { + this.setRating(value); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(StarRating.prototype, "showHalfStars", { + get: function () { + return this._showHalfStars; + }, + set: function (value) { + this._showHalfStars = !!value; + this.setHalfStarVisible(); + }, + enumerable: true, + configurable: true + }); Object.defineProperty(StarRating.prototype, "id", { get: function () { return this._id; @@ -238,16 +259,6 @@ var StarRating = /** @class */ (function () { enumerable: true, configurable: true }); - Object.defineProperty(StarRating.prototype, "rating", { - get: function () { - return this._rating; - }, - set: function (value) { - this.setRating(value); - }, - enumerable: true, - configurable: true - }); StarRating.prototype.setRating = function (value) { var newRating = 0; if (value >= 0 && value <= this.numOfStars) { @@ -257,21 +268,10 @@ var StarRating = /** @class */ (function () { newRating = this.numOfStars; } this._rating = newRating; - this.ratingAsInteger = parseInt(this._rating.toString()); + this.ratingAsInteger = parseInt(this._rating.toString(), 10); this.setHalfStarVisible(); this.setColor(); }; - Object.defineProperty(StarRating.prototype, "showHalfStars", { - get: function () { - return this._showHalfStars; - }, - set: function (value) { - this._showHalfStars = !!value; - this.setHalfStarVisible(); - }, - enumerable: true, - configurable: true - }); StarRating.prototype.svgVisible = function () { return this.starType === 'svg'; }; @@ -553,26 +553,26 @@ var StarRatingComponent = /** @class */ (function (_super) { __extends(StarRatingComponent, _super); function StarRatingComponent(config) { var _this = _super.call(this, config) || this; - _this.clickEmitter = new EventEmitter(); - _this.ratingChangeEmitter = new EventEmitter(); - _this.hoverRatingChangeEmitter = new EventEmitter(); + _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) { - if (this.clickEmitter) { - this.clickEmitter.emit($event); + if (this.starClickChange) { + this.starClickChange.emit($event); } }; StarRatingComponent.prototype.saveOnRatingChange = function ($event) { - if (this.ratingChangeEmitter) { - this.ratingChangeEmitter.emit($event); + if (this.ratingChange) { + this.ratingChange.emit($event); } }; StarRatingComponent.prototype.saveOnHover = function ($event) { - if (this.hoverRatingChangeEmitter) { - this.hoverRatingChangeEmitter.emit($event); + if (this.hoverRatingChange) { + this.hoverRatingChange.emit($event); } }; StarRatingComponent.prototype.saveOnTouch = function () { @@ -695,9 +695,9 @@ StarRatingComponent.decorators = [ 'labelText', 'id' ], - outputs: ['clickEmitter', 'ratingChangeEmitter', 'hoverRatingChangeEmitter'], + 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
" + 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 [ @@ -711,7 +711,9 @@ var StarRatingModule = /** @class */ (function () { StarRatingModule.forRoot = function () { return { ngModule: StarRatingModule, - providers: [StarRatingConfigService] + providers: [ + StarRatingConfigService + ] }; }; StarRatingModule.forChild = function () { 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 f3fb98c..27e5997 100644 --- a/@packaged/angular-star-rating/esm5/angular-star-rating.js.map +++ b/@packaged/angular-star-rating/esm5/angular-star-rating.js.map @@ -10,15 +10,15 @@ "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: [StarRatingConfigService]\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: ['clickEmitter', 'ratingChangeEmitter', 'hoverRatingChangeEmitter'],\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\nexport class StarRatingComponent extends StarRating\r\n implements ControlValueAccessor {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n clickEmitter: EventEmitter = new EventEmitter();\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.clickEmitter) {\r\n this.clickEmitter.emit($event);\r\n }\r\n }\r\n\r\n ratingChangeEmitter: EventEmitter = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChangeEmitter) {\r\n this.ratingChangeEmitter.emit($event);\r\n }\r\n }\r\n\r\n hoverRatingChangeEmitter: EventEmitter<\r\n HoverRatingChangeEvent\r\n > = new EventEmitter();\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChangeEmitter) {\r\n this.hoverRatingChangeEmitter.emit($event);\r\n }\r\n }\r\n\r\n onTouch: Function;\r\n onModelChange: Function;\r\n private onModelChangeRegistered: boolean = false;\r\n private onTouchRegistered: boolean = false;\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 {\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}\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 //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: number = 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());\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 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\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 //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 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 let 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 let 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 let 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 let 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 { 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 {\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' | 'image';\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" + "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": [ "tslib_1.__extends" ], - "mappings": "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" + "mappings": "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" } diff --git a/@packaged/angular-star-rating/package.json b/@packaged/angular-star-rating/package.json index 7ff66dc..4ac2f76 100644 --- a/@packaged/angular-star-rating/package.json +++ b/@packaged/angular-star-rating/package.json @@ -48,7 +48,7 @@ "@angular/forms": "^4.0.0 || ^5.0.0", "rxjs": "^5.1.0", "zone.js": "^0.8.4", - "css-star-rating": "^2.4.1" + "css-star-rating": "^1.2.4" }, "main": "bundles/angular-star-rating.umd.js", "es2015": "esm2015/angular-star-rating.js", diff --git a/@packaged/angular-star-rating/src/components/star-rating.component.d.ts b/@packaged/angular-star-rating/src/components/star-rating.component.d.ts index 3703a6a..bb44546 100644 --- a/@packaged/angular-star-rating/src/components/star-rating.component.d.ts +++ b/@packaged/angular-star-rating/src/components/star-rating.component.d.ts @@ -6,16 +6,16 @@ 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 { - clickEmitter: EventEmitter; - saveOnClick($event: ClickEvent): void; - ratingChangeEmitter: EventEmitter; - saveOnRatingChange($event: RatingChangeEvent): void; - hoverRatingChangeEmitter: EventEmitter; - saveOnHover($event: HoverRatingChangeEvent): void; + starClickChange: EventEmitter; + ratingChange: EventEmitter; + hoverRatingChange: EventEmitter; onTouch: Function; onModelChange: Function; private onModelChangeRegistered; private onTouchRegistered; + saveOnClick($event: ClickEvent): void; + saveOnRatingChange($event: RatingChangeEvent): void; + saveOnHover($event: HoverRatingChangeEvent): void; saveOnTouch(): void; saveOnModelChange(value: number): void; /**ACCESSIBILITY **/ diff --git a/@packaged/angular-star-rating/src/interfaces/star-rating-config.interface.d.ts b/@packaged/angular-star-rating/src/interfaces/star-rating-config.interface.d.ts index a525282..e918399 100644 --- a/@packaged/angular-star-rating/src/interfaces/star-rating-config.interface.d.ts +++ b/@packaged/angular-star-rating/src/interfaces/star-rating-config.interface.d.ts @@ -2,7 +2,7 @@ export declare type starRatingSizes = 'small' | 'medium' | 'large'; export declare type starRatingColor = 'default' | 'negative' | 'ok' | 'positive'; export declare type starRatingSpeed = 'immediately' | 'noticeable' | 'slow'; export declare type starRatingLabelPosition = 'left' | 'right' | 'top' | 'bottom'; -export declare type starRatingStarTypes = 'svg' | 'icon' | 'image'; +export declare type starRatingStarTypes = 'svg' | 'icon' | 'custom-icon'; export declare type starRatingStarSpace = 'no' | 'between' | 'around'; export declare type starRatingDirection = 'rtl' | 'ltr'; export declare class StarRatingConfig { diff --git a/@packaged/angular-star-rating/src/services/star-rating.d.ts b/@packaged/angular-star-rating/src/services/star-rating.d.ts index 1628a0e..d2483a4 100644 --- a/@packaged/angular-star-rating/src/services/star-rating.d.ts +++ b/@packaged/angular-star-rating/src/services/star-rating.d.ts @@ -2,6 +2,30 @@ import { StarRatingConfig, starRatingColor, starRatingDirection, starRatingLabel import { StarRatingConfigService } from './star-rating-config.service'; export declare class StarRating { protected config: StarRatingConfig; + classEmpty: string; + classHalf: string; + classFilled: string; + pathEmpty: string; + pathHalf: string; + pathFilled: string; + color: starRatingColor; + stars: Array; + ratingAsInteger: number; + halfStarVisible: boolean; + rating: number; + /** + * showHalfStars + */ + protected _showHalfStars: boolean; + showHalfStars: boolean; + /** + * getColor + */ + getColor: (rating: number, numOfStars: number, staticColor?: starRatingColor) => starRatingColor; + /** + * getHalfStarVisible + */ + getHalfStarVisible: (rating: number) => boolean; /** * id property to identify the DOM element */ @@ -88,36 +112,12 @@ export declare class StarRating { * rating */ protected _rating: number; - rating: number; /** * setRating * I use a setter function instead of a set method to enable overrides for this function. * @param value */ setRating(value: number): void; - /** - * showHalfStars - */ - protected _showHalfStars: boolean; - showHalfStars: boolean; - /** - * getColor - */ - getColor: (rating: number, numOfStars: number, staticColor?: starRatingColor) => starRatingColor; - /** - * getHalfStarVisible - */ - getHalfStarVisible: (rating: number) => boolean; - classEmpty: string; - classHalf: string; - classFilled: string; - pathEmpty: string; - pathHalf: string; - pathFilled: string; - color: starRatingColor; - stars: Array; - ratingAsInteger: number; - halfStarVisible: boolean; constructor(config: StarRatingConfigService); svgVisible(): boolean; interactionPossible(): boolean; diff --git a/apps/angular5-example/src/app/app.component.html b/apps/angular5-example/src/app/app.component.html index 4f33fd8..9fb59ae 100644 --- a/apps/angular5-example/src/app/app.component.html +++ b/apps/angular5-example/src/app/app.component.html @@ -17,7 +17,7 @@