UNPKG

5.72 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4
5var _extends2 = require('babel-runtime/helpers/extends');
6
7var _extends3 = _interopRequireDefault(_extends2);
8
9var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
10
11var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12
13var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
14
15var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
16
17var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
18
19var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20
21var _inherits2 = require('babel-runtime/helpers/inherits');
22
23var _inherits3 = _interopRequireDefault(_inherits2);
24
25var _class, _temp2;
26
27var _react = require('react');
28
29var _react2 = _interopRequireDefault(_react);
30
31var _propTypes = require('prop-types');
32
33var _propTypes2 = _interopRequireDefault(_propTypes);
34
35var _classnames = require('classnames');
36
37var _classnames2 = _interopRequireDefault(_classnames);
38
39var _configProvider = require('../config-provider');
40
41var _configProvider2 = _interopRequireDefault(_configProvider);
42
43var _icon = require('../icon');
44
45var _icon2 = _interopRequireDefault(_icon);
46
47var _util = require('../util');
48
49function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
50
51/** Collapse.Panel */
52var Panel = (_temp2 = _class = function (_React$Component) {
53 (0, _inherits3.default)(Panel, _React$Component);
54
55 function Panel() {
56 var _temp, _this, _ret;
57
58 (0, _classCallCheck3.default)(this, Panel);
59
60 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
61 args[_key] = arguments[_key];
62 }
63
64 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onKeyDown = function (e) {
65 var keyCode = e.keyCode;
66
67 if (keyCode === _util.KEYCODE.SPACE) {
68 var onClick = _this.props.onClick;
69
70 e.preventDefault();
71 onClick && onClick(e);
72 }
73 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
74 } //
75
76 Panel.prototype.render = function render() {
77 var _classNames, _classNames2;
78
79 var _props = this.props,
80 title = _props.title,
81 children = _props.children,
82 className = _props.className,
83 isExpanded = _props.isExpanded,
84 disabled = _props.disabled,
85 style = _props.style,
86 prefix = _props.prefix,
87 onClick = _props.onClick,
88 id = _props.id,
89 others = (0, _objectWithoutProperties3.default)(_props, ['title', 'children', 'className', 'isExpanded', 'disabled', 'style', 'prefix', 'onClick', 'id']);
90
91
92 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'collapse-panel'] = true, _classNames[prefix + 'collapse-panel-hidden'] = !isExpanded, _classNames[prefix + 'collapse-panel-expanded'] = isExpanded, _classNames[prefix + 'collapse-panel-disabled'] = disabled, _classNames[className] = className, _classNames));
93
94 var iconCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'collapse-panel-icon'] = true, _classNames2[prefix + 'collapse-panel-icon-expanded'] = isExpanded, _classNames2));
95
96 // 为了无障碍 需要添加两个id
97 var headingId = id ? id + '-heading' : undefined;
98 var regionId = id ? id + '-region' : undefined;
99 return _react2.default.createElement(
100 'div',
101 (0, _extends3.default)({ className: cls, style: style, id: id }, others),
102 _react2.default.createElement(
103 'div',
104 {
105 id: headingId,
106 className: prefix + 'collapse-panel-title',
107 onClick: onClick,
108 onKeyDown: this.onKeyDown,
109 tabIndex: '0',
110 'aria-disabled': disabled,
111 'aria-expanded': isExpanded,
112 'aria-controls': regionId,
113 role: 'button'
114 },
115 _react2.default.createElement(_icon2.default, {
116 type: 'arrow-right',
117 className: iconCls,
118 'aria-hidden': 'true'
119 }),
120 title
121 ),
122 _react2.default.createElement(
123 'div',
124 {
125 className: prefix + 'collapse-panel-content',
126 role: 'region',
127 id: regionId
128 },
129 children
130 )
131 );
132 };
133
134 return Panel;
135}(_react2.default.Component), _class.propTypes = {
136 /**
137 * 样式类名的品牌前缀
138 */
139 prefix: _propTypes2.default.string,
140 /**
141 * 子组件接受行内样式
142 */
143 style: _propTypes2.default.object,
144 children: _propTypes2.default.any,
145 isExpanded: _propTypes2.default.bool,
146 /**
147 * 是否禁止用户操作
148 */
149 disabled: _propTypes2.default.bool,
150 /**
151 * 标题
152 */
153 title: _propTypes2.default.node,
154 /**
155 * 扩展class
156 */
157 className: _propTypes2.default.string,
158 onClick: _propTypes2.default.func,
159 id: _propTypes2.default.string
160}, _class.defaultProps = {
161 prefix: 'next-',
162 isExpanded: false,
163 onClick: _util.func.noop
164}, _class.isNextPanel = true, _temp2);
165Panel.displayName = 'Panel';
166exports.default = _configProvider2.default.config(Panel);
167module.exports = exports['default'];
\No newline at end of file