UNPKG

@carbon/ibm-security

Version:

Carbon for Cloud & Cognitive IBM Security UI components

65 lines (64 loc) 2.65 kB
"use strict"; 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;