UNPKG

8.32 kBSource Map (JSON)View Raw
1{"version":3,"file":"ngx-bootstrap-rating.umd.js","sources":["../../../../src/rating/rating.config.ts","../../../../src/rating/rating.component.ts","../../../../src/rating/rating.module.ts","../../../../src/rating/ngx-bootstrap-rating.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n/** Default values provider for rating */\n@Injectable({\n providedIn: 'root'\n})\nexport class RatingConfig {\n /** aria label for rating */\n ariaLabel = 'rating';\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n HostListener,\n Input,\n OnInit,\n Output,\n Provider,\n TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { RatingResults } from './models';\nimport { RatingConfig } from './rating.config';\n\nexport const RATING_CONTROL_VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RatingComponent),\n multi: true\n};\n\n@Component({\n selector: 'rating',\n templateUrl: './rating.component.html',\n providers: [RATING_CONTROL_VALUE_ACCESSOR],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class RatingComponent implements ControlValueAccessor, OnInit {\n /** number of icons */\n @Input() max = 5;\n /** if true will not react on any user events */\n @Input() readonly = false;\n /** array of icons titles, default: ([\"one\", \"two\", \"three\", \"four\", \"five\"]) */\n @Input() titles: string[] = [];\n /** custom template for icons */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() customTemplate?: TemplateRef<any>;\n /** fired when icon selected, $event:number equals to selected rating */\n @Output() onHover = new EventEmitter<number>();\n /** fired when icon selected, $event:number equals to previous rating value */\n @Output() onLeave = new EventEmitter<number>();\n\n onChange = Function.prototype;\n onTouched = Function.prototype;\n /** aria label for rating */\n ariaLabel = 'rating';\n range: RatingResults[] = [];\n value = 0;\n protected preValue?: number;\n\n constructor(private changeDetection: ChangeDetectorRef, config: RatingConfig) {\n Object.assign(this, config);\n }\n\n @HostListener('keydown', ['$event'])\n onKeydown(event: KeyboardEvent): void {\n if ([37, 38, 39, 40].indexOf(event.which) === -1) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n const sign = event.which === 38 || event.which === 39 ? 1 : -1;\n this.rate(this.value + sign);\n }\n\n ngOnInit(): void {\n this.max = this.max || 5;\n this.titles =\n typeof this.titles !== 'undefined' && this.titles.length > 0\n ? this.titles\n : [];\n this.range = this.buildTemplateObjects(this.max);\n }\n\n // model -> view\n writeValue(value: number): void {\n if (value % 1 !== value) {\n this.value = Math.round(value);\n this.preValue = value;\n this.changeDetection.markForCheck();\n\n return;\n }\n\n this.preValue = value;\n this.value = value;\n this.changeDetection.markForCheck();\n }\n\n enter(value: number): void {\n if (!this.readonly) {\n this.value = value;\n this.changeDetection.markForCheck();\n this.onHover.emit(value);\n }\n }\n\n reset(): void {\n if (typeof this.preValue === 'number') {\n this.value = Math.round(this.preValue);\n this.changeDetection.markForCheck();\n this.onLeave.emit(this.value);\n }\n }\n\n registerOnChange(fn: (_: number) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n rate(value: number): void {\n if (!this.readonly && this.range\n && value >= 0 && value <= this.range.length) {\n this.writeValue(value);\n this.onChange(value);\n }\n }\n\n protected buildTemplateObjects(max: number): RatingResults[] {\n const result: RatingResults[] = [];\n\n for (let i = 0; i < max; i++) {\n result.push({\n index: i,\n title: this.titles[i] || i + 1\n });\n }\n\n return result;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\n\nimport { RatingComponent } from './rating.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [RatingComponent],\n exports: [RatingComponent]\n})\nexport class RatingModule {\n static forRoot(): ModuleWithProviders<RatingModule> {\n return {\n ngModule: RatingModule,\n providers: []\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {RATING_CONTROL_VALUE_ACCESSOR as ɵa} from './rating.component';"],"names":["Injectable","NG_VALUE_ACCESSOR","forwardRef","EventEmitter","Component","ChangeDetectionStrategy","ChangeDetectorRef","Input","Output","HostListener","NgModule","CommonModule"],"mappings":"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"}
\No newline at end of file