UNPKG

ngx-bar-rating

Version:
63 lines (62 loc) 3.44 kB
import { Signal, InputSignal, ModelSignal, WritableSignal, OutputEmitterRef, InputSignalWithTransform } from '@angular/core'; import { ControlValueAccessor, Validator, UntypedFormControl } from '@angular/forms'; import { ActiveRating, FractionRating, InactiveRating } from './custom-rating'; import { BarRatingOptions } from './bar-rating.model'; import * as i0 from "@angular/core"; declare enum BarRatingUnitStateEnum { active = "active", inactive = "inactive", selected = "selected", fraction = "fraction" } type BarRatingUnitState = `${BarRatingUnitStateEnum}`; export declare class BarRating implements ControlValueAccessor, Validator { readonly defaultOptions: BarRatingOptions; onChange: OnChangeFn<number>; onTouched: OnTouchedFn; readonly UNITS: typeof BarRatingUnitStateEnum; disabled: boolean; /** Current rating. Can be a decimal value like 3.14 */ rate: ModelSignal<number>; /** Maximal rating that can be given using this widget. */ max: InputSignalWithTransform<number, number | string>; /** A flag indicating if rating can be updated. */ readonly: InputSignalWithTransform<boolean, string | boolean>; /** Set the theme */ theme: InputSignal<string>; /** Show rating title */ showText: InputSignalWithTransform<boolean, string | boolean>; /** Replace rate value with a title */ titles: InputSignal<string[]>; /** A flag indicating if rating is required for form validation. */ required: InputSignalWithTransform<boolean, string | boolean>; tabIndex: InputSignalWithTransform<number, number | string>; hoveredIndex: WritableSignal<number>; contexts: Signal<BarRatingUnitState[]>; ratingText: Signal<string | number>; /** * A stream that forwards a bar rating click since clicks are not propagated */ barClick: OutputEmitterRef<number>; customActiveRating: Signal<ActiveRating>; customInActiveRating: Signal<InactiveRating>; customFractionRating: Signal<FractionRating>; updateRating(value: number): void; /** * This is the initial value set to the component */ writeValue(value: number): void; validate(c: UntypedFormControl): { required: boolean; } | null; registerOnChange(fn: OnChangeFn<number>): void; registerOnTouched(fn: () => OnTouchedFn): void; setDisabledState(isDisabled: boolean): void; handleKeydown(event: KeyboardEvent): void; handleClick(event: MouseEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration<BarRating, never>; static ɵcmp: i0.ɵɵComponentDeclaration<BarRating, "bar-rating", never, { "rate": { "alias": "rate"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "showText": { "alias": "showText"; "required": false; "isSignal": true; }; "titles": { "alias": "titles"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; }, { "rate": "rateChange"; "barClick": "barClick"; }, ["customActiveRating", "customInActiveRating", "customFractionRating"], never, true, never>; } type OnChangeFn<T> = (value: T) => void; type OnTouchedFn = () => void; export {};