{"version":3,"file":"angular-star-rating.mjs","sources":["../../../libs/angular-star-rating/src/lib/interfaces/star-rating-config.interface.ts","../../../libs/angular-star-rating/src/lib/services/star-rating.utils.ts","../../../libs/angular-star-rating/src/lib/services/star-rating-config.service.ts","../../../libs/angular-star-rating/src/lib/services/star-rating.ts","../../../libs/angular-star-rating/src/lib/components/star-rating/star-rating.component.ts","../../../libs/angular-star-rating/src/lib/components/star-rating/star-rating.component.html","../../../libs/angular-star-rating/src/lib/components/star-rating-control/star-rating-control.component.ts","../../../libs/angular-star-rating/src/lib/components/star-rating-control/star-rating-control.component.html","../../../libs/angular-star-rating/src/lib/angular-star-rating.module.ts","../../../libs/angular-star-rating/src/angular-star-rating.ts"],"sourcesContent":["export type starRatingSizes = 'small' | 'medium' | 'large';\nexport type starRatingColor = 'default' | 'negative' | 'ok' | 'positive';\nexport type starRatingSpeed = 'immediately' | 'noticeable' | 'slow';\nexport type starRatingLabelPosition = 'left' | 'right' | 'top' | 'bottom';\nexport type starRatingStarTypes = 'svg' | 'icon' | 'custom-icon';\nexport type starRatingStarSpace = 'no' | 'between' | 'around';\nexport type starRatingDirection = 'rtl' | 'ltr';\n\nexport class StarRatingConfig {\n  // binding defaults\n  numOfStars?: number;\n  size?: starRatingSizes;\n  speed?: starRatingSpeed;\n  labelPosition?: starRatingLabelPosition;\n  starType?: starRatingStarTypes;\n  staticColor: starRatingColor;\n  getColor?: (\n    rating: number,\n    numOfStars: number,\n    staticColor?: starRatingColor\n  ) => starRatingColor;\n  getHalfStarVisible?: (rating: number) => boolean;\n  // statics\n  classEmpty?: string;\n  classHalf?: string;\n  classFilled?: string;\n  assetsPath?: string;\n  svgPath?: string;\n  svgEmptySymbolId?: string;\n  svgHalfSymbolId?: string;\n  svgFilledSymbolId?: string;\n  svgPathEmpty?: string;\n  svgPathHalf?: string;\n  svgPathFilled?: string;\n}\n","import { starRatingColor } from '../interfaces/star-rating-config.interface';\nexport class StarRatingUtils {\n  //Static methods\n  ///////////////////////////////////////////////////////////////////////////////////////////\n\n  /*\n   * getStarsArray\n   *\n   * returns an array of increasing numbers starting at 1\n   *\n   * @param numOfStars\n   * @returns {Array}\n   */\n  static getStarsArray(numOfStars: number): Array<number> {\n    const stars: Array<number> = [];\n    for (let i = 0; i < numOfStars; i++) {\n      stars.push(i + 1);\n    }\n    return stars;\n  }\n\n  /*\n   * getHalfStarVisible\n   *\n   * Returns true if there should be a half star visible, and false if not.\n   *\n   * @param rating\n   * @returns {boolean}\n   */\n  static getHalfStarVisible(rating: number): boolean {\n    return Math.abs(rating % 1) > 0;\n  }\n\n  /*\n   * getColor\n   *\n   * The default function for color calculation\n   * based on the current rating and the the number of stars possible.\n   * If a staticColor is set the function will use it as return value.\n   *\n   * @param rating\n   * @param numOfStars\n   * @param staticColor\n   * @returns {starRatingColor}\n   */\n  static getColor(\n    rating: number,\n    numOfStars: number,\n    staticColor?: starRatingColor\n  ): starRatingColor {\n    rating = rating || 0;\n\n    //if a fix color is set use this one\n    if (staticColor) {\n      return staticColor;\n    }\n\n    //calculate size of smallest fraction\n    const fractionSize = numOfStars / 3;\n\n    //apply color by fraction\n    let color: starRatingColor = 'default';\n    if (rating > 0) {\n      color = 'negative';\n    }\n    if (rating > fractionSize) {\n      color = 'ok';\n    }\n    if (rating > fractionSize * 2) {\n      color = 'positive';\n    }\n\n    return color;\n  }\n\n  /*\n   * isDigitKeyEventCode\n   * detects digit key event sodes\n   * @param eventCode\n   * @returns {boolean}\n   */\n  static isDigitKeyEventCode(eventCode: string): boolean {\n    return eventCode.indexOf('Digit') === 0;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport {\n  StarRatingConfig,\n  starRatingColor,\n  starRatingSizes,\n  starRatingSpeed,\n  starRatingStarTypes,\n  starRatingLabelPosition,\n} from '../interfaces/star-rating-config.interface';\n\n/**\n * Configuration service for the StarRating component.\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the star ratings used in the application.\n */\nexport class StarRatingConfigService implements StarRatingConfig {\n  _classEmpty = 'default-star-empty-icon';\n\n  get classEmpty() {\n    return this._classEmpty;\n  }\n\n  set classEmpty(classEmpty: string) {\n    this._classEmpty = classEmpty;\n  }\n\n  private _classHalf = 'default-star-half-icon';\n\n  get classHalf(): string {\n    return this._classHalf;\n  }\n\n  set classHalf(classHalf: string) {\n    this._classHalf = classHalf;\n  }\n\n  private _classFilled = 'default-star-filled-icon';\n\n  get classFilled(): string {\n    return this._classFilled;\n  }\n\n  set classFilled(classFilled: string) {\n    this._classFilled = classFilled;\n  }\n\n  private _numOfStars = 5;\n\n  get numOfStars(): number {\n    return this._numOfStars;\n  }\n\n  set numOfStars(numOfStars: number) {\n    this._numOfStars = numOfStars;\n  }\n\n  private _size: starRatingSizes = 'medium';\n\n  get size(): starRatingSizes {\n    return this._size;\n  }\n\n  set size(size: starRatingSizes) {\n    this._size = size;\n  }\n\n  private _staticColor: starRatingColor;\n\n  get staticColor(): starRatingColor {\n    return this._staticColor;\n  }\n\n  set staticColor(value: starRatingColor) {\n    this._staticColor = value;\n  }\n\n  private _labelPosition: starRatingLabelPosition = 'left';\n\n  get labelPosition(): starRatingLabelPosition {\n    return this._labelPosition;\n  }\n\n  set labelPosition(labelPosition: starRatingLabelPosition) {\n    this._labelPosition = labelPosition;\n  }\n\n  private _speed: starRatingSpeed = 'noticeable';\n\n  get speed(): starRatingSpeed {\n    return this._speed;\n  }\n\n  set speed(speed: starRatingSpeed) {\n    this._speed = speed;\n  }\n\n  private _starType: starRatingStarTypes = 'svg';\n\n  get starType(): starRatingStarTypes {\n    return this._starType;\n  }\n\n  set starType(starType: starRatingStarTypes) {\n    this._starType = starType;\n  }\n\n  private _assetsPath = 'assets/images/';\n\n  get assetsPath(): string {\n    return this._assetsPath;\n  }\n\n  set assetsPath(assetsPath: string) {\n    this._assetsPath = assetsPath;\n  }\n\n  private _svgPath = this.assetsPath + 'star-rating.icons.svg';\n\n  get svgPath(): string {\n    return this._svgPath;\n  }\n\n  set svgPath(svgPath: string) {\n    this._svgPath = svgPath;\n  }\n\n  private _svgEmptySymbolId = 'star-empty';\n\n  get svgEmptySymbolId(): string {\n    return this._svgEmptySymbolId;\n  }\n\n  set svgEmptySymbolId(svgEmptySymbolId: string) {\n    this._svgEmptySymbolId = svgEmptySymbolId;\n  }\n\n  private _svgHalfSymbolId = 'star-half';\n\n  get svgHalfSymbolId(): string {\n    return this._svgHalfSymbolId;\n  }\n\n  set svgHalfSymbolId(svgHalfSymbolId: string) {\n    this._svgHalfSymbolId = svgHalfSymbolId;\n  }\n\n  private _svgFilledSymbolId = 'star-filled';\n\n  get svgFilledSymbolId(): string {\n    return this._svgFilledSymbolId;\n  }\n\n  set svgFilledSymbolId(svgFilledSymbolId: string) {\n    this._svgFilledSymbolId = svgFilledSymbolId;\n  }\n\n  private _svgPathEmpty: string = this.svgPath + '#' + this.svgEmptySymbolId;\n\n  get svgPathEmpty(): string {\n    return this._svgPathEmpty;\n  }\n\n  set svgPathEmpty(svgPathEmpty: string) {\n    this._svgPathEmpty = svgPathEmpty;\n  }\n\n  private _svgPathHalf: string = this.svgPath + '#' + this.svgHalfSymbolId;\n\n  get svgPathHalf(): string {\n    return this._svgPathHalf;\n  }\n\n  set svgPathHalf(svgPathHalf: string) {\n    this._svgPathHalf = svgPathHalf;\n  }\n\n  private _svgPathFilled: string = this.svgPath + '#' + this.svgFilledSymbolId;\n\n  get svgPathFilled(): string {\n    return this._svgPathFilled;\n  }\n\n  set svgPathFilled(svgPathFilled: string) {\n    this._svgPathFilled = svgPathFilled;\n  }\n\n  getColor(\n    rating: number,\n    numOfStars: number,\n    staticColor?: starRatingColor\n  ): starRatingColor {\n    rating = rating || 0;\n\n    // if a fix color is set use this one\n    if (staticColor) {\n      return staticColor;\n    }\n\n    // calculate size of smallest fraction\n    const fractionSize = numOfStars / 3;\n\n    // apply color by fraction\n    let color: starRatingColor = 'default';\n    if (rating > 0) {\n      color = 'negative';\n    }\n    if (rating > fractionSize) {\n      color = 'ok';\n    }\n    if (rating > fractionSize * 2) {\n      color = 'positive';\n    }\n\n    return color;\n  }\n\n  getHalfStarVisible(rating: number): boolean {\n    return Math.abs(rating % 1) > 0;\n  }\n}\n","/* eslint-disable @angular-eslint/component-class-suffix */\nimport { Component, Input } from '@angular/core';\n\nimport {\n  StarRatingConfig,\n  starRatingColor,\n  starRatingDirection,\n  starRatingLabelPosition,\n  starRatingSizes,\n  starRatingSpeed,\n  starRatingStarSpace,\n  starRatingStarTypes,\n} from '../interfaces/star-rating-config.interface';\nimport { StarRatingConfigService } from './star-rating-config.service';\nimport { StarRatingUtils } from './star-rating.utils';\n\n@Component({\n  // Metadata needed for Angular.\n  template: ``,\n  selector: 'placeholder-star-rating'\n})\nexport class StarRating {\n  protected config: StarRatingConfig;\n\n  //CTRL ONLY\n  ///////////////////////////////////////////////////////////////////////////////////////////\n  classEmpty: string;\n  classHalf: string;\n  classFilled: string;\n\n  pathEmpty: string;\n  pathHalf: string;\n  pathFilled: string;\n\n  color: starRatingColor;\n  stars: Array<number>;\n  ratingAsInteger: number;\n  halfStarVisible: boolean;\n\n  /**\n   * showHalfStars\n   */\n  protected _showHalfStars: boolean;\n  get showHalfStars(): boolean {\n    return this._showHalfStars;\n  }\n\n  @Input() set showHalfStars(value: boolean) {\n    this._showHalfStars = !!value;\n\n    //update halfStarVisible\n    this.setHalfStarVisible();\n  }\n\n  /**\n   * getColor\n   */\n  getColor: (\n    rating: number,\n    numOfStars: number,\n    staticColor?: starRatingColor\n  ) => starRatingColor;\n\n  /////////////////////////////////////////////\n\n  /**\n   * getHalfStarVisible\n   */\n  getHalfStarVisible: (rating: number) => boolean;\n  /////////////////////////////////////////////\n\n  //Inputs\n  ///////////////////////////////////////////////////////////////////////////////////////////\n\n  /**\n   * id property to identify the DOM element\n   */\n  protected _id: string;\n  get id(): string {\n    return this._id;\n  }\n\n  @Input() set id(value: string) {\n    this._id = value || '';\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * focus\n   */\n  protected _focus: boolean;\n  get focus(): boolean {\n    return this._focus;\n  }\n\n  @Input() set focus(value: boolean) {\n    this._focus = !!value;\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * labelText\n   */\n  protected _labelText: string;\n  get labelText(): string {\n    return this._labelText;\n  }\n\n  @Input() set labelText(value: string) {\n    this._labelText = value;\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * labelPosition\n   */\n  protected _labelPosition: starRatingLabelPosition;\n  get labelPosition(): starRatingLabelPosition {\n    return this._labelPosition;\n  }\n\n  @Input() set labelPosition(value: starRatingLabelPosition) {\n    this._labelPosition = value || this.config.labelPosition;\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * labelVisible\n   */\n  protected _labelVisible: boolean;\n  get labelVisible(): boolean {\n    return this._labelVisible;\n  }\n\n  @Input() set labelVisible(value: boolean) {\n    this._labelVisible = !!value;\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * hoverEnabled\n   */\n  protected _hoverEnabled: boolean;\n  get hoverEnabled(): boolean {\n    return this._hoverEnabled;\n  }\n\n  @Input() set hoverEnabled(value: boolean) {\n    this._hoverEnabled = value !== undefined ? !!value : false;\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * staticColor\n   */\n  protected _staticColor: starRatingColor;\n  get staticColor(): starRatingColor {\n    return this._staticColor || this.config.staticColor || undefined;\n  }\n\n  @Input() set staticColor(value: starRatingColor) {\n    this._staticColor = value;\n\n    //update color.\n    this.setColor();\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * direction\n   */\n  protected _direction: starRatingDirection;\n  get direction(): starRatingDirection {\n    return this._direction;\n  }\n\n  @Input() set direction(value: starRatingDirection) {\n    this._direction = value || undefined;\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * numOfStars\n   */\n  protected _numOfStars: number;\n  get numOfStars(): number {\n    return this._numOfStars;\n  }\n\n  @Input() set numOfStars(value: number) {\n    this._numOfStars = value > 0 ? value : this.config.numOfStars!;\n\n    //update stars array\n    this.stars = StarRatingUtils.getStarsArray(this.numOfStars);\n\n    //update color\n    this.setColor();\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * hoverRating\n   */\n  protected _hoverRating: number;\n  get hoverRating(): number {\n    return this._hoverRating;\n  }\n\n  @Input() set hoverRating(value: number) {\n    this._hoverRating = value > 0 ? value : 0;\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * speed\n   */\n  protected _speed: starRatingSpeed;\n  get speed(): starRatingSpeed {\n    return this._speed;\n  }\n\n  @Input() set speed(value: starRatingSpeed) {\n    this._speed = value || this.config.speed;\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * size\n   */\n  protected _size: starRatingSizes;\n  get size(): starRatingSizes {\n    return this._size || this.config.size;\n  }\n\n  @Input() set size(value: starRatingSizes) {\n    this._size = value;\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * starType\n   */\n  protected _starType: starRatingStarTypes;\n  get starType(): starRatingStarTypes {\n    return this._starType || this.config.starType;\n  }\n\n  @Input() set starType(value: starRatingStarTypes) {\n    this._starType = value;\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * space\n   */\n  protected _space: starRatingStarSpace;\n  get space(): starRatingStarSpace {\n    return this._space;\n  }\n\n  @Input() set space(value: starRatingStarSpace) {\n    this._space = value;\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * readOnly\n   */\n  protected _readOnly: boolean;\n  get readOnly(): boolean {\n    return this._readOnly;\n  }\n\n  @Input() set readOnly(value: boolean) {\n    this._readOnly = !!value;\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * disabled\n   */\n  protected _disabled: boolean;\n  get disabled(): boolean {\n    return this._disabled;\n  }\n\n  @Input() set disabled(value: boolean) {\n    this._disabled = !!value;\n  }\n\n  /////////////////////////////////////////////\n\n  private _step: number;\n  get step(): number {\n    return this._step;\n  }\n\n  @Input() set step(value: number) {\n    this._step = value > 0 ? value : 1;\n  }\n\n  /////////////////////////////////////////////\n\n  /**\n   * rating\n   */\n  protected _rating: number;\n  get rating(): number {\n    return this._rating;\n  }\n\n  @Input() set rating(value: number) {\n    this.setRating(value);\n  }\n\n  /**\n   * setRating\n   * I use a setter function instead of a set method to enable overrides for this function.\n   * @param value\n   */\n  setRating(value: number) {\n    //validate and apply newRating\n    let newRating = 0;\n    if (value >= 0 && value <= this.numOfStars) {\n      newRating = value;\n    }\n\n    //limit max value to max number of stars\n    if (value > this.numOfStars) {\n      newRating = this.numOfStars;\n    }\n    this._rating = newRating;\n\n    //update ratingAsInteger. rating parsed to int for the value-[n] modifier\n    this.ratingAsInteger = parseInt(this._rating?.toString(), 10);\n\n    //update halfStarsVisible\n    this.setHalfStarVisible();\n\n    //update calculated Color\n    this.setColor();\n  }\n\n  constructor(config: StarRatingConfigService) {\n    this.config = config;\n\n    //set default ctrl props\n    this.classEmpty = this.config.classEmpty!;\n    this.classHalf = this.config.classHalf!;\n    this.classFilled = this.config.classFilled!;\n    this.pathEmpty = this.config.svgPathEmpty!;\n    this.pathHalf = this.config.svgPathHalf!;\n    this.pathFilled = this.config.svgPathFilled!;\n\n    //set default Component Inputs\n    if (\n      'getColor' in this.config &&\n      typeof this.config.getColor === 'function'\n    ) {\n      this.getColor = this.config.getColor;\n    }\n\n    if (\n      'getHalfStarVisible' in this.config &&\n      typeof this.config.getHalfStarVisible === 'function'\n    ) {\n      this.getHalfStarVisible = this.config.getHalfStarVisible;\n    }\n\n    this.numOfStars = this.config.numOfStars!;\n    this.rating = 0;\n    this.step = 1;\n  }\n\n  svgVisible(): boolean {\n    return this.starType === 'svg';\n  }\n\n  interactionPossible(): boolean {\n    return !this.readOnly && !this.disabled;\n  }\n\n  setColor(useHoverValue = false): void {\n    //check if custom function is given\n    const ratingValue = useHoverValue ? this.hoverRating : this.rating;\n    if (typeof this.getColor === 'function') {\n      this.color = this.getColor(\n        ratingValue,\n        this.numOfStars,\n        this.staticColor\n      );\n    } else {\n      this.color = StarRatingUtils.getColor(\n        ratingValue,\n        this.numOfStars,\n        this.staticColor\n      );\n    }\n  }\n\n  setHalfStarVisible(): void {\n    //update halfStarVisible\n    if (this.showHalfStars) {\n      //check if custom function is given\n      if (typeof this.getHalfStarVisible === 'function') {\n        this.halfStarVisible = this.getHalfStarVisible(this.rating);\n      } else {\n        this.halfStarVisible = StarRatingUtils.getHalfStarVisible(this.rating);\n      }\n    } else {\n      this.halfStarVisible = false;\n    }\n  }\n\n  getComponentClassNames(): string {\n    const classNames: string[] = [];\n\n    classNames.push(this.rating ? 'value-' + this.ratingAsInteger : 'value-0');\n    classNames.push(this.halfStarVisible ? 'half' : '');\n    classNames.push(this.hoverEnabled ? 'hover' : '');\n\n    const hoverRating = this.hoverRating\n      ? 'hover-' + this.hoverRating\n      : 'hover-0';\n    classNames.push(this.hoverEnabled ? hoverRating : '');\n\n    classNames.push(this.space ? 'space-' + this.space : '');\n    classNames.push(this.labelPosition ? 'label-' + this.labelPosition : '');\n    classNames.push(this.color ? 'color-' + this.color : '');\n    classNames.push(this.starType ? 'star-' + this.starType : '');\n    classNames.push(this.speed);\n    classNames.push(this.size);\n    classNames.push(this.readOnly ? 'read-only' : '');\n    classNames.push(this.disabled ? 'disabled' : '');\n    classNames.push(this.direction ? 'direction-' + this.direction : '');\n\n    return classNames.join(' ');\n  }\n\n  increment() {\n    //increment to next higher step\n    const absDiff = Math.abs(this.rating % this.step);\n    this.rating = this.rating + (absDiff > 0 ? this.step - absDiff : this.step);\n  }\n\n  decrement() {\n    //decrement to next lower step\n    const absDiff = Math.abs(this.rating % this.step);\n    this.rating = this.rating - (absDiff > 0 ? absDiff : this.step);\n  }\n\n  reset() {\n    this.rating = 0;\n  }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\nimport { ClickEvent } from '../../interfaces/click-event.interface';\nimport { HoverRatingChangeEvent } from '../../interfaces/hover-rating-change-event.interface';\nimport { RatingChangeEvent } from '../../interfaces/rating-change-event.interface';\nimport { starRatingColor } from '../../interfaces/star-rating-config.interface';\nimport { StarRating } from '../../services/star-rating';\nimport { StarRatingConfigService } from '../../services/star-rating-config.service';\nimport { StarRatingUtils } from '../../services/star-rating.utils';\n\n@Component({\n  selector: 'star-rating',\n  templateUrl: 'star-rating.component.html',\n})\nexport class StarRatingComponent extends StarRating {\n  @Input()\n  getHalfStarVisible: (rating: number) => boolean = (rating: number) => false;\n\n  // @ts-ignore\n  @Input() getColor: (\n    rating: number,\n    numOfStars: number,\n    staticColor?: starRatingColor | undefined\n  ) => starRatingColor;\n\n  @Output()\n  starClickChange: EventEmitter<ClickEvent> = new EventEmitter<ClickEvent>();\n\n  @Output()\n  ratingChange: EventEmitter<RatingChangeEvent> = new EventEmitter<RatingChangeEvent>();\n\n  @Output()\n  hoverRatingChange: EventEmitter<HoverRatingChangeEvent> = new EventEmitter<HoverRatingChangeEvent>();\n\n  saveOnClick($event: ClickEvent) {\n    if (this.starClickChange) {\n      this.starClickChange.emit($event);\n    }\n  }\n\n  saveOnRatingChange($event: RatingChangeEvent) {\n    if (this.ratingChange) {\n      this.ratingChange.emit($event);\n    }\n  }\n\n  saveOnHover($event: HoverRatingChangeEvent) {\n    if (this.hoverRatingChange) {\n      this.hoverRatingChange.emit($event);\n    }\n  }\n\n  /**ACCESSIBILITY **/\n\n  //Keyboard events\n  onKeyDown(event: KeyboardEvent) {\n    if (!this.interactionPossible()) {\n      return;\n    }\n\n    const handlers: Record<string, () => void> = {\n      //Decrement\n      Minus: () => this.decrement(),\n      ArrowDown: () => this.decrement(),\n      ArrowLeft: () => this.decrement(),\n\n      //Increment\n      Plus: () => this.increment(),\n      ArrowRight: () => this.increment(),\n      ArrowUp: () => this.increment(),\n\n      //Reset\n      Backspace: () => this.reset(),\n      Delete: () => this.reset(),\n      Digit0: () => this.reset(),\n    };\n\n    const handleDigits = (eventCode: string): void => {\n      const dStr = 'Digit';\n      const digit: number = parseInt(\n        eventCode.substr(dStr.length, eventCode.length - 1),\n        10\n      );\n      this.rating = digit;\n    };\n\n    if (\n      handlers[event['code']] ||\n      StarRatingUtils.isDigitKeyEventCode(event['code'])\n    ) {\n      if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\n        handleDigits(event['code']);\n      } else {\n        handlers[event['code']]();\n      }\n      event.preventDefault();\n      event.stopPropagation();\n    }\n  }\n\n  //Hover events\n  onStarHover(rating?: number): void {\n    if (!this.interactionPossible() || !this.hoverEnabled) {\n      return;\n    }\n\n    this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0;\n    //update calculated Color\n    this.setColor(true);\n\n    //fire onHoverRatingChange event\n    const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\n    this.saveOnHover($event);\n  }\n\n  onStopHover() {\n    if (!this.interactionPossible() || !this.hoverEnabled) {\n      return;\n    }\n\n    this.hoverRating = 0;\n    //update calculated Color\n    this.setColor();\n  }\n\n  constructor(config: StarRatingConfigService) {\n    super(config);\n  }\n\n  //Overrides\n  setRating(value: number): void {\n    const initValue = this.rating;\n    super.setRating(value);\n\n    //if value changed trigger valueAccessor events and outputs\n    if (initValue !== this.rating) {\n      const $event: RatingChangeEvent = { rating: this.rating };\n      this.saveOnRatingChange($event);\n    }\n  }\n\n  /**\n   * onStarClicked\n   *\n   * Is fired when a star is clicked. And updated the rating value.\n   * This function returns if the disabled or readOnly\n   * property is set. If provided it emits the onClick event\n   * handler with the actual rating value.\n   *\n   * @param rating\n   */\n  onStarClicked(rating: number): void {\n    //fire onClick event\n    if (!this.interactionPossible()) {\n      return;\n    }\n\n    this.rating = rating;\n\n    const onClickEventObject: ClickEvent = {\n      rating: this.rating,\n    };\n    this.saveOnClick(onClickEventObject);\n  }\n}\n","<div id=\"{{id}}\" class=\"rating {{getComponentClassNames()}}\" tabindex=\"0\"\n  (keydown)=\"onKeyDown($event)\" (mouseleave)=\"onStopHover()\">\n  <div *ngIf=\"labelText\" class=\"label-value\">{{labelText}}</div>\n  <div class=\"star-container\">\n    <div class=\"star\" (mouseenter)=\"onStarHover(star)\"\n      *ngFor=\"let star of stars\" (click)=\"onStarClicked(star)\">\n      <i *ngIf=\"!svgVisible()\" class=\"star-empty {{classEmpty}}\"></i>\n      <i *ngIf=\"!svgVisible()\" class=\"star-half {{classHalf}}\"></i>\n      <i *ngIf=\"!svgVisible()\" class=\"star-filled {{classFilled}}\"></i>\n      <svg *ngIf=\"svgVisible()\" class=\"star-empty\">\n        <use xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          [attr.xlink:href]=\"pathEmpty\"></use>\n      </svg>\n      <svg *ngIf=\"svgVisible()\" class=\"star-half\">\n        <use xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          [attr.xlink:href]=\"pathHalf\"></use>\n      </svg>\n      <svg *ngIf=\"svgVisible()\" class=\"star-filled\">\n        <use xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          [attr.xlink:href]=\"pathFilled\"></use>\n      </svg>\n    </div>\n  </div>\n</div>\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Component, EventEmitter, forwardRef, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { ClickEvent } from '../../interfaces/click-event.interface';\nimport { HoverRatingChangeEvent } from '../../interfaces/hover-rating-change-event.interface';\nimport { RatingChangeEvent } from '../../interfaces/rating-change-event.interface';\nimport { StarRating } from '../../services/star-rating';\nimport { StarRatingConfigService } from '../../services/star-rating-config.service';\nimport { StarRatingUtils } from '../../services/star-rating.utils';\n\nconst STAR_RATING_CONTROL_ACCESSOR = {\n  provide: NG_VALUE_ACCESSOR,\n  useExisting: forwardRef(() => StarRatingControlComponent),\n  multi: true,\n};\n\n@Component({\n  selector: 'star-rating-control',\n  providers: [STAR_RATING_CONTROL_ACCESSOR],\n  templateUrl: 'star-rating-control.component.html',\n})\nexport class StarRatingControlComponent\n  extends StarRating\n  implements ControlValueAccessor\n{\n  @Output()\n  starClickChange: EventEmitter<ClickEvent> = new EventEmitter<ClickEvent>();\n\n  @Output()\n  ratingChange: EventEmitter<RatingChangeEvent> = new EventEmitter<RatingChangeEvent>();\n\n  @Output()\n  hoverRatingChange: EventEmitter<HoverRatingChangeEvent> = new EventEmitter<HoverRatingChangeEvent>();\n\n  // eslint-disable-next-line @typescript-eslint/ban-types\n  onTouch: Function;\n  // eslint-disable-next-line @typescript-eslint/ban-types\n  onModelChange: Function;\n  private onModelChangeRegistered = false;\n  private onTouchRegistered = false;\n\n  saveOnClick($event: ClickEvent) {\n    if (this.starClickChange) {\n      this.starClickChange.emit($event);\n    }\n  }\n\n  saveOnRatingChange($event: RatingChangeEvent) {\n    if (this.ratingChange) {\n      this.ratingChange.emit($event);\n    }\n  }\n\n  saveOnHover($event: HoverRatingChangeEvent) {\n    if (this.hoverRatingChange) {\n      this.hoverRatingChange.emit($event);\n    }\n  }\n\n  saveOnTouch() {\n    if (this.onTouchRegistered) {\n      this.onTouch();\n    }\n  }\n\n  saveOnModelChange(value: number) {\n    if (this.onModelChangeRegistered) {\n      this.onModelChange(value);\n    }\n  }\n\n  /**ACCESSIBILITY **/\n\n  //Keyboard events\n  onKeyDown(event: KeyboardEvent) {\n    if (!this.interactionPossible()) {\n      return;\n    }\n\n    const handlers: any = {\n      //Decrement\n      Minus: () => this.decrement(),\n      ArrowDown: () => this.decrement(),\n      ArrowLeft: () => this.decrement(),\n\n      //Increment\n      Plus: () => this.increment(),\n      ArrowRight: () => this.increment(),\n      ArrowUp: () => this.increment(),\n\n      //Reset\n      Backspace: () => this.reset(),\n      Delete: () => this.reset(),\n      Digit0: () => this.reset(),\n    };\n\n    const handleDigits = (eventCode: string): void => {\n      const dStr = 'Digit';\n      const digit: number = parseInt(\n        eventCode.substr(dStr.length, eventCode.length - 1),\n        10\n      );\n      this.rating = digit;\n    };\n\n    if (\n      handlers[event['code']] ||\n      StarRatingUtils.isDigitKeyEventCode(event['code'])\n    ) {\n      if (StarRatingUtils.isDigitKeyEventCode(event['code'])) {\n        handleDigits(event['code']);\n      } else {\n        handlers[event['code']]();\n      }\n      event.preventDefault();\n      event.stopPropagation();\n    }\n\n    this.saveOnTouch();\n  }\n\n  //Focus events\n  onBlur(event: FocusEvent) {\n    this.focus = false;\n    event.preventDefault();\n    event.stopPropagation();\n    this.saveOnTouch();\n  }\n\n  onFocus(event: FocusEvent) {\n    this.focus = true;\n    event.preventDefault();\n    event.stopPropagation();\n    this.saveOnTouch();\n  }\n\n  //Hover events\n  onStarHover(rating?: number): void {\n    if (!this.interactionPossible() || !this.hoverEnabled) {\n      return;\n    }\n\n    this.hoverRating = rating ? parseInt(rating.toString(), 10) : 0;\n\n    //fire onHoverRatingChange event\n    const $event: HoverRatingChangeEvent = { hoverRating: this.hoverRating };\n    this.saveOnHover($event);\n  }\n\n  /**Form Control - ControlValueAccessor implementation**/\n\n  writeValue(obj: any): void {\n    this.rating = obj;\n  }\n\n  registerOnChange(fn: any): void {\n    this.onModelChange = fn;\n    this.onModelChangeRegistered = true;\n  }\n\n  registerOnTouched(fn: any): void {\n    this.onTouch = fn;\n    this.onTouchRegistered = true;\n  }\n\n  constructor(config: StarRatingConfigService) {\n    super(config);\n  }\n\n  //Overrides\n  setRating(value: number): void {\n    const initValue = this.rating;\n    super.setRating(value);\n\n    //if value changed trigger valueAccessor events and outputs\n    if (initValue !== this.rating) {\n      const $event: RatingChangeEvent = { rating: this.rating };\n      this.saveOnRatingChange($event);\n\n      this.saveOnModelChange(this.rating);\n    }\n  }\n\n  /**\n   * onStarClicked\n   *\n   * Is fired when a star is clicked. And updated the rating value.\n   * This function returns if the disabled or readOnly\n   * property is set. If provided it emits the onClick event\n   * handler with the actual rating value.\n   *\n   * @param rating\n   */\n  onStarClicked(rating: number): void {\n    //fire onClick event\n    if (!this.interactionPossible()) {\n      return;\n    }\n\n    this.rating = rating;\n\n    const onClickEventObject: ClickEvent = {\n      rating: this.rating,\n    };\n    this.saveOnClick(onClickEventObject);\n  }\n}\n","<div id=\"{{id}}\" class=\"rating {{getComponentClassNames()}}\" tabindex=\"0\"\n  (keydown)=\"onKeyDown($event)\" (blur)=\"onBlur($event)\"\n  (focus)=\"onFocus($event)\" (mouseleave)=\"onStarHover(0)\">\n  <div *ngIf=\"labelText\" class=\"label-value\">{{labelText}}</div>\n  <div class=\"star-container\">\n    <div class=\"star\" (mouseenter)=\"onStarHover(star)\"\n      *ngFor=\"let star of stars\" (click)=\"onStarClicked(star)\">\n      <i *ngIf=\"!svgVisible()\" class=\"star-empty {{classEmpty}}\"></i>\n      <i *ngIf=\"!svgVisible()\" class=\"star-half {{classHalf}}\"></i>\n      <i *ngIf=\"!svgVisible()\" class=\"star-filled {{classFilled}}\"></i>\n      <svg *ngIf=\"svgVisible()\" class=\"star-empty\">\n        <use xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          [attr.xlink:href]=\"pathEmpty\"></use>\n      </svg>\n      <svg *ngIf=\"svgVisible()\" class=\"star-half\">\n        <use xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          [attr.xlink:href]=\"pathHalf\"></use>\n      </svg>\n      <svg *ngIf=\"svgVisible()\" class=\"star-filled\">\n        <use xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n          [attr.xlink:href]=\"pathFilled\"></use>\n      </svg>\n    </div>\n  </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { StarRatingComponent } from './components/star-rating/star-rating.component';\nimport { StarRatingControlComponent } from './components/star-rating-control/star-rating-control.component';\nimport { StarRatingConfigService } from './services/star-rating-config.service';\n\nconst DECLARATIONS = [StarRatingComponent, StarRatingControlComponent];\nconst EXPORTS = [DECLARATIONS];\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [DECLARATIONS],\n  exports: [EXPORTS],\n})\nexport class StarRatingModule {\n  static forRoot(): ModuleWithProviders<StarRatingModule> {\n    return {\n      ngModule: StarRatingModule,\n      providers: [StarRatingConfigService],\n    };\n  }\n\n  static forChild(): ModuleWithProviders<StarRatingModule> {\n    return {\n      ngModule: StarRatingModule,\n      providers: [],\n    };\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.StarRatingConfigService"],"mappings":"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"}