@aplus-frontend/antdv
Version:
Vue basic component library maintained based on ant-design-vue
68 lines • 2.33 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import { defineComponent, createTextVNode as _createTextVNode, createVNode as _createVNode } from 'vue';
import classNames from '../../_util/classNames';
import { tourStepProps } from '../interface';
const DefaultPanel = defineComponent({
name: 'DefaultPanel',
inheritAttrs: false,
props: tourStepProps(),
setup(props, _ref) {
let {
attrs
} = _ref;
return () => {
const {
prefixCls,
current,
total,
title,
description,
onClose,
onPrev,
onNext,
onFinish
} = props;
return _createVNode("div", _objectSpread(_objectSpread({}, attrs), {}, {
"class": classNames(`${prefixCls}-content`, attrs.class)
}), [_createVNode("div", {
"class": `${prefixCls}-inner`
}, [_createVNode("button", {
"type": "button",
"onClick": onClose,
"aria-label": "Close",
"class": `${prefixCls}-close`
}, [_createVNode("span", {
"class": `${prefixCls}-close-x`
}, [_createTextVNode("\xD7")])]), _createVNode("div", {
"class": `${prefixCls}-header`
}, [_createVNode("div", {
"class": `${prefixCls}-title`
}, [title])]), _createVNode("div", {
"class": `${prefixCls}-description`
}, [description]), _createVNode("div", {
"class": `${prefixCls}-footer`
}, [_createVNode("div", {
"class": `${prefixCls}-sliders`
}, [total > 1 ? [...Array.from({
length: total
}).keys()].map((item, index) => {
return _createVNode("span", {
"key": item,
"class": index === current ? 'active' : ''
}, null);
}) : null]), _createVNode("div", {
"class": `${prefixCls}-buttons`
}, [current !== 0 ? _createVNode("button", {
"class": `${prefixCls}-prev-btn`,
"onClick": onPrev
}, [_createTextVNode("Prev")]) : null, current === total - 1 ? _createVNode("button", {
"class": `${prefixCls}-finish-btn`,
"onClick": onFinish
}, [_createTextVNode("Finish")]) : _createVNode("button", {
"class": `${prefixCls}-next-btn`,
"onClick": onNext
}, [_createTextVNode("Next")])])])])]);
};
}
});
export default DefaultPanel;