NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/ant-design-vue/es/collapse/Collapse.js
2023-09-14 14:47:11 +08:00

68 lines
2.3 KiB
Java

import _extends from 'babel-runtime/helpers/extends';
import _defineProperty from 'babel-runtime/helpers/defineProperty';
import animation from '../_util/openAnimation';
import { getOptionProps, initDefaultProps, getComponentFromProp, isValidElement, getListeners } from '../_util/props-util';
import { cloneElement } from '../_util/vnode';
import VcCollapse, { collapseProps } from '../vc-collapse';
import Icon from '../icon';
import { ConfigConsumerProps } from '../config-provider/configConsumerProps';
export default {
name: 'ACollapse',
model: {
prop: 'activeKey',
event: 'change'
},
props: initDefaultProps(collapseProps(), {
bordered: true,
openAnimation: animation,
expandIconPosition: 'left'
}),
inject: {
configProvider: { 'default': function _default() {
return ConfigConsumerProps;
} }
},
methods: {
renderExpandIcon: function renderExpandIcon(panelProps, prefixCls) {
var h = this.$createElement;
var expandIcon = getComponentFromProp(this, 'expandIcon', panelProps);
var icon = expandIcon || h(Icon, {
attrs: { type: 'right', rotate: panelProps.isActive ? 90 : undefined }
});
return isValidElement(Array.isArray(expandIcon) ? icon[0] : icon) ? cloneElement(icon, {
'class': prefixCls + '-arrow'
}) : icon;
}
},
render: function render() {
var _collapseClassName,
_this = this;
var h = arguments[0];
var customizePrefixCls = this.prefixCls,
bordered = this.bordered,
expandIconPosition = this.expandIconPosition;
var getPrefixCls = this.configProvider.getPrefixCls;
var prefixCls = getPrefixCls('collapse', customizePrefixCls);
var collapseClassName = (_collapseClassName = {}, _defineProperty(_collapseClassName, prefixCls + '-borderless', !bordered), _defineProperty(_collapseClassName, prefixCls + '-icon-position-' + expandIconPosition, true), _collapseClassName);
var rcCollapeProps = {
props: _extends({}, getOptionProps(this), {
prefixCls: prefixCls,
expandIcon: function expandIcon(panelProps) {
return _this.renderExpandIcon(panelProps, prefixCls);
}
}),
'class': collapseClassName,
on: getListeners(this)
};
return h(
VcCollapse,
rcCollapeProps,
[this.$slots['default']]
);
}
};