{"version":3,"file":"ui-vts-kit-ng-vts-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/ui-vts-kit-ng-vts-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';\nimport { BooleanInput } from '@ui-vts-kit/ng-vts/core/types';\nimport { InputBoolean } from '@ui-vts-kit/ng-vts/core/util';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: '[vts-rate-item]',\n  exportAs: 'vtsRateItem',\n  template: `\n    <div\n      class=\"vts-rate-star-second\"\n      (mouseover)=\"hoverRate(false); $event.stopPropagation()\"\n      (click)=\"clickRate(false)\"\n    >\n      <ng-template [ngTemplateOutlet]=\"character || defaultCharacter\"></ng-template>\n    </div>\n    <div\n      class=\"vts-rate-star-first\"\n      (mouseover)=\"hoverRate(true); $event.stopPropagation()\"\n      (click)=\"clickRate(true)\"\n    >\n      <ng-template [ngTemplateOutlet]=\"character || defaultCharacter\"></ng-template>\n    </div>\n\n    <ng-template #defaultCharacter>\n      <i vts-icon vtsType=\"star\"></i>\n    </ng-template>\n  `\n})\nexport class VtsRateItemComponent {\n  static ngAcceptInputType_allowHalf: BooleanInput;\n\n  @Input() character!: TemplateRef<void>;\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  OnChanges,\n  OnDestroy,\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 { VtsConfigKey, VtsConfigService, WithConfig } from '@ui-vts-kit/ng-vts/core/config';\nimport { BooleanInput, NgClassType, NumberInput } from '@ui-vts-kit/ng-vts/core/types';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { InputBoolean, InputNumber } from '@ui-vts-kit/ng-vts/core/util';\n\nconst VTS_CONFIG_MODULE_NAME: VtsConfigKey = 'rate';\n\n@Component({\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  selector: 'vts-rate',\n  exportAs: 'vtsRate',\n  preserveWhitespaces: false,\n  template: `\n    <ul\n      #ulElement\n      class=\"vts-rate\"\n      [class.vts-rate-disabled]=\"vtsDisabled\"\n      [class.vts-rate-rtl]=\"dir === 'rtl'\"\n      [ngClass]=\"classMap\"\n      (blur)=\"onBlur($event)\"\n      (focus)=\"onFocus($event)\"\n      (keydown)=\"onKeyDown($event); $event.preventDefault()\"\n      (mouseleave)=\"onRateLeave(); $event.stopPropagation()\"\n      [tabindex]=\"vtsDisabled ? -1 : 1\"\n    >\n      <li\n        *ngFor=\"let star of starArray; let i = index\"\n        class=\"vts-rate-star\"\n        [ngClass]=\"starStyleArray[i] || ''\"\n        vts-tooltip\n        [vtsTooltipTitle]=\"vtsTooltips[i]\"\n      >\n        <div\n          vts-rate-item\n          [allowHalf]=\"vtsAllowHalf\"\n          [character]=\"vtsCharacter\"\n          (itemHover)=\"onItemHover(i, $event)\"\n          (itemClick)=\"onItemClick(i, $event)\"\n        ></div>\n      </li>\n    </ul>\n  `,\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => VtsRateComponent),\n      multi: true\n    }\n  ]\n})\nexport class VtsRateComponent implements OnInit, OnDestroy, ControlValueAccessor, OnChanges {\n  readonly _vtsModuleName: VtsConfigKey = VTS_CONFIG_MODULE_NAME;\n\n  static ngAcceptInputType_vtsAllowClear: BooleanInput;\n  static ngAcceptInputType_vtsAllowHalf: BooleanInput;\n  static ngAcceptInputType_vtsDisabled: BooleanInput;\n  static ngAcceptInputType_vtsAutoFocus: BooleanInput;\n  static ngAcceptInputType_vtsCount: NumberInput;\n\n  @ViewChild('ulElement', { static: false }) private ulElement?: ElementRef;\n\n  @Input() @WithConfig() @InputBoolean() vtsAllowClear: boolean = true;\n  @Input() @WithConfig() @InputBoolean() vtsAllowHalf: boolean = false;\n  @Input() @InputBoolean() vtsDisabled: boolean = false;\n  @Input() @InputBoolean() vtsAutoFocus: boolean = false;\n  @Input() vtsCharacter!: TemplateRef<void>;\n  @Input() @InputNumber() vtsCount: number = 5;\n  @Input() vtsTooltips: string[] = [];\n  @Output() readonly vtsOnBlur = new EventEmitter<FocusEvent>();\n  @Output() readonly vtsOnFocus = new EventEmitter<FocusEvent>();\n  @Output() readonly vtsOnHoverChange = new EventEmitter<number>();\n  @Output() readonly vtsOnKeyDown = new EventEmitter<KeyboardEvent>();\n\n  classMap: NgClassType = {};\n  starArray: number[] = [];\n  starStyleArray: NgClassType[] = [];\n  dir: Direction = 'ltr';\n\n  private readonly destroy$ = new Subject<void>();\n  private hasHalf = false;\n  private hoverValue = 0;\n  private isFocused = false;\n  private _value = 0;\n\n  get vtsValue(): number {\n    return this._value;\n  }\n\n  set vtsValue(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 vtsConfigService: VtsConfigService,\n    private renderer: Renderer2,\n    private cdr: ChangeDetectorRef,\n    @Optional() private directionality: Directionality\n  ) {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    const { vtsAutoFocus, vtsCount, vtsValue } = changes;\n\n    if (vtsAutoFocus && !vtsAutoFocus.isFirstChange()) {\n      const el = this.ulElement!.nativeElement;\n      if (this.vtsAutoFocus && !this.vtsDisabled) {\n        this.renderer.setAttribute(el, 'autofocus', 'autofocus');\n      } else {\n        this.renderer.removeAttribute(el, 'autofocus');\n      }\n    }\n\n    if (vtsCount) {\n      this.updateStarArray();\n    }\n\n    if (vtsValue) {\n      this.updateStarStyle();\n    }\n  }\n\n  ngOnInit(): void {\n    this.vtsConfigService\n      .getConfigChangeEventForComponent(VTS_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\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  onItemClick(index: number, isHalf: boolean): void {\n    if (this.vtsDisabled) {\n      return;\n    }\n\n    this.hoverValue = index + 1;\n\n    const actualValue = isHalf ? index + 0.5 : index + 1;\n\n    if (this.vtsValue === actualValue) {\n      if (this.vtsAllowClear) {\n        this.vtsValue = 0;\n        this.onChange(this.vtsValue);\n      }\n    } else {\n      this.vtsValue = actualValue;\n      this.onChange(this.vtsValue);\n    }\n\n    this.updateStarStyle();\n  }\n\n  onItemHover(index: number, isHalf: boolean): void {\n    if (this.vtsDisabled || (this.hoverValue === index + 1 && isHalf === this.hasHalf)) {\n      return;\n    }\n\n    this.hoverValue = index + 1;\n    this.hasHalf = isHalf;\n    this.vtsOnHoverChange.emit(this.hoverValue);\n\n    this.updateStarStyle();\n  }\n\n  onRateLeave(): void {\n    this.hasHalf = !Number.isInteger(this.vtsValue);\n    this.hoverValue = Math.ceil(this.vtsValue);\n\n    this.updateStarStyle();\n  }\n\n  onFocus(e: FocusEvent): void {\n    this.isFocused = true;\n    this.vtsOnFocus.emit(e);\n  }\n\n  onBlur(e: FocusEvent): void {\n    this.isFocused = false;\n    this.vtsOnBlur.emit(e);\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.vtsValue;\n\n    if (e.keyCode === RIGHT_ARROW && this.vtsValue < this.vtsCount) {\n      this.vtsValue += this.vtsAllowHalf ? 0.5 : 1;\n    } else if (e.keyCode === LEFT_ARROW && this.vtsValue > 0) {\n      this.vtsValue -= this.vtsAllowHalf ? 0.5 : 1;\n    }\n\n    if (oldVal !== this.vtsValue) {\n      this.onChange(this.vtsValue);\n      this.vtsOnKeyDown.emit(e);\n      this.updateStarStyle();\n      this.cdr.markForCheck();\n    }\n  }\n\n  private updateStarArray(): void {\n    this.starArray = Array(this.vtsCount)\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 = 'vts-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.vtsValue = value || 0;\n    this.updateStarArray();\n    this.cdr.markForCheck();\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.vtsDisabled = 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 { VtsIconModule } from '@ui-vts-kit/ng-vts/icon';\nimport { VtsToolTipModule } from '@ui-vts-kit/ng-vts/tooltip';\n\nimport { VtsRateItemComponent } from './rate-item.component';\nimport { VtsRateComponent } from './rate.component';\n\n@NgModule({\n  exports: [VtsRateComponent],\n  declarations: [VtsRateComponent, VtsRateItemComponent],\n  imports: [BidiModule, CommonModule, VtsIconModule, VtsToolTipModule]\n})\nexport class VtsRateModule {}\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","i5.VtsRateItemComponent"],"mappings":"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"}