UNPKG

@ozen-ui/kit

Version:

React component library

38 lines (37 loc) 2.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProgressBar = exports.cnProgressBar = void 0; var tslib_1 = require("tslib"); require("./ProgressBar.css"); var react_1 = tslib_1.__importDefault(require("react")); var useThemeTokens_1 = require("../../hooks/useThemeTokens"); var classname_1 = require("../../utils/classname"); var css_1 = require("../../utils/css"); var polymorphicComponentWithRef_1 = require("../../utils/polymorphicComponentWithRef"); var constants_1 = require("./constants"); exports.cnProgressBar = (0, classname_1.cn)('ProgressBar'); exports.ProgressBar = (0, polymorphicComponentWithRef_1.polymorphicComponentWithRef)(function (_a, ref) { var _b; var className = _a.className, _c = _a.as, Tag = _c === void 0 ? constants_1.PROGRESSBAR_DEFAULT_TAG : _c, value = _a.value, _d = _a.strokeColor, strokeColor = _d === void 0 ? constants_1.PROGRESSBAR_DEFAULT_STROKE_COLOR : _d, _e = _a.trailColor, trailColor = _e === void 0 ? constants_1.PROGRESSBAR_DEFAULT_TRAIL_COLOR : _e, style = _a.style, other = tslib_1.__rest(_a, ["className", "as", "value", "strokeColor", "trailColor", "style"]); var colorToken = (0, useThemeTokens_1.useThemeTokens)().color; var isValueSet = value || value === 0; var isFilled = value === 100; var setProgressLineStyles = function () { if (!isValueSet) return undefined; var translateX = Math.max(-100, Math.min(0, (value || 0) - 100)); return { '--progressbar-translate-x': "translateX(".concat(translateX, "%)"), }; }; return (react_1.default.createElement(Tag, tslib_1.__assign({}, (isValueSet && { 'aria-valuemin': 0, 'aria-valuemax': 100, 'aria-valuenow': value, }), { className: (0, exports.cnProgressBar)({ filled: isFilled, indefinite: !isValueSet }, [className]), role: "progressbar" }, other, { style: tslib_1.__assign(tslib_1.__assign({}, style), (0, css_1.generateCSSVariables)((_b = {}, _b[constants_1.PROGRESSBAR_CSS_VARIABLE.TRAIL_COLOR] = "var(".concat(colorToken.toCSSProperty(trailColor), ")"), _b[constants_1.PROGRESSBAR_CSS_VARIABLE.STROKE_COLOR] = "var(".concat(colorToken.toCSSProperty(strokeColor), ")"), _b))), ref: ref }), react_1.default.createElement("span", { className: (0, exports.cnProgressBar)('ProgressLine'), style: setProgressLineStyles() }))); }); exports.ProgressBar.displayName = 'ProgressBar';