-
-
Notifications
You must be signed in to change notification settings - Fork 84
/
angular-star-rating.js.map
26 lines (26 loc) · 53.7 KB
/
angular-star-rating.js.map
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
"version": 3,
"file": "angular-star-rating.js",
"sources": [
"ng://angular-star-rating/out/src/angular-star-rating.module.ts",
"ng://angular-star-rating/out/src/components/star-rating-control/star-rating-control.component.ts",
"ng://angular-star-rating/out/src/components/star-rating/star-rating.component.ts",
"ng://angular-star-rating/out/src/services/star-rating-config.service.ts",
"ng://angular-star-rating/out/src/services/star-rating.ts",
"ng://angular-star-rating/out/src/services/star-rating.utils.ts",
"ng://angular-star-rating/out/src/interfaces/star-rating-config.interface.ts"
],
"sourcesContent": [
"import {CommonModule} from '@angular/common';\r\nimport {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {StarRatingComponent} from './components/star-rating/star-rating.component';\r\nimport {StarRatingControlComponent} from './components/star-rating-control/star-rating-control.component';\r\nimport {StarRatingConfigService} from './services/star-rating-config.service';\r\n\r\nconst DECLARATIONS = [\r\n StarRatingComponent,\r\n StarRatingControlComponent\r\n];\r\nconst EXPORTS = [DECLARATIONS];\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [DECLARATIONS],\r\n exports: [EXPORTS]\r\n})\r\nexport class StarRatingModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: [\r\n StarRatingConfigService\r\n ]\r\n };\r\n }\r\n\r\n static forChild(): ModuleWithProviders {\r\n return {\r\n ngModule: StarRatingModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n",
"import {Component, EventEmitter, forwardRef} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {ClickEvent} from '../../interfaces/click-event.interface';\r\nimport {HoverRatingChangeEvent} from '../../interfaces/hover-rating-change-event.interface';\r\nimport {RatingChangeEvent} from '../../interfaces/rating-change-event.interface';\r\nimport {StarRating} from '../../services/star-rating';\r\nimport {StarRatingConfigService} from '../../services/star-rating-config.service';\r\nimport {StarRatingUtils} from '../../services/star-rating.utils';\r\n\r\nconst STAR_RATING_CONTROL_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => StarRatingControlComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'star-rating-control',\r\n providers: [STAR_RATING_CONTROL_ACCESSOR],\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `<div id=\"{{id}}\"\r\n class=\"rating {{getComponentClassNames()}}\"\r\n tabindex=\"0\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (blur)=\"onBlur($event)\"\r\n (focus)=\"onFocus($event)\"\r\n (mouseleave)=\"onStarHover(0)\">\r\n <div *ngIf=\"labelText\" class=\"label-value\">{{labelText}}</div>\r\n <div class=\"star-container\">\r\n <div class=\"star\"\r\n (mouseenter)=\"onStarHover(star)\"\r\n *ngFor=\"let star of stars\"\r\n (click)=\"onStarClicked(star)\">\r\n <i *ngIf=\"!svgVisible()\" class=\"star-empty {{classEmpty}}\"></i>\r\n <i *ngIf=\"!svgVisible()\" class=\"star-half {{classHalf}}\"></i>\r\n <i *ngIf=\"!svgVisible()\" class=\"star-filled {{classFilled}}\"></i>\r\n <svg *ngIf=\"svgVisible()\" class=\"star-empty\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.xlink:href]=\"pathEmpty\"></use>\r\n </svg>\r\n <svg *ngIf=\"svgVisible()\" class=\"star-half\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.xlink:href]=\"pathHalf\"></use>\r\n </svg>\r\n <svg *ngIf=\"svgVisible()\" class=\"star-filled\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.xlink:href]=\"pathFilled\"></use>\r\n </svg>\r\n </div>\r\n </div>\r\n</div>\r\n`\r\n})\r\nexport class StarRatingControlComponent extends StarRating\r\n implements ControlValueAccessor {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter<ClickEvent> = new EventEmitter<ClickEvent>();\r\n\r\n ratingChange: EventEmitter<RatingChangeEvent> = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter<HoverRatingChangeEvent> = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n onTouch: Function;\r\n onModelChange: Function;\r\n private onModelChangeRegistered = false;\r\n private onTouchRegistered = false;\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnTouch() {\r\n if (this.onTouchRegistered) {\r\n this.onTouch();\r\n }\r\n }\r\n\r\n saveOnModelChange(value: number) {\r\n if (this.onModelChangeRegistered) {\r\n this.onModelChange(value);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n const dStr = 'Digit';\r\n const digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1), 10\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n this.saveOnTouch();\r\n }\r\n\r\n //Focus events\r\n onBlur(event: FocusEvent) {\r\n this.focus = false;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n onFocus(event: FocusEvent) {\r\n this.focus = true;\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.saveOnTouch();\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0;\r\n\r\n //fire onHoverRatingChange event\r\n const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n /**Form Control - ControlValueAccessor implementation**/\r\n\r\n writeValue(obj: any): void {\r\n this.rating = obj;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onModelChange = fn;\r\n this.onModelChangeRegistered = true;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n this.onTouchRegistered = true;\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n const initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n const $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n\r\n this.saveOnModelChange(this.rating);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n const onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n",
"import {Component, EventEmitter} from '@angular/core';\r\nimport {ClickEvent} from '../../interfaces/click-event.interface';\r\nimport {HoverRatingChangeEvent} from '../../interfaces/hover-rating-change-event.interface';\r\nimport {RatingChangeEvent} from '../../interfaces/rating-change-event.interface';\r\nimport {StarRating} from '../../services/star-rating';\r\nimport {StarRatingConfigService} from '../../services/star-rating-config.service';\r\nimport {StarRatingUtils} from '../../services/star-rating.utils';\r\n\r\n@Component({\r\n selector: 'star-rating',\r\n inputs: [\r\n 'getHalfStarVisible',\r\n 'getColor',\r\n 'showHalfStars',\r\n 'hoverEnabled',\r\n 'rating',\r\n 'step',\r\n 'disabled',\r\n 'readOnly',\r\n 'space',\r\n 'starType',\r\n 'size',\r\n 'speed',\r\n 'numOfStars',\r\n 'direction',\r\n 'staticColor',\r\n //, 'labelVisible'\r\n 'labelPosition',\r\n 'labelText',\r\n 'id'\r\n ],\r\n outputs: ['starClickChange', 'ratingChange', 'hoverRatingChange'],\r\n styles: [],\r\n template: `<div id=\"{{id}}\"\r\n class=\"rating {{getComponentClassNames()}}\"\r\n tabindex=\"0\"\r\n (keydown)=\"onKeyDown($event)\"\r\n (mouseleave)=\"onStarHover(0)\">\r\n <div *ngIf=\"labelText\" class=\"label-value\">{{labelText}}</div>\r\n <div class=\"star-container\">\r\n <div class=\"star\"\r\n (mouseenter)=\"onStarHover(star)\"\r\n *ngFor=\"let star of stars\"\r\n (click)=\"onStarClicked(star)\">\r\n <i *ngIf=\"!svgVisible()\" class=\"star-empty {{classEmpty}}\"></i>\r\n <i *ngIf=\"!svgVisible()\" class=\"star-half {{classHalf}}\"></i>\r\n <i *ngIf=\"!svgVisible()\" class=\"star-filled {{classFilled}}\"></i>\r\n <svg *ngIf=\"svgVisible()\" class=\"star-empty\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.xlink:href]=\"pathEmpty\"></use>\r\n </svg>\r\n <svg *ngIf=\"svgVisible()\" class=\"star-half\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.xlink:href]=\"pathHalf\"></use>\r\n </svg>\r\n <svg *ngIf=\"svgVisible()\" class=\"star-filled\">\r\n <use xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.xlink:href]=\"pathFilled\"></use>\r\n </svg>\r\n </div>\r\n </div>\r\n</div>\r\n`\r\n})\r\nexport class StarRatingComponent extends StarRating {\r\n //Outputs\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n\r\n starClickChange: EventEmitter<ClickEvent> = new EventEmitter<ClickEvent>();\r\n\r\n ratingChange: EventEmitter<RatingChangeEvent> = new EventEmitter<\r\n RatingChangeEvent\r\n >();\r\n\r\n hoverRatingChange: EventEmitter<HoverRatingChangeEvent> = new EventEmitter<\r\n HoverRatingChangeEvent\r\n >();\r\n\r\n saveOnClick($event: ClickEvent) {\r\n if (this.starClickChange) {\r\n this.starClickChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnRatingChange($event: RatingChangeEvent) {\r\n if (this.ratingChange) {\r\n this.ratingChange.emit($event);\r\n }\r\n }\r\n\r\n saveOnHover($event: HoverRatingChangeEvent) {\r\n if (this.hoverRatingChange) {\r\n this.hoverRatingChange.emit($event);\r\n }\r\n }\r\n\r\n /**ACCESSIBILITY **/\r\n\r\n //Keyboard events\r\n onKeyDown(event: KeyboardEvent) {\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n const handlers: any = {\r\n //Decrement\r\n Minus: () => this.decrement(),\r\n ArrowDown: () => this.decrement(),\r\n ArrowLeft: () => this.decrement(),\r\n\r\n //Increment\r\n Plus: () => this.increment(),\r\n ArrowRight: () => this.increment(),\r\n ArrowUp: () => this.increment(),\r\n\r\n //Reset\r\n Backspace: () => this.reset(),\r\n Delete: () => this.reset(),\r\n Digit0: () => this.reset()\r\n };\r\n\r\n const handleDigits = (eventCode: string): void => {\r\n const dStr = 'Digit';\r\n const digit: number = parseInt(\r\n eventCode.substr(dStr.length, eventCode.length - 1), 10\r\n );\r\n this.rating = digit;\r\n };\r\n\r\n if (\r\n handlers[event['code']] ||\r\n StarRatingUtils.isDigitKeyEventCode(event['code'])\r\n ) {\r\n if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\r\n handleDigits(event['code']);\r\n } else {\r\n handlers[event['code']]();\r\n }\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n }\r\n\r\n //Hover events\r\n onStarHover(rating?: number): void {\r\n if (!this.interactionPossible() || !this.hoverEnabled) {\r\n return;\r\n }\r\n\r\n this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0;\r\n //update calculated Color\r\n this.setColor(true);\r\n\r\n //fire onHoverRatingChange event\r\n const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\r\n this.saveOnHover($event);\r\n }\r\n\r\n constructor(config: StarRatingConfigService) {\r\n super(config);\r\n }\r\n\r\n //Overrides\r\n setRating(value: number): void {\r\n const initValue = this.rating;\r\n super.setRating(value);\r\n\r\n //if value changed trigger valueAccessor events and outputs\r\n if (initValue !== this.rating) {\r\n const $event: RatingChangeEvent = { rating: this.rating };\r\n this.saveOnRatingChange($event);\r\n }\r\n }\r\n\r\n /**\r\n * onStarClicked\r\n *\r\n * Is fired when a star is clicked. And updated the rating value.\r\n * This function returns if the disabled or readOnly\r\n * property is set. If provided it emits the onClick event\r\n * handler with the actual rating value.\r\n *\r\n * @param rating\r\n */\r\n onStarClicked(rating: number): void {\r\n //fire onClick event\r\n if (!this.interactionPossible()) {\r\n return;\r\n }\r\n\r\n this.rating = rating;\r\n\r\n const onClickEventObject: ClickEvent = {\r\n rating: this.rating\r\n };\r\n this.saveOnClick(onClickEventObject);\r\n }\r\n}\r\n",
"import {\r\n StarRatingConfig,\r\n starRatingColor,\r\n starRatingSizes,\r\n starRatingSpeed,\r\n starRatingStarTypes,\r\n starRatingLabelPosition\r\n} from '../interfaces/star-rating-config.interface';\r\n\r\n/**\r\n * Configuration service for the StarRating component.\r\n * You can inject this service, typically in your root component, and customize the values of its properties in\r\n * order to provide default values for all the star ratings used in the application.\r\n */\r\nexport class StarRatingConfigService implements StarRatingConfig {\r\n _classEmpty = 'default-star-empty-icon';\r\n\r\n get classEmpty() {\r\n return this._classEmpty;\r\n }\r\n\r\n set classEmpty(classEmpty: string) {\r\n this._classEmpty = classEmpty;\r\n }\r\n\r\n private _classHalf = 'default-star-half-icon';\r\n\r\n get classHalf(): string {\r\n return this._classHalf;\r\n }\r\n\r\n set classHalf(classHalf: string) {\r\n this._classHalf = classHalf;\r\n }\r\n\r\n private _classFilled = 'default-star-filled-icon';\r\n\r\n get classFilled(): string {\r\n return this._classFilled;\r\n }\r\n\r\n set classFilled(classFilled: string) {\r\n this._classFilled = classFilled;\r\n }\r\n\r\n private _numOfStars = 5;\r\n\r\n get numOfStars(): number {\r\n return this._numOfStars;\r\n }\r\n\r\n set numOfStars(numOfStars: number) {\r\n this._numOfStars = numOfStars;\r\n }\r\n\r\n private _size: starRatingSizes = 'medium';\r\n\r\n get size(): starRatingSizes {\r\n return this._size;\r\n }\r\n\r\n set size(size: starRatingSizes) {\r\n this._size = size;\r\n }\r\n\r\n private _staticColor: starRatingColor;\r\n\r\n get staticColor(): starRatingColor {\r\n return this._staticColor;\r\n }\r\n\r\n set staticColor(value: starRatingColor) {\r\n this._staticColor = value;\r\n }\r\n\r\n private _labelPosition: starRatingLabelPosition = 'left';\r\n\r\n get labelPosition(): starRatingLabelPosition {\r\n return this._labelPosition;\r\n }\r\n\r\n set labelPosition(labelPosition: starRatingLabelPosition) {\r\n this._labelPosition = labelPosition;\r\n }\r\n\r\n private _speed: starRatingSpeed = 'noticeable';\r\n\r\n get speed(): starRatingSpeed {\r\n return this._speed;\r\n }\r\n\r\n set speed(speed: starRatingSpeed) {\r\n this._speed = speed;\r\n }\r\n\r\n private _starType: starRatingStarTypes = 'svg';\r\n\r\n get starType(): starRatingStarTypes {\r\n return this._starType;\r\n }\r\n\r\n set starType(starType: starRatingStarTypes) {\r\n this._starType = starType;\r\n }\r\n\r\n private _assetsPath = 'assets/images/';\r\n\r\n get assetsPath(): string {\r\n return this._assetsPath;\r\n }\r\n\r\n set assetsPath(assetsPath: string) {\r\n this._assetsPath = assetsPath;\r\n }\r\n\r\n private _svgPath = this.assetsPath + 'star-rating.icons.svg';\r\n\r\n get svgPath(): string {\r\n return this._svgPath;\r\n }\r\n\r\n set svgPath(svgPath: string) {\r\n this._svgPath = svgPath;\r\n }\r\n\r\n private _svgEmptySymbolId = 'star-empty';\r\n\r\n get svgEmptySymbolId(): string {\r\n return this._svgEmptySymbolId;\r\n }\r\n\r\n set svgEmptySymbolId(svgEmptySymbolId: string) {\r\n this._svgEmptySymbolId = svgEmptySymbolId;\r\n }\r\n\r\n private _svgHalfSymbolId = 'star-half';\r\n\r\n get svgHalfSymbolId(): string {\r\n return this._svgHalfSymbolId;\r\n }\r\n\r\n set svgHalfSymbolId(svgHalfSymbolId: string) {\r\n this._svgHalfSymbolId = svgHalfSymbolId;\r\n }\r\n\r\n private _svgFilledSymbolId = 'star-filled';\r\n\r\n get svgFilledSymbolId(): string {\r\n return this._svgFilledSymbolId;\r\n }\r\n\r\n set svgFilledSymbolId(svgFilledSymbolId: string) {\r\n this._svgFilledSymbolId = svgFilledSymbolId;\r\n }\r\n\r\n private _svgPathEmpty: string = this.svgPath + '#' + this.svgEmptySymbolId;\r\n\r\n get svgPathEmpty(): string {\r\n return this._svgPathEmpty;\r\n }\r\n\r\n set svgPathEmpty(svgPathEmpty: string) {\r\n this._svgPathEmpty = svgPathEmpty;\r\n }\r\n\r\n private _svgPathHalf: string = this.svgPath + '#' + this.svgHalfSymbolId;\r\n\r\n get svgPathHalf(): string {\r\n return this._svgPathHalf;\r\n }\r\n\r\n set svgPathHalf(svgPathHalf: string) {\r\n this._svgPathHalf = svgPathHalf;\r\n }\r\n\r\n private _svgPathFilled: string = this.svgPath + '#' + this.svgFilledSymbolId;\r\n\r\n get svgPathFilled(): string {\r\n return this._svgPathFilled;\r\n }\r\n\r\n set svgPathFilled(svgPathFilled: string) {\r\n this._svgPathFilled = svgPathFilled;\r\n }\r\n\r\n getColor(\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ): starRatingColor {\r\n rating = rating || 0;\r\n\r\n // if a fix color is set use this one\r\n if (staticColor) {\r\n return staticColor;\r\n }\r\n\r\n // calculate size of smallest fraction\r\n const fractionSize = numOfStars / 3;\r\n\r\n // apply color by fraction\r\n let color: starRatingColor = 'default';\r\n if (rating > 0) {\r\n color = 'negative';\r\n }\r\n if (rating > fractionSize) {\r\n color = 'ok';\r\n }\r\n if (rating > fractionSize * 2) {\r\n color = 'positive';\r\n }\r\n\r\n return color;\r\n }\r\n\r\n getHalfStarVisible(rating: number): boolean {\r\n return Math.abs(rating % 1) > 0;\r\n }\r\n}\r\n",
"import {\r\n StarRatingConfig,\r\n starRatingColor,\r\n starRatingDirection,\r\n starRatingLabelPosition,\r\n starRatingSizes,\r\n starRatingSpeed,\r\n starRatingStarSpace,\r\n starRatingStarTypes\r\n} from '../interfaces/star-rating-config.interface';\r\nimport { StarRatingConfigService } from './star-rating-config.service';\r\nimport { StarRatingUtils } from './star-rating.utils';\r\n\r\nexport class StarRating {\r\n protected config: StarRatingConfig;\r\n\r\n //CTRL ONLY\r\n ///////////////////////////////////////////////////////////////////////////////////////////\r\n classEmpty: string;\r\n classHalf: string;\r\n classFilled: string;\r\n\r\n pathEmpty: string;\r\n pathHalf: string;\r\n pathFilled: string;\r\n\r\n color: starRatingColor;\r\n stars: Array<number>;\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(useHoverValue = false): void {\r\n //check if custom function is given\r\n const ratingValue = useHoverValue ? this.hoverRating: this.rating;\r\n if (typeof this.getColor === 'function') {\r\n this.color = this.getColor(\r\n ratingValue,\r\n this.numOfStars,\r\n this.staticColor\r\n );\r\n } else {\r\n this.color = StarRatingUtils.getColor(\r\n ratingValue,\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<number> {\r\n let stars: Array<number> = [];\r\n for (let i = 0; i < numOfStars; i++) {\r\n stars.push(i + 1);\r\n }\r\n return stars;\r\n }\r\n\r\n /*\r\n * getHalfStarVisible\r\n *\r\n * Returns true if there should be a half star visible, and false if not.\r\n *\r\n * @param rating\r\n * @returns {boolean}\r\n */\r\n static getHalfStarVisible(rating: number): boolean {\r\n return Math.abs(rating % 1) > 0;\r\n }\r\n\r\n /*\r\n * getColor\r\n *\r\n * The default function for color calculation\r\n * based on the current rating and the the number of stars possible.\r\n * If a staticColor is set the function will use it as return value.\r\n *\r\n * @param rating\r\n * @param numOfStars\r\n * @param staticColor\r\n * @returns {starRatingColor}\r\n */\r\n static getColor(\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ): starRatingColor {\r\n rating = rating || 0;\r\n\r\n //if a fix color is set use this one\r\n if (staticColor) {\r\n return staticColor;\r\n }\r\n\r\n //calculate size of smallest fraction\r\n let fractionSize = numOfStars / 3;\r\n\r\n //apply color by fraction\r\n let color: starRatingColor = 'default';\r\n if (rating > 0) {\r\n color = 'negative';\r\n }\r\n if (rating > fractionSize) {\r\n color = 'ok';\r\n }\r\n if (rating > fractionSize * 2) {\r\n color = 'positive';\r\n }\r\n\r\n return color;\r\n }\r\n\r\n /*\r\n * isDigitKeyEventCode\r\n * detects digit key event sodes\r\n * @param eventCode\r\n * @returns {boolean}\r\n */\r\n static isDigitKeyEventCode(eventCode: string): boolean {\r\n return eventCode.indexOf('Digit') === 0;\r\n }\r\n}\r\n",
"export type starRatingSizes = 'small' | 'medium' | 'large';\r\nexport type starRatingColor = 'default' | 'negative' | 'ok' | 'positive';\r\nexport type starRatingSpeed = 'immediately' | 'noticeable' | 'slow';\r\nexport type starRatingLabelPosition = 'left' | 'right' | 'top' | 'bottom';\r\nexport type starRatingStarTypes = 'svg' | 'icon' | 'custom-icon';\r\nexport type starRatingStarSpace = 'no' | 'between' | 'around';\r\nexport type starRatingDirection = 'rtl' | 'ltr';\r\n\r\nexport class StarRatingConfig {\r\n // binding defaults\r\n numOfStars?: number;\r\n size?: starRatingSizes;\r\n speed?: starRatingSpeed;\r\n labelPosition?: starRatingLabelPosition;\r\n starType?: starRatingStarTypes;\r\n staticColor: starRatingColor;\r\n getColor?: (\r\n rating: number,\r\n numOfStars: number,\r\n staticColor?: starRatingColor\r\n ) => starRatingColor;\r\n getHalfStarVisible?: (rating: number) => boolean;\r\n // statics\r\n classEmpty?: string;\r\n classHalf?: string;\r\n classFilled?: string;\r\n assetsPath?: string;\r\n svgPath?: string;\r\n svgEmptySymbolId?: string;\r\n svgHalfSymbolId?: string;\r\n svgFilledSymbolId?: string;\r\n svgPathEmpty?: string;\r\n svgPathHalf?: string;\r\n svgPathFilled?: string;\r\n}\r\n"
],
"names": [
"tslib_1.__extends"
],
"mappings": "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"
}