{"version":3,"file":"ng-zorro-antd-rate.mjs","sources":["../../components/rate/rate-item.component.ts","../../components/rate/rate.component.ts","../../components/rate/rate.module.ts","../../components/rate/public-api.ts","../../components/rate/ng-zorro-antd-rate.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\n\nimport { BooleanInput } from 'ng-zorro-antd/core/types';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: '[nz-rate-item]',\n  exportAs: 'nzRateItem',\n  template: `\n    <div\n      class=\"ant-rate-star-second\"\n      (mouseover)=\"hoverRate(false); $event.stopPropagation()\"\n      (click)=\"clickRate(false)\"\n    >\n      <ng-template\n        [ngTemplateOutlet]=\"character || defaultCharacter\"\n        [ngTemplateOutletContext]=\"{ $implicit: index }\"\n      ></ng-template>\n    </div>\n    <div class=\"ant-rate-star-first\" (mouseover)=\"hoverRate(true); $event.stopPropagation()\" (click)=\"clickRate(true)\">\n      <ng-template\n        [ngTemplateOutlet]=\"character || defaultCharacter\"\n        [ngTemplateOutletContext]=\"{ $implicit: index }\"\n      ></ng-template>\n    </div>\n\n    <ng-template #defaultCharacter>\n      <span nz-icon nzType=\"star\" nzTheme=\"fill\"></span>\n    </ng-template>\n  `\n})\nexport class NzRateItemComponent {\n  static ngAcceptInputType_allowHalf: BooleanInput;\n\n  @Input() character!: TemplateRef<void>;\n  @Input() index = 0;\n  @Input() @InputBoolean() allowHalf: boolean = false;\n  @Output() readonly itemHover = new EventEmitter<boolean>();\n  @Output() readonly itemClick = new EventEmitter<boolean>();\n\n  hoverRate(isHalf: boolean): void {\n    this.itemHover.next(isHalf && this.allowHalf);\n  }\n\n  clickRate(isHalf: boolean): void {\n    this.itemClick.next(isHalf && this.allowHalf);\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Direction, Directionality } from '@angular/cdk/bidi';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  forwardRef,\n  Input,\n  NgZone,\n  OnChanges,\n  OnInit,\n  Optional,\n  Output,\n  Renderer2,\n  SimpleChanges,\n  TemplateRef,\n  ViewChild,\n  ViewEncapsulation\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { fromEvent } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { NzConfigKey, NzConfigService, WithConfig } from 'ng-zorro-antd/core/config';\nimport { NzDestroyService } from 'ng-zorro-antd/core/services';\nimport { BooleanInput, NgClassType, NumberInput } from 'ng-zorro-antd/core/types';\nimport { InputBoolean, InputNumber } from 'ng-zorro-antd/core/util';\n\nconst NZ_CONFIG_MODULE_NAME: NzConfigKey = 'rate';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'nz-rate',\n  exportAs: 'nzRate',\n  preserveWhitespaces: false,\n  template: `\n    <ul\n      #ulElement\n      class=\"ant-rate\"\n      [class.ant-rate-disabled]=\"nzDisabled\"\n      [class.ant-rate-rtl]=\"dir === 'rtl'\"\n      [ngClass]=\"classMap\"\n      (keydown)=\"onKeyDown($event); $event.preventDefault()\"\n      (mouseleave)=\"onRateLeave(); $event.stopPropagation()\"\n      [tabindex]=\"nzDisabled ? -1 : 1\"\n    >\n      <li\n        *ngFor=\"let star of starArray; let i = index\"\n        class=\"ant-rate-star\"\n        [ngClass]=\"starStyleArray[i] || ''\"\n        nz-tooltip\n        [nzTooltipTitle]=\"nzTooltips[i]\"\n      >\n        <div\n          nz-rate-item\n          [allowHalf]=\"nzAllowHalf\"\n          [character]=\"nzCharacter\"\n          [index]=\"i\"\n          (itemHover)=\"onItemHover(i, $event)\"\n          (itemClick)=\"onItemClick(i, $event)\"\n        ></div>\n      </li>\n    </ul>\n  `,\n  providers: [\n    NzDestroyService,\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => NzRateComponent),\n      multi: true\n    }\n  ]\n})\nexport class NzRateComponent implements OnInit, ControlValueAccessor, OnChanges {\n  readonly _nzModuleName: NzConfigKey = NZ_CONFIG_MODULE_NAME;\n\n  static ngAcceptInputType_nzAllowClear: BooleanInput;\n  static ngAcceptInputType_nzAllowHalf: BooleanInput;\n  static ngAcceptInputType_nzDisabled: BooleanInput;\n  static ngAcceptInputType_nzAutoFocus: BooleanInput;\n  static ngAcceptInputType_nzCount: NumberInput;\n\n  @ViewChild('ulElement', { static: true }) ulElement!: ElementRef<HTMLUListElement>;\n\n  @Input() @WithConfig() @InputBoolean() nzAllowClear: boolean = true;\n  @Input() @WithConfig() @InputBoolean() nzAllowHalf: boolean = false;\n  @Input() @InputBoolean() nzDisabled: boolean = false;\n  @Input() @InputBoolean() nzAutoFocus: boolean = false;\n  @Input() nzCharacter!: TemplateRef<void>;\n  @Input() @InputNumber() nzCount: number = 5;\n  @Input() nzTooltips: string[] = [];\n  @Output() readonly nzOnBlur = new EventEmitter<FocusEvent>();\n  @Output() readonly nzOnFocus = new EventEmitter<FocusEvent>();\n  @Output() readonly nzOnHoverChange = new EventEmitter<number>();\n  @Output() readonly nzOnKeyDown = new EventEmitter<KeyboardEvent>();\n\n  classMap: NgClassType = {};\n  starArray: number[] = [];\n  starStyleArray: NgClassType[] = [];\n  dir: Direction = 'ltr';\n\n  private hasHalf = false;\n  private hoverValue = 0;\n  private isFocused = false;\n  private _value = 0;\n\n  get nzValue(): number {\n    return this._value;\n  }\n\n  set nzValue(input: number) {\n    if (this._value === input) {\n      return;\n    }\n\n    this._value = input;\n    this.hasHalf = !Number.isInteger(input);\n    this.hoverValue = Math.ceil(input);\n  }\n\n  constructor(\n    public nzConfigService: NzConfigService,\n    private ngZone: NgZone,\n    private renderer: Renderer2,\n    private cdr: ChangeDetectorRef,\n    @Optional() private directionality: Directionality,\n    private destroy$: NzDestroyService\n  ) {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { nzAutoFocus, nzCount, nzValue } = changes;\n\n    if (nzAutoFocus && !nzAutoFocus.isFirstChange()) {\n      const el = this.ulElement.nativeElement;\n      if (this.nzAutoFocus && !this.nzDisabled) {\n        this.renderer.setAttribute(el, 'autofocus', 'autofocus');\n      } else {\n        this.renderer.removeAttribute(el, 'autofocus');\n      }\n    }\n\n    if (nzCount) {\n      this.updateStarArray();\n    }\n\n    if (nzValue) {\n      this.updateStarStyle();\n    }\n  }\n\n  ngOnInit(): void {\n    this.nzConfigService\n      .getConfigChangeEventForComponent(NZ_CONFIG_MODULE_NAME)\n      .pipe(takeUntil(this.destroy$))\n      .subscribe(() => this.cdr.markForCheck());\n\n    this.directionality.change.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\n      this.dir = direction;\n      this.cdr.detectChanges();\n    });\n\n    this.dir = this.directionality.value;\n\n    this.ngZone.runOutsideAngular(() => {\n      fromEvent<FocusEvent>(this.ulElement.nativeElement, 'focus')\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(event => {\n          this.isFocused = true;\n          if (this.nzOnFocus.observers.length) {\n            this.ngZone.run(() => this.nzOnFocus.emit(event));\n          }\n        });\n\n      fromEvent<FocusEvent>(this.ulElement.nativeElement, 'blur')\n        .pipe(takeUntil(this.destroy$))\n        .subscribe(event => {\n          this.isFocused = false;\n          if (this.nzOnBlur.observers.length) {\n            this.ngZone.run(() => this.nzOnBlur.emit(event));\n          }\n        });\n    });\n  }\n\n  onItemClick(index: number, isHalf: boolean): void {\n    if (this.nzDisabled) {\n      return;\n    }\n\n    this.hoverValue = index + 1;\n\n    const actualValue = isHalf ? index + 0.5 : index + 1;\n\n    if (this.nzValue === actualValue) {\n      if (this.nzAllowClear) {\n        this.nzValue = 0;\n        this.onChange(this.nzValue);\n      }\n    } else {\n      this.nzValue = actualValue;\n      this.onChange(this.nzValue);\n    }\n\n    this.updateStarStyle();\n  }\n\n  onItemHover(index: number, isHalf: boolean): void {\n    if (this.nzDisabled || (this.hoverValue === index + 1 && isHalf === this.hasHalf)) {\n      return;\n    }\n\n    this.hoverValue = index + 1;\n    this.hasHalf = isHalf;\n    this.nzOnHoverChange.emit(this.hoverValue);\n\n    this.updateStarStyle();\n  }\n\n  onRateLeave(): void {\n    this.hasHalf = !Number.isInteger(this.nzValue);\n    this.hoverValue = Math.ceil(this.nzValue);\n\n    this.updateStarStyle();\n  }\n\n  focus(): void {\n    this.ulElement.nativeElement.focus();\n  }\n\n  blur(): void {\n    this.ulElement.nativeElement.blur();\n  }\n\n  onKeyDown(e: KeyboardEvent): void {\n    const oldVal = this.nzValue;\n\n    if (e.keyCode === RIGHT_ARROW && this.nzValue < this.nzCount) {\n      this.nzValue += this.nzAllowHalf ? 0.5 : 1;\n    } else if (e.keyCode === LEFT_ARROW && this.nzValue > 0) {\n      this.nzValue -= this.nzAllowHalf ? 0.5 : 1;\n    }\n\n    if (oldVal !== this.nzValue) {\n      this.onChange(this.nzValue);\n      this.nzOnKeyDown.emit(e);\n      this.updateStarStyle();\n      this.cdr.markForCheck();\n    }\n  }\n\n  private updateStarArray(): void {\n    this.starArray = Array(this.nzCount)\n      .fill(0)\n      .map((_, i) => i);\n\n    this.updateStarStyle();\n  }\n\n  private updateStarStyle(): void {\n    this.starStyleArray = this.starArray.map(i => {\n      const prefix = 'ant-rate-star';\n      const value = i + 1;\n      return {\n        [`${prefix}-full`]: value < this.hoverValue || (!this.hasHalf && value === this.hoverValue),\n        [`${prefix}-half`]: this.hasHalf && value === this.hoverValue,\n        [`${prefix}-active`]: this.hasHalf && value === this.hoverValue,\n        [`${prefix}-zero`]: value > this.hoverValue,\n        [`${prefix}-focused`]: this.hasHalf && value === this.hoverValue && this.isFocused\n      };\n    });\n  }\n\n  writeValue(value: number | null): void {\n    this.nzValue = value || 0;\n    this.updateStarArray();\n    this.cdr.markForCheck();\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.nzDisabled = isDisabled;\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  onChange: (value: number) => void = () => null;\n  onTouched: () => void = () => null;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { BidiModule } from '@angular/cdk/bidi';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\n\nimport { NzRateItemComponent } from './rate-item.component';\nimport { NzRateComponent } from './rate.component';\n\n@NgModule({\n  exports: [NzRateComponent],\n  declarations: [NzRateComponent, NzRateItemComponent],\n  imports: [BidiModule, CommonModule, NzIconModule, NzToolTipModule]\n})\nexport class NzRateModule {}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './rate.component';\nexport * from './rate.module';\nexport * from './rate-item.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i6.NzRateItemComponent"],"mappings":"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"}