epn-ui
Version:
Дизайн система кабинета ВМ
33 lines (30 loc) • 1.97 kB
JavaScript
import React from 'react';
import clsx from 'clsx';
import Collapse from 'antd/lib/collapse';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { faChevronDown } from '@fortawesome/pro-light-svg-icons/faChevronDown';
var Panel = Collapse.Panel;
var BaseCollapse = function (_a) {
var items = _a.items, defaultActiveKey = _a.defaultActiveKey, _b = _a.expandFirstItem, expandFirstItem = _b === void 0 ? true : _b, expandIcon = _a.expandIcon, className = _a.className, style = _a.style, _c = _a.accordion, accordion = _c === void 0 ? false : _c, _d = _a.showArrow, showArrow = _d === void 0 ? true : _d, onChange = _a.onChange, ghost = _a.ghost;
var emptyItems = !Array.isArray(items) || items.length === 0;
var getDefaultActiveKey = function () {
var _a;
if (defaultActiveKey)
return defaultActiveKey;
if (!Array.isArray(items))
return undefined;
if (expandFirstItem)
return (_a = items[0]) === null || _a === void 0 ? void 0 : _a.key;
return undefined;
};
return (React.createElement(Collapse, { accordion: accordion, defaultActiveKey: getDefaultActiveKey(), className: clsx('epn-collapse', className), style: style, expandIconPosition: "end", expandIcon: expandIcon ||
(function (_a) {
var isActive = _a.isActive;
return (React.createElement(FontAwesomeIcon, { icon: faChevronDown, className: clsx('epn-collapse__icon', {
'epn-collapse__icon--active': isActive,
}) }));
}), bordered: false, onChange: onChange, ghost: ghost }, !emptyItems &&
items.map(function (item) { return (React.createElement(Panel, { showArrow: showArrow, header: item.title, key: item.key, className: clsx('epn-collapse__item') }, item.body)); })));
};
var BaseCollapse$1 = BaseCollapse;
export { BaseCollapse, BaseCollapse$1 as default };