{"version":3,"file":"ng-starrating.mjs","sources":["../../../projects/rating/src/lib/rating.component.ts","../../../projects/rating/src/components/star-rating/star-rating.component.ts","../../../projects/rating/src/components/star-rating/star-rating.component.html","../../../projects/rating/src/lib/rating.module.ts","../../../projects/rating/src/public-api.ts","../../../projects/rating/src/ng-starrating.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lib-rating',\n  template: `\n    <p>\n      rating works!\n    </p>\n  `,\n  styles: []\n})\nexport class RatingComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","import {\n  Component, Input, Output, ViewChild, ElementRef,\n  EventEmitter, ViewEncapsulation\n} from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n  selector: 'star-rating',\n  templateUrl: './star-rating.component.html',\n  styleUrls: ['./star-rating.component.css'],\n  encapsulation: ViewEncapsulation.ShadowDom\n})\n\nexport class StarRatingComponent {\n  private stars: Array<Element> = [];\n\n  private _checkedColor: string;\n  private _unCheckedColor: string;\n  private _value: number;\n  private _size: string;\n  private _readOnly: boolean = false;\n\n  private _totalStars: number = 5;\n  private onStarsCountChange: Subject<number>;\n  private onValueChange: Subject<number>;\n  private onCheckedColorChange: Subject<string>;\n  private onUnCheckedColorChange: Subject<string>;\n  private onSizeChange: Subject<string>;\n  private onReadOnlyChange: Subject<boolean>;\n\n  private static readonly VAR_CHECKED_COLOR: string = '--checkedColor';\n  private static readonly VAR_UNCHECKED_COLOR: string = '--unCheckedColor';\n  private static readonly VAR_SIZE: string = '--size';\n  private static readonly VAR_HALF_WIDTH: string = '--halfWidth';\n  private static readonly VAR_HALF_MARGIN: string = '--halfMargin';\n  private static readonly CLS_CHECKED_STAR: string = 'on';\n  private static readonly CLS_DEFAULT_STAR: string = 'star';\n  private static readonly CLS_HALF_STAR: string = 'half';\n  private static readonly INP_CHECKED_COLOR: string = 'checkedcolor';\n  private static readonly INP_UNCHECKED_COLOR: string = 'uncheckedcolor';\n  private static readonly INP_VALUE: string = 'value';\n  private static readonly INP_SIZE: string = 'size';\n  private static readonly INP_READONLY: string = 'readonly';\n  private static readonly INP_TOTALSTARS: string = 'totalstars';\n\n  @ViewChild('starMain', { static: true }) private mainElement: ElementRef;\n\n  constructor() {\n    this.onStarsCountChange = new Subject();\n    this.onStarsCountChange.subscribe(() => {\n      this.setStars();\n      this.generateRating(true);\n      this.applySizeAllStars();\n      this.applyColorStyleAllStars(false);\n      this.addEvents();\n    });\n\n    this.onValueChange = new Subject();\n    this.onValueChange.subscribe(() => {\n      this.generateRating();\n      this.applySizeAllStars();\n    });\n\n    this.onCheckedColorChange = new Subject();\n    this.onCheckedColorChange.subscribe(() => {\n      this.applyColorStyleAllStars(true);\n    });\n\n    this.onUnCheckedColorChange = new Subject();\n    this.onUnCheckedColorChange.subscribe(() => {\n      this.applyColorStyleAllStars(false);\n    });\n\n    this.onSizeChange = new Subject();\n    this.onSizeChange.subscribe(() => {\n      this.applySizeAllStars();\n    });\n\n    this.onReadOnlyChange = new Subject();\n    this.onReadOnlyChange.subscribe(() => {\n      this.readonly ? this.makeReadOnly() : this.makeEditable();\n    });\n  }\n\n  get checkedcolor(): string {\n    return this._checkedColor;\n  }\n\n  get uncheckedcolor(): string {\n    return this._unCheckedColor;\n  }\n\n  get value(): number {\n    return this._value;\n  }\n\n  get size(): string {\n    return this._size.concat((!this._size.includes(\"px\") ? \"px\" : \"\"));\n  }\n\n  get readonly(): boolean {\n    return String(this._readOnly) === \"true\";\n  }\n\n  get totalstars(): number {\n    return this._totalStars;\n  }\n\n  @Output() rate: EventEmitter<{ oldValue: number, newValue: number, starRating: StarRatingComponent }> = new EventEmitter();\n\n  @Input(StarRatingComponent.INP_CHECKED_COLOR) set checkedcolor(value: string) {\n    this._checkedColor = value;\n    this._checkedColor && this.onCheckedColorChange.next(this._checkedColor);\n  }\n\n  @Input(StarRatingComponent.INP_UNCHECKED_COLOR) set uncheckedcolor(value: string) {\n    this._unCheckedColor = value;\n    this._unCheckedColor && this.onUnCheckedColorChange.next(this._unCheckedColor);\n  }\n\n  @Input(StarRatingComponent.INP_VALUE) set value(value: number) {\n    value = (!value || value == null) ? 0 : value;\n    this._value = value;\n    this._value >= 0 && this.onValueChange.next(this._value);\n  }\n\n  @Input(StarRatingComponent.INP_SIZE) set size(value: string) {\n    value = (!value || value == null || value == \"0px\") ? \"24px\" : value;\n    this._size = value;\n    this.onSizeChange.next(this._size);\n  }\n\n  @Input(StarRatingComponent.INP_READONLY) set readonly(value: boolean) {\n    this._readOnly = value;\n    this.onReadOnlyChange.next(value);\n  }\n\n  @Input(StarRatingComponent.INP_TOTALSTARS) set totalstars(value: number) {\n    this._totalStars = value <= 0 ? 5 : Math.round(value);\n    this.onStarsCountChange.next(this._totalStars);\n  }\n\n  private makeEditable() {\n    if (!this.mainElement) return;\n    this.mainElement.nativeElement.style.cursor = \"pointer\";\n    this.mainElement.nativeElement.title = this.value;\n    this.stars.forEach((star: any) => {\n      star.style.cursor = \"pointer\";\n      star.title = star.dataset.index;\n    });\n  }\n\n  private makeReadOnly() {\n    if (!this.mainElement) return;\n    this.mainElement.nativeElement.style.cursor = \"default\";\n    this.mainElement.nativeElement.title = this.value;\n    this.stars.forEach((star: any) => {\n      star.style.cursor = \"default\";\n      star.title = \"\";\n    });\n  }\n\n  private addEvents() {\n    if (!this.mainElement) return;\n    this.mainElement.nativeElement.addEventListener('mouseleave', this.offStar.bind(this));\n    this.mainElement.nativeElement.style.cursor = \"pointer\";\n    this.mainElement.nativeElement.title = this.value;\n    this.stars.forEach((star: any) => {\n      star.addEventListener('click', this.onRate.bind(this));\n      star.addEventListener('mouseenter', this.onStar.bind(this));\n      star.style.cursor = \"pointer\";\n      star.title = star.dataset.index;\n    });\n  }\n\n\n  private ngAfterViewInit() {\n  }\n\n  private onRate(event: MouseEvent) {\n    if (this.readonly) return;\n    let star: HTMLElement = <HTMLElement>event.srcElement;\n    let oldValue = this.value;\n    this.value = parseInt(star.dataset.index);\n    // if (this.value == 0) {\n    //   this.value = 1;\n    // }\n    let rateValues = { oldValue: oldValue, newValue: this.value, starRating: this };\n    this.rate.emit(rateValues);\n  }\n\n  private onStar(event: MouseEvent) {\n    if (this.readonly) return;\n    let star: HTMLElement = <HTMLElement>event.srcElement;\n    let currentIndex = parseInt(star.dataset.index);\n\n    for (let index = 0; index < currentIndex; index++) {\n      this.stars[index].className = \"\";\n      this.addDefaultClass(this.stars[index]);\n      this.addCheckedStarClass(this.stars[index]);\n    }\n\n    for (let index = currentIndex; index < this.stars.length; index++) {\n      this.stars[index].className = \"\";\n      this.addDefaultClass(this.stars[index]);\n    }\n  }\n\n  private offStar(event: MouseEvent) {\n    this.generateRating();\n  }\n\n  private addDefaultClass(star: any) {\n    star.classList.add(StarRatingComponent.CLS_DEFAULT_STAR);\n  }\n\n  private addCheckedStarClass(star: any) {\n    star.classList.add(StarRatingComponent.CLS_CHECKED_STAR);\n  }\n\n  private addHalfStarClass(star: any) {\n    star.classList.add(StarRatingComponent.CLS_HALF_STAR);\n  }\n\n  private setStars() {\n    if (!this.mainElement) return;\n    let starContainer: HTMLDivElement = this.mainElement.nativeElement;\n    let maxStars = [...Array(Number(this.totalstars)).keys()];\n    this.stars.length = 0;\n    starContainer.innerHTML = \"\";\n    maxStars.forEach(starNumber => {\n      let starElement: HTMLSpanElement = document.createElement(\"span\");\n      starElement.dataset.index = (starNumber + 1).toString();\n      starElement.title = starElement.dataset.index;\n      starContainer.appendChild(starElement);\n      this.stars.push(starElement);\n    });\n  }\n\n  private applySizeAllStars() {\n    if (this._size) {\n      this.stars.length == 0 && this.setStars();\n      this.stars.forEach((star: any) => {\n        let newSize = this.size.match(/\\d+/)[0];\n        let halfSize = (parseInt(newSize) * 10) / 24;\n        let halfMargin = 0 - ((parseInt(newSize) * 20) / 24);\n        star.style.setProperty(StarRatingComponent.VAR_SIZE, this.size);\n        if (star.classList.contains(StarRatingComponent.CLS_HALF_STAR)) {\n          star.style.setProperty(StarRatingComponent.VAR_HALF_WIDTH, `${halfSize}px`);\n          star.style.setProperty(StarRatingComponent.VAR_HALF_MARGIN, `${halfMargin}px`);\n        }\n      });\n    }\n  }\n\n  private applyColorStyleAllStars(setChecked: boolean) {\n    this.stars.length == 0 && this.setStars();\n    this.stars.forEach((star: any) => {\n      if (setChecked) {\n        this.applyCheckedColorStyle(star);\n      } else {\n        this.applyUnCheckedColorStyle(star);\n      }\n    });\n  }\n\n  private applyColorStyle(starElement: HTMLSpanElement) {\n    this.applyCheckedColorStyle(starElement);\n    this.applyUnCheckedColorStyle(starElement);\n  }\n\n  private applyCheckedColorStyle(starElement: HTMLSpanElement) {\n    starElement.style.setProperty(StarRatingComponent.VAR_CHECKED_COLOR, this.checkedcolor);\n  }\n\n  private applyUnCheckedColorStyle(starElement: HTMLSpanElement) {\n    starElement.style.setProperty(StarRatingComponent.VAR_UNCHECKED_COLOR, this.uncheckedcolor);\n  }\n\n  private generateRating(forceGenerate: boolean = false) {\n    if (!this.mainElement) return;\n    if (this.readonly && !forceGenerate) return;\n\n    //if (this.value >= 0) {\n    this.stars.length == 0 && this.setStars();\n    this.mainElement.nativeElement.title = this.value;\n\n    let hasDecimals: boolean =\n      ((Number.parseFloat(this.value.toString()) % 1)\n        .toString()\n        .substring(3, 2)) ? true : false;\n\n    let i = 1;\n    this.stars.forEach((star: any) => {\n      star.className = \"\";\n      this.applyColorStyle(star);\n      this.addDefaultClass(star);\n\n      if (this.value >= i) {\n        // star on\n        this.addCheckedStarClass(star);\n      } else {\n        // half star\n        if (hasDecimals) {\n          this.addHalfStarClass(star);\n          hasDecimals = false;\n        }\n      }\n      i++;\n    });\n    //}\n  }\n}\n","<div #starMain>\n</div>","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { RatingComponent } from './rating.component';\nimport { StarRatingComponent } from '../components/star-rating/star-rating.component';\n\n@NgModule({\n    imports: [\n        FormsModule,\n        CommonModule\n    ],\n    declarations: [\n        RatingComponent,\n        StarRatingComponent\n    ],\n    exports: [StarRatingComponent]\n})\nexport class RatingModule {ngDoBootstrap() {}}\n","/*\n * Public API Surface of rating\n */\n\nexport * from './lib/rating.module';\nexport * from './components/star-rating/star-rating.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}