@carbon/ibm-security
Version:
Carbon for Cloud & Cognitive IBM Security UI components
65 lines (64 loc) • 2.65 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.namespace = exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _classnames2 = _interopRequireDefault(require("classnames"));
var _propTypes = require("prop-types");
var _react = _interopRequireDefault(require("react"));
var _TooltipDefinition = _interopRequireDefault(require("../TooltipDefinition"));
var _namespace = require("../../globals/namespace");
var _excluded = ["className", "lines", "tooltipDirection", "truncate", "value", "width"];
/**
* @file String formatter.
* @copyright IBM Security 2019
*/
var namespace = exports.namespace = (0, _namespace.getComponentNamespace)('string-formatter');
var StringFormatter = function StringFormatter(_ref) {
var className = _ref.className,
lines = _ref.lines,
tooltipDirection = _ref.tooltipDirection,
truncate = _ref.truncate,
value = _ref.value,
width = _ref.width,
other = (0, _objectWithoutProperties2.default)(_ref, _excluded);
var content = /*#__PURE__*/_react.default.createElement("span", (0, _extends2.default)({
className: (0, _classnames2.default)(namespace, className, (0, _defineProperty2.default)({}, "".concat(namespace, "--truncate"), truncate)),
style: {
maxWidth: width,
WebkitLineClamp: lines
}
}, other), value);
return truncate ? /*#__PURE__*/_react.default.createElement(_TooltipDefinition.default, {
className: "".concat(namespace, "__tooltip"),
align: "start",
direction: tooltipDirection,
tooltipText: value
}, content) : content;
};
StringFormatter.propTypes = {
/** @type {string} Optional class name. */
className: _propTypes.string,
/** @type {number} Number of lines to clamp value. */
lines: _propTypes.number,
/** Specify the direction of the tooltip. Can be either top or bottom. */
tooltipDirection: (0, _propTypes.oneOf)(['top', 'bottom']),
/** Whether or not the value should be truncated. */
truncate: _propTypes.bool,
/** Value to format. */
value: _propTypes.string.isRequired,
/** Maximum width of value. */
width: _propTypes.string
};
StringFormatter.defaultProps = {
className: null,
lines: 1,
tooltipDirection: 'bottom',
truncate: false,
width: null
};
var _default = exports.default = StringFormatter;