office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
39 lines • 2.31 kB
JavaScript
import * as tslib_1 from "tslib";
import * as React from 'react';
import { BaseComponent, css, DelayedRender } from '../../Utilities';
import { SpinnerType, SpinnerSize } from './Spinner.types';
import * as stylesImport from './Spinner.scss';
var styles = stylesImport;
var Spinner = /** @class */ (function (_super) {
tslib_1.__extends(Spinner, _super);
function Spinner() {
return _super !== null && _super.apply(this, arguments) || this;
}
Spinner.prototype.render = function () {
var _a = this.props, type = _a.type, size = _a.size, label = _a.label, className = _a.className, ariaLive = _a.ariaLive, ariaLabel = _a.ariaLabel; // TODO remove deprecated type property at >= 2.0.0
var statusMessage = ariaLabel || label;
return (React.createElement("div", { className: css('ms-Spinner', styles.root, className) },
React.createElement("div", { className: css('ms-Spinner-circle', styles.circle, (_b = {},
_b['ms-Spinner--xSmall ' + styles.circleIsXSmall] = size === SpinnerSize.xSmall,
_b['ms-Spinner--small ' + styles.circleIsSmall] = size === SpinnerSize.small,
_b['ms-Spinner--medium ' + styles.circleIsMedium] = size === SpinnerSize.medium,
_b['ms-Spinner--large ' + styles.circleIsLarge] = size === SpinnerSize.large,
_b['ms-Spinner--normal ' + styles.circleIsTypeMedium] = type === SpinnerType.normal,
_b['ms-Spinner--large ' + styles.circleIsTypeLarge] = type === SpinnerType.large // TODO remove deprecated value at >= 2.0.0
,
_b)) }),
label && React.createElement("div", { className: css('ms-Spinner-label', styles.label) }, label),
statusMessage &&
React.createElement("div", { role: 'status', "aria-live": ariaLive },
React.createElement(DelayedRender, null,
React.createElement("div", { className: styles.screenReaderOnly }, statusMessage)))));
var _b;
};
Spinner.defaultProps = {
size: SpinnerSize.medium,
ariaLive: 'polite'
};
return Spinner;
}(BaseComponent));
export { Spinner };
//# sourceMappingURL=Spinner.js.map