UNPKG

@spaced-out/ui-design-system

Version:
84 lines (83 loc) 4.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ScoreBar = exports.Direction = exports.DEFAULT_COLOR_MAP = void 0; var React = _interopRequireWildcard(require("react")); var _invariant = _interopRequireDefault(require("invariant")); var _clamp = _interopRequireDefault(require("lodash/clamp")); var _color = require("../../styles/variables/_color"); var _size = require("../../styles/variables/_size"); var _classify = require("../../utils/classify"); var _qa = require("../../utils/qa"); var _scoreBar = require("../../utils/score-bar"); var _Text = require("../Text"); var _ScoreBarModule = _interopRequireDefault(require("./ScoreBar.module.css")); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (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 (const 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); } const Direction = exports.Direction = Object.freeze({ horizontal: 'horizontal', vertical: 'vertical' }); const DEFAULT_BARS_COUNT = 5; const DEFAULT_COLOR_MAP = exports.DEFAULT_COLOR_MAP = { inactive: _color.colorScoreBarInactive, '100': _color.colorScoreBarLevel5, '80': _color.colorScoreBarLevel4, '60': _color.colorScoreBarLevel3, '40': _color.colorScoreBarLevel2, '20': _color.colorScoreBarLevel1 }; const ScoreBar = exports.ScoreBar = /*#__PURE__*/React.forwardRef((_ref, ref) => { let { score = 0, colorMap = DEFAULT_COLOR_MAP, totalBars = DEFAULT_BARS_COUNT, direction = 'vertical', classNames, withBorder = false, labelMap, testId } = _ref; (0, _invariant.default)(totalBars > 0, JSON.stringify(_scoreBar.SCORE_BAR_ERRORS.INVALID_BAR_COUNT)); const activeLabel = (0, _scoreBar.getLabelByScorePercentage)(score, totalBars, labelMap); return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { ref: ref, "data-testid": (0, _qa.generateTestId)({ base: testId, slot: 'scoreBar' }), className: (0, _classify.classify)(_ScoreBarModule.default.scoreBarWrapper, { [_ScoreBarModule.default.scoreBarBorder]: withBorder }, classNames?.wrapper), children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: (0, _classify.classify)(_ScoreBarModule.default.scoreBarContainer, classNames?.container), style: { '--direction': direction === Direction.horizontal ? 'row-reverse' : 'column', '--height': direction === Direction.horizontal ? _size.size18 : 'unset', '--width': direction === Direction.vertical ? _size.size18 : 'unset' }, children: [...Array(totalBars).keys()].reverse().map(count => /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { "data-testid": (0, _qa.generateTestId)({ base: testId, slot: 'bar', index: count }), className: (0, _classify.classify)(_ScoreBarModule.default.bar, classNames?.bar), style: { '--background-color': (0, _scoreBar.getColorByScorePercentage)(totalBars, (0, _clamp.default)(score, 0, totalBars), count, colorMap), '--height': direction === Direction.horizontal ? _size.size18 : _size.size2, '--width': direction === Direction.vertical ? _size.size18 : _size.size2 } }, count)) }), activeLabel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Text.SubTitleExtraSmall, { className: (0, _classify.classify)(_ScoreBarModule.default.scoreBarLabel, classNames?.label), testId: (0, _qa.generateTestId)({ base: testId, slot: 'label' }), children: activeLabel })] }); });