UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

44 lines 2.43 kB
import * as tslib_1 from "tslib"; import * as React from 'react'; import { SpinnerType, SpinnerSize } from './Spinner.types'; import { BaseComponent, customizable, classNamesFunction, DelayedRender, getNativeProps, divProperties } from '../../Utilities'; var getClassNames = classNamesFunction(); var SpinnerBase = /** @class */ (function (_super) { tslib_1.__extends(SpinnerBase, _super); function SpinnerBase() { return _super !== null && _super.apply(this, arguments) || this; } SpinnerBase.prototype.render = function () { var _a = this.props, type = _a.type, size = _a.size, ariaLabel = _a.ariaLabel, ariaLive = _a.ariaLive, getStyles = _a.getStyles, label = _a.label, theme = _a.theme, className = _a.className; var statusMessage = ariaLabel || label; var nativeProps = getNativeProps(this.props, divProperties, ['size']); // SpinnerType is deprecated. If someone is still using this property, rather than putting the SpinnerType into the ISpinnerStyleProps, // we'll map SpinnerType to its equivalent SpinnerSize and pass that in. Once SpinnerType finally goes away we should delete this. var styleSize = size; if (styleSize === undefined && type !== undefined) { styleSize = type === SpinnerType.large ? SpinnerSize.large : SpinnerSize.medium; } var classNames = getClassNames(getStyles, { theme: theme, size: styleSize, className: className }); return (React.createElement("div", tslib_1.__assign({}, nativeProps, { className: classNames.root }), React.createElement("div", { className: classNames.circle }), label && React.createElement("div", { className: classNames.label }, label), statusMessage && React.createElement("div", { role: 'status', "aria-live": ariaLive }, React.createElement(DelayedRender, null, React.createElement("div", { className: classNames.screenReaderText }, statusMessage))))); }; SpinnerBase.defaultProps = { size: SpinnerSize.medium, ariaLive: 'polite' }; SpinnerBase = tslib_1.__decorate([ customizable('Spinner', ['theme']) ], SpinnerBase); return SpinnerBase; }(BaseComponent)); export { SpinnerBase }; //# sourceMappingURL=Spinner.base.js.map