@carbon/ibm-security
Version:
Carbon for Cloud & Cognitive IBM Security UI components
84 lines (83 loc) • 3.01 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _namespace = require("../../../globals/namespace");
var _FilterPanelLabel = _interopRequireDefault(require("../FilterPanelLabel"));
var _excluded = ["title", "count", "countLabel", "className", "titleClassName", "children", "heading"];
/**
* @file Filter panel group component.
* @copyright IBM Security 2020, 2021
*/
var namespace = (0, _namespace.getComponentNamespace)('filter-panel-group');
var FilterPanelGroup = function FilterPanelGroup(_ref) {
var title = _ref.title,
count = _ref.count,
countLabel = _ref.countLabel,
className = _ref.className,
titleClassName = _ref.titleClassName,
children = _ref.children,
heading = _ref.heading,
other = (0, _objectWithoutProperties2.default)(_ref, _excluded);
return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
className: (0, _classnames.default)(namespace, className)
}, other), (heading || title) && /*#__PURE__*/_react.default.createElement("h2", {
className: (0, _classnames.default)("".concat(namespace, "__title"), titleClassName)
}, /*#__PURE__*/_react.default.createElement(_FilterPanelLabel.default, {
count: count,
countLabel: countLabel,
title: title
}, heading || title)), /*#__PURE__*/_react.default.createElement("div", {
className: "".concat(namespace, "__content")
}, children));
};
FilterPanelGroup.propTypes = {
/**
* Group content.
*/
children: _propTypes.default.node,
/**
* Optional class name.
*/
className: _propTypes.default.string,
/**
* Optional group count.
*/
count: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
/**
* Function returning a translated text labeling the count for accessibility.
*/
countLabel: _propTypes.default.func,
/**
* Group heading node.
* If no `heading` is provided, then the `title` prop value will be used instead.
*/
heading: _propTypes.default.node,
/**
* Group `title` attribute.
*/
title: _propTypes.default.string,
/**
* Optional class name for the title.
*/
titleClassName: _propTypes.default.string
};
FilterPanelGroup.defaultProps = {
title: undefined,
count: undefined,
countLabel: function countLabel(count) {
return "".concat(count, " items");
},
className: undefined,
titleClassName: undefined,
children: undefined,
heading: undefined
};
var _default = exports.default = FilterPanelGroup;