{"version":3,"file":"ngp-material-rating.mjs","sources":["../../../projects/ngp-material-rating/src/lib/ngp-material-rating.component.ts","../../../projects/ngp-material-rating/src/lib/ngp-material-rating.component.html","../../../projects/ngp-material-rating/src/lib/ngp-material-rating.module.ts","../../../projects/ngp-material-rating/src/public-api.ts","../../../projects/ngp-material-rating/src/ngp-material-rating.ts"],"sourcesContent":["import { Component, Input, forwardRef, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nexport interface MatStarConfig {\r\n  size?: string;\r\n  colorFill?: string;\r\n  label?: string;\r\n  readOnly?: boolean;\r\n  showNumber?: boolean;\r\n  showClearBtn?: boolean;\r\n  stars?: number;\r\n}\r\n\r\n@Component({\r\n  // tslint:disable-next-line: component-selector\r\n  selector: 'ngp-material-rating',\r\n  templateUrl: './ngp-material-rating.component.html',\r\n  styleUrls: ['./ngp-material-rating.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NgpMaterialRatingComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NgpMaterialRatingComponent\r\n  implements ControlValueAccessor, OnInit {\r\n  get rating() {\r\n    return this._rating;\r\n  }\r\n\r\n  set rating(val) {\r\n    this._rating = val;\r\n    this.propagateChange(this._rating);\r\n  }\r\n\r\n  @Input() _rating = 0.0; // notice the '_\r\n\r\n  @Input() set value(value) {\r\n    this.rating = value;\r\n  }\r\n\r\n  @Input() set config(value: MatStarConfig) {\r\n    this.procesConfig(value);\r\n  }\r\n\r\n  _config: MatStarConfig = {\r\n    size: '1rem',\r\n    colorFill: '#ffc107',\r\n    showNumber: false,\r\n    readOnly: false,\r\n    label: '',\r\n    showClearBtn: false,\r\n    stars: 5,\r\n  };\r\n\r\n  arrayFill = [];\r\n\r\n  propagateChange = (_: any) => {};\r\n\r\n  registerOnChange(fn): void {\r\n    this.propagateChange = fn;\r\n  }\r\n\r\n  registerOnTouched(): void {}\r\n\r\n  writeValue(value: any): void {\r\n    if (value !== undefined && value != '') {\r\n      this.rating = value;\r\n    }\r\n  }\r\n\r\n  procesConfig(value: MatStarConfig): void {\r\n    if (value && value.size) {\r\n      this._config.size = value.size;\r\n    }\r\n    if (value && value.colorFill) {\r\n      this._config.colorFill = value.colorFill;\r\n    }\r\n    if (value && value.readOnly) {\r\n      this._config.readOnly = value.readOnly;\r\n    }\r\n    if (value && value.showNumber) {\r\n      this._config.showNumber = value.showNumber;\r\n    }\r\n    if (value && value.label) {\r\n      this._config.label = value.label;\r\n    }\r\n    if (value && value.showClearBtn) {\r\n      this._config.showClearBtn = value.showClearBtn;\r\n    }\r\n    if (value && value.stars) {\r\n      this._config.stars = value.stars;\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    for (let i = 1; i <= this._config.stars; i++) {\r\n      this.arrayFill.push(i);\r\n    }\r\n  }\r\n\r\n  onMark(item): void {\r\n    if (this._config.readOnly) {\r\n      return;\r\n    }\r\n    if (item != this.rating) {\r\n      this.rating = +item;\r\n      return;\r\n    }\r\n    if (item == this.rating) {\r\n      this.rating -= 0.5;\r\n      return;\r\n    }\r\n  }\r\n\r\n  onClear(): void {\r\n    if (this._config.readOnly) {\r\n      return;\r\n    }\r\n    this.rating = 0.0;\r\n  }\r\n}\r\n","<div class=\"container-stars\">\r\n  <mat-icon (click)=\"onClear()\" *ngIf=\"_config.showClearBtn\" class=\"clearBtn\"\r\n    [ngStyle]=\"{'width': this._config.size,'height': this._config.size,'font-size':this._config.size,'cursor':(!_config.readOnly)?'pointer':'initial'}\">\r\n    cancel\r\n  </mat-icon>\r\n\r\n  <ng-container *ngFor=\"let item of arrayFill\">\r\n    <mat-icon (click)=\"onMark(item)\" class=\"icon-star\" [matTooltip]=\"item +' '+ this._config.label\"\r\n      [ngClass]=\"{'starEmpty':!(rating < item && rating> (item-1))&&(rating < item)}\"\r\n      [ngStyle]=\"{'color':this._config.colorFill,'width': this._config.size,'height': this._config.size,'font-size':this._config.size,'cursor':(!_config.readOnly)?'pointer':'initial'}\">\r\n      <ng-container *ngIf=\"rating>=item\">\r\n        star\r\n      </ng-container>\r\n      <ng-container *ngIf=\"(rating < item && rating> (item-1));else elseBlock\">\r\n        star_half\r\n      </ng-container>\r\n      <ng-template #elseBlock>\r\n        <ng-container *ngIf=\"rating < item\">\r\n          star_border\r\n        </ng-container>\r\n      </ng-template>\r\n    </mat-icon>\r\n  </ng-container>\r\n\r\n  <ng-container *ngIf=\"_config.showNumber\">\r\n    &nbsp;<span style=\"transform: scale(0.8);\" [ngStyle]=\"{'fontSize':this._config.size}\">{{this.rating}}</span>\r\n  </ng-container>\r\n\r\n</div>\r\n","import { NgpMaterialRatingComponent } from './ngp-material-rating.component';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\n@NgModule({\n  declarations: [NgpMaterialRatingComponent],\n  imports: [CommonModule, MatIconModule, MatTooltipModule],\n  exports: [NgpMaterialRatingComponent],\n})\nexport class NgpMaterialRatingModule {}\n","/*\n * Public API Surface of ngp-material-rating\n */\n\nexport * from './lib/ngp-material-rating.component';\nexport * from './lib/ngp-material-rating.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}