@spaced-out/ui-design-system
Version:
Sense UI components library
96 lines (95 loc) • 4.63 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.StageArrow = exports.STAGE_ARROW_TYPE = void 0;
var React = _interopRequireWildcard(require("react"));
var _classify = _interopRequireDefault(require("../../../utils/classify"));
var _qa = require("../../../utils/qa");
var _Button = require("../../Button");
var _ConditionalWrapper = require("../../ConditionalWrapper/ConditionalWrapper");
var _Icon = require("../../Icon");
var _Tooltip = require("../../Tooltip/Tooltip");
var _Truncate = require("../../Truncate");
var _StageArrowModule = _interopRequireDefault(require("./StageArrow.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 STAGE_ARROW_TYPE = exports.STAGE_ARROW_TYPE = Object.freeze({
primary: 'primary',
danger: 'danger',
success: 'success',
warning: 'warning',
information: 'information'
});
const StageArrow = exports.StageArrow = /*#__PURE__*/React.forwardRef((_ref, ref) => {
let {
id,
classNames,
disabled = false,
onStageArrowClick,
isEndStageArrow = false,
isStartStageArrow = false,
type = 'primary',
iconLeftName = '',
iconLeftType = 'solid',
iconRightName = '',
iconRightType = 'solid',
children,
tooltip,
testId,
locked = false,
...props
} = _ref;
const isInBetweenStageArrow = !isStartStageArrow && !isEndStageArrow;
const iconColor = disabled ? 'disabled' : 'primary';
const hasTooltip = tooltip && typeof tooltip === 'object' && Object.keys(tooltip).length > 0;
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ConditionalWrapper.ConditionalWrapper, {
condition: hasTooltip,
wrapper: children => /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.Tooltip, {
...tooltip,
children: children
}),
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.UnstyledButton, {
...props,
ref: ref,
testId: (0, _qa.generateTestId)({
base: testId,
slot: 'stage-arrow-button'
}),
disabled: disabled,
className: (0, _classify.default)(_StageArrowModule.default.stageArrowButton, {
[_StageArrowModule.default.locked]: locked,
[_StageArrowModule.default.primary]: type === STAGE_ARROW_TYPE.primary,
[_StageArrowModule.default.danger]: type === STAGE_ARROW_TYPE.danger,
[_StageArrowModule.default.success]: type === STAGE_ARROW_TYPE.success,
[_StageArrowModule.default.warning]: type === STAGE_ARROW_TYPE.warning,
[_StageArrowModule.default.information]: type === STAGE_ARROW_TYPE.information,
[_StageArrowModule.default.endStageArrow]: isEndStageArrow,
[_StageArrowModule.default.startStageArrow]: isStartStageArrow,
[_StageArrowModule.default.inBetweenStageArrow]: isInBetweenStageArrow,
[_StageArrowModule.default.disabled]: disabled
}, classNames?.wrapper),
onClick: e => !locked && !disabled && onStageArrowClick && onStageArrowClick(id, e),
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
className: _StageArrowModule.default.stageArrowRow,
children: [iconLeftName && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
size: "small",
color: iconColor,
name: iconLeftName,
type: iconLeftType,
className: (0, _classify.default)(_StageArrowModule.default.stageArrowLeftIcon, classNames?.icon)
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Truncate.Truncate, {
className: _StageArrowModule.default.stageArrowText,
children: children
}), (iconRightName || locked) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.Icon, {
size: "small",
color: iconColor,
name: locked ? 'lock' : iconRightName,
type: locked ? 'regular' : iconRightType,
className: (0, _classify.default)(_StageArrowModule.default.stageArrowRightIcon, classNames?.icon)
})]
})
})
});
});