wix-style-react
Version:
164 lines (125 loc) • 7.74 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireDefault(require("react"));
var _circularProgressBar = require("wix-ui-core/dist/src/components/circular-progress-bar");
var _CircleLoaderCheck = _interopRequireDefault(require("wix-ui-icons-common/system/CircleLoaderCheck"));
var _CircleLoaderCheckSmall = _interopRequireDefault(require("wix-ui-icons-common/system/CircleLoaderCheckSmall"));
var _FormFieldError = _interopRequireDefault(require("wix-ui-icons-common/system/FormFieldError"));
var _FormFieldErrorSmall = _interopRequireDefault(require("wix-ui-icons-common/system/FormFieldErrorSmall"));
var _Tooltip = _interopRequireDefault(require("../Tooltip"));
var _ThemeProviderConsumerBackwardCompatible = require("../ThemeProvider/ThemeProviderConsumerBackwardCompatible");
var _CircularProgressBarSt = require("./CircularProgressBar.st.css");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _constants = require("./constants");
var _excluded = ["light", "size", "skin", "label", "className"];
var _sizeToSuccessIcon, _sizeToErrorIcon;
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
var sizeToSuccessIcon = (_sizeToSuccessIcon = {}, (0, _defineProperty2["default"])(_sizeToSuccessIcon, _constants.Size.small, _CircleLoaderCheckSmall["default"]), (0, _defineProperty2["default"])(_sizeToSuccessIcon, _constants.Size.medium, _CircleLoaderCheck["default"]), (0, _defineProperty2["default"])(_sizeToSuccessIcon, _constants.Size.large, _CircleLoaderCheck["default"]), _sizeToSuccessIcon);
var sizeToErrorIcon = (_sizeToErrorIcon = {}, (0, _defineProperty2["default"])(_sizeToErrorIcon, _constants.Size.small, /*#__PURE__*/_react["default"].createElement(_FormFieldErrorSmall["default"], null)), (0, _defineProperty2["default"])(_sizeToErrorIcon, _constants.Size.medium, /*#__PURE__*/_react["default"].createElement(_FormFieldError["default"], null)), (0, _defineProperty2["default"])(_sizeToErrorIcon, _constants.Size.large, /*#__PURE__*/_react["default"].createElement(_FormFieldError["default"], null)), _sizeToErrorIcon);
var CircularProgressBar = /*#__PURE__*/function (_React$PureComponent) {
(0, _inherits2["default"])(CircularProgressBar, _React$PureComponent);
var _super = _createSuper(CircularProgressBar);
function CircularProgressBar() {
(0, _classCallCheck2["default"])(this, CircularProgressBar);
return _super.apply(this, arguments);
}
(0, _createClass2["default"])(CircularProgressBar, [{
key: "_renderSuccessIcon",
value: function _renderSuccessIcon(size) {
return /*#__PURE__*/_react["default"].createElement(_ThemeProviderConsumerBackwardCompatible.ThemeProviderConsumerBackwardCompatible, {
defaultIcons: {
CircularProgressBar: sizeToSuccessIcon
}
}, function (_ref) {
var icons = _ref.icons;
var IconToRender = icons.CircularProgressBar[size];
return /*#__PURE__*/_react["default"].createElement(IconToRender, null);
});
}
}, {
key: "_renderProgressBar",
value: function _renderProgressBar() {
var _this$props = this.props,
light = _this$props.light,
size = _this$props.size,
skin = _this$props.skin,
label = _this$props.label,
className = _this$props.className,
otherProps = (0, _objectWithoutProperties2["default"])(_this$props, _excluded);
return /*#__PURE__*/_react["default"].createElement(_circularProgressBar.CircularProgressBar, (0, _extends2["default"])({
className: (0, _CircularProgressBarSt.st)(_CircularProgressBarSt.classes.progressBar, {
light: light,
size: size,
skin: skin
})
}, otherProps, {
label: label,
"data-hook": _constants.dataHooks.circularProgressBar,
size: _constants.sizesMap[size],
"data-size": size,
"data-skin": skin,
successIcon: this._renderSuccessIcon(size),
errorIcon: sizeToErrorIcon[size]
}));
}
}, {
key: "render",
value: function render() {
var _this$props2 = this.props,
dataHook = _this$props2.dataHook,
error = _this$props2.error,
errorMessage = _this$props2.errorMessage,
className = _this$props2.className;
return /*#__PURE__*/_react["default"].createElement("div", {
"data-hook": dataHook,
className: (0, _CircularProgressBarSt.st)(_CircularProgressBarSt.classes.root, className)
}, error && errorMessage ? /*#__PURE__*/_react["default"].createElement(_Tooltip["default"], {
className: _CircularProgressBarSt.classes.tooltip,
content: errorMessage,
dataHook: _constants.dataHooks.tooltip
}, this._renderProgressBar()) : this._renderProgressBar());
}
}]);
return CircularProgressBar;
}(_react["default"].PureComponent);
CircularProgressBar.displayName = 'CircularProgressBar';
CircularProgressBar.defaultProps = {
size: 'medium',
skin: 'standard'
};
CircularProgressBar.propTypes = {
/** Should be true if had failure during the progress */
error: _propTypes["default"].bool,
/** Label to display when an error happens */
errorLabel: _propTypes["default"].string,
/** Message to display when an error happens */
errorMessage: _propTypes["default"].string,
/** Use light theme instead of dark theme */
light: _propTypes["default"].bool,
/** Use to display a percentage progress */
showProgressIndication: _propTypes["default"].bool,
/** Use to display custom text in the progress bar */
label: _propTypes["default"].string,
/** Size of the bar */
size: _propTypes["default"].string,
/** Skin of the bar */
skin: _propTypes["default"].oneOf(['standard', 'premium', 'success']),
/** The number of the percentage progress */
value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
dataHook: _propTypes["default"].string
};
var _default = CircularProgressBar;
exports["default"] = _default;