office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
40 lines • 2.28 kB
JavaScript
import * as tslib_1 from "tslib";
import * as React from 'react';
import { SpinnerType, SpinnerSize } from './Spinner.types';
import { BaseComponent, 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, styles = _a.styles, 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(styles, {
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'
};
return SpinnerBase;
}(BaseComponent));
export { SpinnerBase };
//# sourceMappingURL=Spinner.base.js.map