Collapse.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _extends2 = require('babel-runtime/helpers/extends');
  6. var _extends3 = _interopRequireDefault(_extends2);
  7. var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
  8. var _defineProperty3 = _interopRequireDefault(_defineProperty2);
  9. var _openAnimation = require('../_util/openAnimation');
  10. var _openAnimation2 = _interopRequireDefault(_openAnimation);
  11. var _propsUtil = require('../_util/props-util');
  12. var _vnode = require('../_util/vnode');
  13. var _vcCollapse = require('../vc-collapse');
  14. var _vcCollapse2 = _interopRequireDefault(_vcCollapse);
  15. var _icon = require('../icon');
  16. var _icon2 = _interopRequireDefault(_icon);
  17. var _configConsumerProps = require('../config-provider/configConsumerProps');
  18. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
  19. exports['default'] = {
  20. name: 'ACollapse',
  21. model: {
  22. prop: 'activeKey',
  23. event: 'change'
  24. },
  25. props: (0, _propsUtil.initDefaultProps)((0, _vcCollapse.collapseProps)(), {
  26. bordered: true,
  27. openAnimation: _openAnimation2['default'],
  28. expandIconPosition: 'left'
  29. }),
  30. inject: {
  31. configProvider: { 'default': function _default() {
  32. return _configConsumerProps.ConfigConsumerProps;
  33. } }
  34. },
  35. methods: {
  36. renderExpandIcon: function renderExpandIcon(panelProps, prefixCls) {
  37. var h = this.$createElement;
  38. var expandIcon = (0, _propsUtil.getComponentFromProp)(this, 'expandIcon', panelProps);
  39. var icon = expandIcon || h(_icon2['default'], {
  40. attrs: { type: 'right', rotate: panelProps.isActive ? 90 : undefined }
  41. });
  42. return (0, _propsUtil.isValidElement)(Array.isArray(expandIcon) ? icon[0] : icon) ? (0, _vnode.cloneElement)(icon, {
  43. 'class': prefixCls + '-arrow'
  44. }) : icon;
  45. }
  46. },
  47. render: function render() {
  48. var _collapseClassName,
  49. _this = this;
  50. var h = arguments[0];
  51. var customizePrefixCls = this.prefixCls,
  52. bordered = this.bordered,
  53. expandIconPosition = this.expandIconPosition;
  54. var getPrefixCls = this.configProvider.getPrefixCls;
  55. var prefixCls = getPrefixCls('collapse', customizePrefixCls);
  56. var collapseClassName = (_collapseClassName = {}, (0, _defineProperty3['default'])(_collapseClassName, prefixCls + '-borderless', !bordered), (0, _defineProperty3['default'])(_collapseClassName, prefixCls + '-icon-position-' + expandIconPosition, true), _collapseClassName);
  57. var rcCollapeProps = {
  58. props: (0, _extends3['default'])({}, (0, _propsUtil.getOptionProps)(this), {
  59. prefixCls: prefixCls,
  60. expandIcon: function expandIcon(panelProps) {
  61. return _this.renderExpandIcon(panelProps, prefixCls);
  62. }
  63. }),
  64. 'class': collapseClassName,
  65. on: (0, _propsUtil.getListeners)(this)
  66. };
  67. return h(
  68. _vcCollapse2['default'],
  69. rcCollapeProps,
  70. [this.$slots['default']]
  71. );
  72. }
  73. };