@carbon/ibm-security
Version:
Carbon for Cloud & Cognitive IBM Security UI components
74 lines (73 loc) • 2.67 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 _excluded = ["children", "count", "countLabel", "className", "countClassName", "title"];
/**
* @file Filter panel label component.
* @copyright IBM Security 2020, 2021
*/
var namespace = (0, _namespace.getComponentNamespace)('filter-panel-label');
var FilterPanelLabel = function FilterPanelLabel(_ref) {
var children = _ref.children,
count = _ref.count,
countLabel = _ref.countLabel,
className = _ref.className,
countClassName = _ref.countClassName,
title = _ref.title,
other = (0, _objectWithoutProperties2.default)(_ref, _excluded);
return /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
className: (0, _classnames.default)(namespace, className)
}, other), /*#__PURE__*/_react.default.createElement("span", {
className: "".concat(namespace, "__text"),
title: title
}, children), !Number.isNaN(parseInt(count, 10)) && /*#__PURE__*/_react.default.createElement("span", {
className: (0, _classnames.default)("".concat(namespace, "__count"), countClassName),
"aria-label": "(".concat(countLabel(count), ")")
}, count));
};
FilterPanelLabel.propTypes = {
/**
* Label text.
*/
children: _propTypes.default.node,
/**
* Optional class name.
*/
className: _propTypes.default.string,
/**
* Label count.
*/
count: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
/**
* Optional class name for the count.
*/
countClassName: _propTypes.default.string,
/**
* Function returning a translated text labeling the count for accessibility.
*/
countLabel: _propTypes.default.func,
/**
* The `title` attribute that is applied to the label node.
*/
title: _propTypes.default.string
};
FilterPanelLabel.defaultProps = {
children: undefined,
count: undefined,
countLabel: function countLabel(count) {
return "".concat(count, " items");
},
className: undefined,
countClassName: undefined,
title: undefined
};
var _default = exports.default = FilterPanelLabel;