amis-rpc-design/node_modules/antd/lib/tour/panelRender.js
2023-10-07 19:42:30 +08:00

121 lines
5.7 KiB
JavaScript

"use strict";
"use client";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _CloseOutlined = _interopRequireDefault(require("@ant-design/icons/CloseOutlined"));
var _classnames = _interopRequireDefault(require("classnames"));
var _react = _interopRequireDefault(require("react"));
var _button = _interopRequireDefault(require("../button"));
var _locale = require("../locale");
var _en_US = _interopRequireDefault(require("../locale/en_US"));
var _useClosable = _interopRequireDefault(require("../_util/hooks/useClosable"));
function isValidNode(node) {
return node !== undefined && node !== null;
}
// Due to the independent design of Panel, it will be too coupled to put in rc-tour,
// so a set of Panel logic is implemented separately in antd.
const TourPanel = _ref => {
let {
stepProps,
current,
type,
indicatorsRender,
closeIcon
} = _ref;
var _a, _b;
const {
prefixCls,
total = 1,
title,
onClose,
onPrev,
onNext,
onFinish,
cover,
description,
nextButtonProps,
prevButtonProps,
type: stepType,
closeIcon: stepCloseIcon
} = stepProps;
const mergedType = stepType !== null && stepType !== void 0 ? stepType : type;
const mergedCloseIcon = stepCloseIcon !== null && stepCloseIcon !== void 0 ? stepCloseIcon : closeIcon;
const mergedClosable = mergedCloseIcon !== false && mergedCloseIcon !== null;
const [closable, mergedDisplayCloseIcon] = (0, _useClosable.default)(mergedClosable, mergedCloseIcon, icon => /*#__PURE__*/_react.default.createElement("span", {
onClick: onClose,
"aria-label": "Close",
className: `${prefixCls}-close`
}, icon), /*#__PURE__*/_react.default.createElement(_CloseOutlined.default, {
className: `${prefixCls}-close-icon`
}), true);
const isLastStep = current === total - 1;
const prevBtnClick = () => {
var _a;
onPrev === null || onPrev === void 0 ? void 0 : onPrev();
(_a = prevButtonProps === null || prevButtonProps === void 0 ? void 0 : prevButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(prevButtonProps);
};
const nextBtnClick = () => {
var _a;
if (isLastStep) {
onFinish === null || onFinish === void 0 ? void 0 : onFinish();
} else {
onNext === null || onNext === void 0 ? void 0 : onNext();
}
(_a = nextButtonProps === null || nextButtonProps === void 0 ? void 0 : nextButtonProps.onClick) === null || _a === void 0 ? void 0 : _a.call(nextButtonProps);
};
const headerNode = isValidNode(title) ? /*#__PURE__*/_react.default.createElement("div", {
className: `${prefixCls}-header`
}, /*#__PURE__*/_react.default.createElement("div", {
className: `${prefixCls}-title`
}, title)) : null;
const descriptionNode = isValidNode(description) ? /*#__PURE__*/_react.default.createElement("div", {
className: `${prefixCls}-description`
}, description) : null;
const coverNode = isValidNode(cover) ? /*#__PURE__*/_react.default.createElement("div", {
className: `${prefixCls}-cover`
}, cover) : null;
let mergeIndicatorNode;
if (indicatorsRender) {
mergeIndicatorNode = indicatorsRender(current, total);
} else {
mergeIndicatorNode = (0, _toConsumableArray2.default)(Array.from({
length: total
}).keys()).map((stepItem, index) => /*#__PURE__*/_react.default.createElement("span", {
key: stepItem,
className: (0, _classnames.default)(index === current && `${prefixCls}-indicator-active`, `${prefixCls}-indicator`)
}));
}
const mainBtnType = mergedType === 'primary' ? 'default' : 'primary';
const secondaryBtnProps = {
type: 'default',
ghost: mergedType === 'primary'
};
const [contextLocale] = (0, _locale.useLocale)('Tour', _en_US.default.Tour);
return /*#__PURE__*/_react.default.createElement("div", {
className: `${prefixCls}-content`
}, /*#__PURE__*/_react.default.createElement("div", {
className: `${prefixCls}-inner`
}, closable && mergedDisplayCloseIcon, coverNode, headerNode, descriptionNode, /*#__PURE__*/_react.default.createElement("div", {
className: `${prefixCls}-footer`
}, total > 1 && /*#__PURE__*/_react.default.createElement("div", {
className: `${prefixCls}-indicators`
}, mergeIndicatorNode), /*#__PURE__*/_react.default.createElement("div", {
className: `${prefixCls}-buttons`
}, current !== 0 ? /*#__PURE__*/_react.default.createElement(_button.default, Object.assign({}, secondaryBtnProps, prevButtonProps, {
onClick: prevBtnClick,
size: "small",
className: (0, _classnames.default)(`${prefixCls}-prev-btn`, prevButtonProps === null || prevButtonProps === void 0 ? void 0 : prevButtonProps.className)
}), (_a = prevButtonProps === null || prevButtonProps === void 0 ? void 0 : prevButtonProps.children) !== null && _a !== void 0 ? _a : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.Previous) : null, /*#__PURE__*/_react.default.createElement(_button.default, Object.assign({
type: mainBtnType
}, nextButtonProps, {
onClick: nextBtnClick,
size: "small",
className: (0, _classnames.default)(`${prefixCls}-next-btn`, nextButtonProps === null || nextButtonProps === void 0 ? void 0 : nextButtonProps.className)
}), (_b = nextButtonProps === null || nextButtonProps === void 0 ? void 0 : nextButtonProps.children) !== null && _b !== void 0 ? _b : isLastStep ? contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.Finish : contextLocale === null || contextLocale === void 0 ? void 0 : contextLocale.Next)))));
};
var _default = exports.default = TourPanel;