tgui-angular
Version:
🚀 Angular UI library for Telegram Web Apps with modern components and theming support | 💼 Author is open to work opportunities | 📧 Contact: a.blagovestnov@gmail.com | 💬 Telegram: @ablagovestnov
44 lines (43 loc) • 2.17 kB
TypeScript
import * as i0 from "@angular/core";
export interface RatingProps {
/** The precision of the rating, determining the fraction of the star that can be selected. */
precision?: 0.1 | 0.2 | 0.25 | 0.5 | 1;
/** The maximum rating value, representing the number of icons displayed. */
max?: number;
/** The current value of the rating. */
value?: number;
/** Callback function invoked when the rating value changes. */
onChange?: (value: number) => void;
}
/**
* Renders a customizable rating component, allowing users to provide a rating by selecting a value using stars.
* Supports fractional ratings through precision control.
*
* @example
* <tgui-rating
* [(ratingValue)]="userRating"
* [precision]="0.5"
* [max]="5">
* </tgui-rating>
*/
export declare class RatingComponent {
private elementRef;
/** The precision of the rating, determining the fraction of the star that can be selected. */
precision: import("@angular/core").InputSignal<1 | 0.1 | 0.2 | 0.25 | 0.5>;
/** The maximum rating value, representing the number of icons displayed. */
max: import("@angular/core").InputSignal<number>;
/** The current value of the rating using Angular's two-way binding with model(). */
ratingValue: import("@angular/core").ModelSignal<number>;
normalizedPrecision: import("@angular/core").Signal<number>;
elementClass: string;
elementPickedClass: string;
inputClass: string;
constructor();
getKeys(): number[];
getElementsWithPrecision(): number[];
getPickedElementWidth(elementNumber: number): number | undefined;
isInputChecked(key: number, element: number): boolean;
onRatingChange(value: number): void;
static ɵfac: i0.ɵɵFactoryDeclaration<RatingComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<RatingComponent, "tgui-rating", never, { "precision": { "alias": "precision"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "ratingValue": { "alias": "ratingValue"; "required": false; "isSignal": true; }; }, { "ratingValue": "ratingValueChange"; }, never, never, true, never>;
}