UNPKG

@rxflow/base

Version:

BaseFlow - 核心 Flow 组件库

58 lines (56 loc) 2.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CollapseButton = CollapseButton; var _LoadingOutlined = _interopRequireDefault(require("@ant-design/icons/lib/icons/LoadingOutlined")); var _MinusOutlined = _interopRequireDefault(require("@ant-design/icons/MinusOutlined")); var _PlusOutlined = _interopRequireDefault(require("@ant-design/icons/PlusOutlined")); var _ahooks = require("ahooks"); var _classcat = _interopRequireDefault(require("classcat")); var _hooks = require("../../hooks"); require("./index.less"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @author: yanxianliang * @date: 2025-06-21 13:53 * @desc: 折叠按钮 * * Copyright (c) 2025 by yanxianliang, All Rights Reserved. */ const stopClickEvent = event => event.stopPropagation(); function CollapseButton(props) { const { collapsed = true, position = 'right', count, onCollapse, loading, direction = 'horizontal', autoHideCountWhenExpanded: _autoHideCountWhenExpanded = false } = props; const theme = (0, _hooks.useTheme)(); const { collapseButtonShape = 'rect', autoHideCountWhenExpanded = false, showCount = true } = theme; const onClick = (0, _ahooks.useMemoizedFn)(() => { onCollapse?.(!collapsed); }); return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", { className: (0, _classcat.default)(['rxflow-collapse', `rxflow-collapse-${position}`]), onClick: stopClickEvent, children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: (0, _classcat.default)([`rxflow-collapse-icon`, `rxflow-collapse-shape-${collapseButtonShape}`, { ['rxflow-collapse-loading']: loading }]), onClick: loading ? undefined : onClick, children: loading ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingOutlined.default, {}) : collapsed ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_PlusOutlined.default, {}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_MinusOutlined.default, {}) }), (autoHideCountWhenExpanded || _autoHideCountWhenExpanded) && !collapsed || !showCount ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)("div", { className: (0, _classcat.default)([`rxflow-collapse-count`, direction === 'vertical' ? 'rxflow-collapse-vertical' : null]), children: count })] }); }