UNPKG

@wix/design-system

Version:

@wix/design-system

171 lines (170 loc) 6.2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.FunnelBadge = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _Tooltip = _interopRequireDefault(require("../../Tooltip")); var _Heading = _interopRequireDefault(require("../../Heading")); var _Badge = _interopRequireDefault(require("../../Badge")); var _Focusable = require("../../common/Focusable"); var _TooltipCommon = require("../../common/PropTypes/TooltipCommon"); var _FunnelBadgeSt = require("./FunnelBadge.st.css.js"); var _constants = require("../constants"); var _excluded = ["tooltipContent", "tooltipProps", "onTooltipShow", "value", "differenceBadgeSkin"]; var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/FunnelChart/FunnelBadge/FunnelBadge.js"; function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } class StandardBadge extends _react.PureComponent { render() { var { value, skin, prefixIcon, className, focusableOnBlur, focusableOnFocus, dataHook } = this.props; return /*#__PURE__*/_react.default.createElement("div", { className: (0, _FunnelBadgeSt.st)(_FunnelBadgeSt.classes.badge, { skin }, className), "data-hook": dataHook, tabIndex: 0, onBlur: focusableOnBlur, onFocus: focusableOnFocus, "data-skin": skin, __self: this, __source: { fileName: _jsxFileName, lineNumber: 25, columnNumber: 7 } }, /*#__PURE__*/_react.default.createElement("div", { className: _FunnelBadgeSt.classes.badgeContent, __self: this, __source: { fileName: _jsxFileName, lineNumber: 33, columnNumber: 9 } }, !!prefixIcon && /*#__PURE__*/_react.default.cloneElement(prefixIcon, { 'data-prefix-icon': true }), /*#__PURE__*/_react.default.createElement(_Heading.default, { className: _FunnelBadgeSt.classes.badgeText, size: "extraTiny", dataHook: _constants.dataHooks.badgeValue, __self: this, __source: { fileName: _jsxFileName, lineNumber: 38, columnNumber: 11 } }, value))); } } class DarkBadge extends _react.PureComponent { render() { var { value, className, focusableOnBlur, focusableOnFocus, dataHook, prefixIcon } = this.props; return /*#__PURE__*/_react.default.createElement("div", { className: (0, _FunnelBadgeSt.st)(_FunnelBadgeSt.classes.darkBadge, className), "data-hook": dataHook, tabIndex: 0, onBlur: focusableOnBlur, onFocus: focusableOnFocus, "data-skin": "dark", __self: this, __source: { fileName: _jsxFileName, lineNumber: 62, columnNumber: 7 } }, /*#__PURE__*/_react.default.createElement(_Badge.default, { type: "transparent", dataHook: _constants.dataHooks.badgeValue, prefixIcon: prefixIcon, __self: this, __source: { fileName: _jsxFileName, lineNumber: 70, columnNumber: 9 } }, value)); } } var FocusedStandardBadge = (0, _Focusable.withFocusable)(StandardBadge); var FocusedDarkBadge = (0, _Focusable.withFocusable)(DarkBadge); var FunnelBadge = props => { var { tooltipContent, tooltipProps, onTooltipShow, value, differenceBadgeSkin } = props, otherProps = (0, _objectWithoutProperties2.default)(props, _excluded); return /*#__PURE__*/_react.default.createElement(_Tooltip.default, (0, _extends2.default)({ dataHook: _constants.dataHooks.badgeTooltip, disabled: !tooltipContent, content: tooltipContent, onShow: onTooltipShow, moveBy: { y: 2 }, textAlign: "start", size: "small" }, tooltipProps, { __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 96, columnNumber: 5 } }), differenceBadgeSkin === 'dark' ? /*#__PURE__*/_react.default.createElement(FocusedDarkBadge, (0, _extends2.default)({ value: value, dataHook: _constants.dataHooks.badge }, otherProps, { __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 107, columnNumber: 9 } })) : /*#__PURE__*/_react.default.createElement(FocusedStandardBadge, (0, _extends2.default)({ value: value, dataHook: _constants.dataHooks.badge, skin: differenceBadgeSkin }, otherProps, { __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 113, columnNumber: 9 } }))); }; exports.FunnelBadge = FunnelBadge; FunnelBadge.propTypes = { /** Badge's value */ value: _propTypes.default.string.isRequired, /** Tooltip content. Can be either string or renderable node */ tooltipContent: _propTypes.default.node, /** Tooltip properties */ tooltipProps: _propTypes.default.shape(_TooltipCommon.TooltipCommonProps), /** Prefix icon. Can be React.ReactNode */ prefixIcon: _propTypes.default.node, /** When provided, changes badge skin */ differenceBadgeSkin: _propTypes.default.oneOf(['standard', 'dark', 'success', 'general']), /** Callback on tooltip content show event */ onTooltipShow: _propTypes.default.func }; //# sourceMappingURL=FunnelBadge.js.map