1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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']]
- );
- }
- };
|