let { Rating, RatingSize, getTheme, createTheme, ITheme, Fabric } = window.Fabric; class RatingBasicExample extends React.Component< {}, { rating?: number; largeStarRating?: number; smallStarRating?: number; tenStarRating?: number; themedStarRating?: number; } > { private _customTheme: ITheme; constructor(props: {}) { super(props); this.state = { largeStarRating: undefined, smallStarRating: 3, tenStarRating: undefined, themedStarRating: undefined }; this._customTheme = createTheme(getTheme()); this._customTheme.semanticColors.bodySubtext = '#DFDFDF'; this._customTheme.semanticColors.bodyTextChecked = '#1E9FE8'; } // tslint:disable:jsx-no-lambda public render(): JSX.Element { return (
Large Stars: console.log('onFocus called')} onBlur={() => console.log('onBlur called')} ariaLabelFormat={'{0} of {1} stars selected'} /> Small Stars console.log('onFocus called')} onBlur={() => console.log('onBlur called')} ariaLabelFormat={'{0} of {1} stars selected'} /> 10 Small Stars console.log('onFocus called')} onBlur={() => console.log('onBlur called')} ariaLabelFormat={'{0} of {1} stars selected'} /> Disabled: console.log('onFocus called')} onBlur={() => console.log('onBlur called')} ariaLabelFormat={'{0} of {1} stars selected'} /> Half star in readOnly mode: Themed star console.log('onFocus called')} onBlur={() => console.log('onBlur called')} ariaLabelFormat={'{0} of {1} stars selected'} theme={this._customTheme} />
); } private _onLargeStarChange = (ev: React.FocusEvent, rating: number): void => { this.setState({ largeStarRating: rating }); }; private _onSmallStarChange = (ev: React.FocusEvent, rating: number): void => { this.setState({ smallStarRating: rating }); }; private _onTenStarChange = (ev: React.FocusEvent, rating: number): void => { this.setState({ tenStarRating: rating }); }; private _onThemedStarChange = (ev: React.FocusEvent, rating: number): void => { this.setState({ themedStarRating: rating }); }; private _getRatingComponentAriaLabel(rating: number, maxRating: number): string { return `Rating value is ${rating} of ${maxRating}`; } } ReactDOM.render(, document.getElementById('content'));