choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
177 lines (148 loc) • 7.33 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _noop = _interopRequireDefault(require("lodash/noop"));
var _PanelContent = _interopRequireDefault(require("./PanelContent"));
var _animate = _interopRequireDefault(require("../../animate"));
function _createSuper(Derived) {
function isNativeReflectConstruct() {
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
if (Reflect.construct.sham) return false;
if (typeof Proxy === "function") return true;
try {
Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));
return true;
} catch (e) {
return false;
}
}
return function () {
var Super = (0, _getPrototypeOf2["default"])(Derived),
result;
if (isNativeReflectConstruct()) {
var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor;
result = Reflect.construct(Super, arguments, NewTarget);
} else {
result = Super.apply(this, arguments);
}
return (0, _possibleConstructorReturn2["default"])(this, result);
};
}
var CollapsePanel =
/*#__PURE__*/
function (_Component) {
(0, _inherits2["default"])(CollapsePanel, _Component);
var _super = _createSuper(CollapsePanel);
function CollapsePanel() {
(0, _classCallCheck2["default"])(this, CollapsePanel);
return _super.apply(this, arguments);
}
(0, _createClass2["default"])(CollapsePanel, [{
key: "handleItemClick",
value: function handleItemClick() {
if (this.props.onItemClick) {
this.props.onItemClick();
}
}
}, {
key: "render",
value: function render() {
var _classNames, _classNames2, _classNames3;
var _this$props = this.props,
className = _this$props.className,
id = _this$props.id,
style = _this$props.style,
prefixCls = _this$props.prefixCls,
header = _this$props.header,
headerClass = _this$props.headerClass,
children = _this$props.children,
isActive = _this$props.isActive,
showArrow = _this$props.showArrow,
destroyInactivePanel = _this$props.destroyInactivePanel,
disabled = _this$props.disabled,
accordion = _this$props.accordion,
forceRender = _this$props.forceRender,
expandIcon = _this$props.expandIcon,
expandIconPosition = _this$props.expandIconPosition,
extra = _this$props.extra,
trigger = _this$props.trigger;
var headerCls = (0, _classnames["default"])("".concat(prefixCls, "-header"), (_classNames = {}, (0, _defineProperty2["default"])(_classNames, headerClass, headerClass), (0, _defineProperty2["default"])(_classNames, "".concat(prefixCls, "-item-expand-renderer"), showArrow && typeof expandIcon === 'function'), _classNames));
var itemCls = (0, _classnames["default"])((_classNames2 = {}, (0, _defineProperty2["default"])(_classNames2, "".concat(prefixCls, "-item"), true), (0, _defineProperty2["default"])(_classNames2, "".concat(prefixCls, "-item-active"), isActive), (0, _defineProperty2["default"])(_classNames2, "".concat(prefixCls, "-item-disabled"), disabled), _classNames2), className);
var iconCls = (0, _classnames["default"])((_classNames3 = {}, (0, _defineProperty2["default"])(_classNames3, "".concat(prefixCls, "-expand-icon"), true), (0, _defineProperty2["default"])(_classNames3, "".concat(prefixCls, "-expanded"), isActive), (0, _defineProperty2["default"])(_classNames3, "".concat(prefixCls, "-collapsed"), !isActive), _classNames3));
var icon = null;
if (showArrow) {
icon = _react["default"].createElement("span", {
className: "".concat(prefixCls, "-expand-icon-wrapper"),
onClick: trigger === 'icon' ? this.handleItemClick.bind(this) : _noop["default"]
}, typeof expandIcon === 'function' ? expandIcon(this.props) : _react["default"].createElement("i", {
className: iconCls
}));
}
return _react["default"].createElement("div", {
className: itemCls,
style: style,
id: id
}, _react["default"].createElement("div", {
className: headerCls,
onClick: trigger === 'header' ? this.handleItemClick.bind(this) : _noop["default"],
role: accordion ? 'tab' : 'button',
tabIndex: disabled ? -1 : 0,
"aria-expanded": "".concat(isActive),
onKeyPress: this.handleKeyPress
}, showArrow && expandIconPosition !== 'text-right' && icon, header, showArrow && expandIconPosition === 'text-right' && icon, extra && _react["default"].createElement("div", {
className: "".concat(prefixCls, "-extra")
}, extra)), _react["default"].createElement(_animate["default"], {
hiddenProp: "isInactive",
exclusive: true,
component: "",
animation: this.props.openAnimation
}, _react["default"].createElement(_PanelContent["default"], {
prefixCls: prefixCls,
isInactive: !isActive,
destroyInactivePanel: destroyInactivePanel,
forceRender: forceRender,
role: accordion ? 'tabpanel' : null
}, children)));
}
}]);
return CollapsePanel;
}(_react.Component);
exports["default"] = CollapsePanel;
(0, _defineProperty2["default"])(CollapsePanel, "propTypes", {
className: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object]),
id: _propTypes["default"].string,
children: _propTypes["default"].any,
openAnimation: _propTypes["default"].object,
prefixCls: _propTypes["default"].string,
header: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number, _propTypes["default"].node]),
headerClass: _propTypes["default"].string,
showArrow: _propTypes["default"].bool,
isActive: _propTypes["default"].bool,
onItemClick: _propTypes["default"].func,
style: _propTypes["default"].object,
destroyInactivePanel: _propTypes["default"].bool,
disabled: _propTypes["default"].bool,
forceRender: _propTypes["default"].bool
});
(0, _defineProperty2["default"])(CollapsePanel, "defaultProps", {
showArrow: true,
isActive: false,
destroyInactivePanel: false,
onItemClick: function onItemClick() {},
headerClass: '',
forceRender: false
});
//# sourceMappingURL=Panel.js.map