office-ui-fabric-react
Version:
Reusable React components for building experiences for Microsoft 365.
133 lines (132 loc) • 3.71 kB
TypeScript
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;
}