UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Microsoft 365.

133 lines (132 loc) 3.71 kB
import * as React from 'react'; import { IStyle, ITheme, IProcessedStyleSet } from '../../Styling'; import { IRefObject, IRenderFunction, IStyleFunctionOrObject } from '../../Utilities'; /** * {@docCategory Rating} */ export interface IRating { } export interface IRatingStarProps extends React.AllHTMLAttributes<HTMLElement> { fillPercentage: number; disabled?: boolean; readOnly?: boolean; classNames: IProcessedStyleSet<IRatingStyles>; icon?: string; starNum?: number; } /** * Rating component props. * {@docCategory Rating} */ export interface IRatingProps extends React.AllHTMLAttributes<HTMLElement> { /** * Optional callback to access the IRating interface. Use this instead of ref for accessing * the public methods and properties of the component. */ componentRef?: IRefObject<IRating>; /** * Selected rating, has to be an integer between min and max */ rating?: number; /** * Minimum rating, defaults to 1, has to be \>= 0 * @deprecated No longer used. */ min?: number; /** * Maximum rating, defaults to 5, has to be \>= min */ max?: number; /** * Allow the rating value to be set to 0 instead of a minimum of 1. */ allowZeroStars?: boolean; /** * Custom icon * @defaultvalue FavoriteStarFill */ icon?: string; /** * Custom icon for unselected rating elements. * @defaultvalue FavoriteStar */ unselectedIcon?: string; /** * Optional custom renderer for the star component. */ onRenderStar?: IRenderFunction<IRatingStarProps>; /** * Size of rating, defaults to small */ size?: RatingSize; /** * Callback issued when the rating changes. */ onChange?: (event: React.FocusEvent<HTMLElement>, rating?: number) => void; /** * @deprecated Use `onChange` instead. */ onChanged?: (rating: number) => void; /** * Optional label format for a rating star that will be read by screen readers. * Can be used like "\{0\} of \{1\} stars selected", * where \{0\} will be substituted by the current rating and \{1\} will be substituted by the max rating. * @defaultvalue empty string. */ ariaLabelFormat?: string; /** * Deprecated: Optional id of label describing this instance of Rating. * @deprecated Use `getAriaLabel` instead. */ ariaLabelId?: string; /** * Optional flag to mark rating control as readOnly */ readOnly?: boolean; getAriaLabel?: (rating: number, max: number) => string; /** * Optional aria-label for rating control. * If rating control is readOnly, it is recommended to provide a getAriaLabel prop instead * since otherwise the current rating value will not be read. */ ariaLabel?: string; /** * Call to provide customized styling that will layer on top of the variant rules. */ styles?: IStyleFunctionOrObject<IRatingStyleProps, IRatingStyles>; /** * Theme (provided through customization.) */ theme?: ITheme; } /** * {@docCategory Rating} */ export declare enum RatingSize { Small = 0, Large = 1 } /** * {@docCategory Rating} */ export interface IRatingStyleProps { disabled?: boolean; readOnly?: boolean; theme: ITheme; } /** * {@docCategory Rating} */ export interface IRatingStyles { root: IStyle; ratingStar: IStyle; ratingStarBack: IStyle; ratingStarFront: IStyle; ratingButton: IStyle; ratingStarIsSmall: IStyle; ratingStarIsLarge: IStyle; rootIsSmall: IStyle; rootIsLarge: IStyle; labelText: IStyle; ratingFocusZone: IStyle; }