UNPKG

2.1 kBJavaScriptView Raw
1import { __rest } from "tslib";
2import * as React from 'react';
3import styles from '@patternfly/react-styles/css/components/Truncate/truncate';
4import { css } from '@patternfly/react-styles';
5import { Tooltip } from '../Tooltip';
6export var TruncatePosition;
7(function (TruncatePosition) {
8 TruncatePosition["start"] = "start";
9 TruncatePosition["end"] = "end";
10 TruncatePosition["middle"] = "middle";
11})(TruncatePosition || (TruncatePosition = {}));
12const truncateStyles = {
13 start: styles.truncateEnd,
14 end: styles.truncateStart
15};
16const minWidthCharacters = 12;
17const sliceContent = (str, slice) => [str.slice(0, str.length - slice), str.slice(-slice)];
18export const Truncate = (_a) => {
19 var { className, position = 'end', tooltipPosition = 'top', trailingNumChars = 7, content } = _a, props = __rest(_a, ["className", "position", "tooltipPosition", "trailingNumChars", "content"]);
20 return (React.createElement(Tooltip, { position: tooltipPosition, content: content },
21 React.createElement("span", Object.assign({ className: css(styles.truncate, className) }, props),
22 (position === TruncatePosition.end || position === TruncatePosition.start) && (React.createElement("span", { className: truncateStyles[position] },
23 content,
24 position === TruncatePosition.start && React.createElement(React.Fragment, null, "\u200E"))),
25 position === TruncatePosition.middle &&
26 content.slice(0, content.length - trailingNumChars).length > minWidthCharacters && (React.createElement(React.Fragment, null,
27 React.createElement("span", { className: styles.truncateStart }, sliceContent(content, trailingNumChars)[0]),
28 React.createElement("span", { className: styles.truncateEnd }, sliceContent(content, trailingNumChars)[1]))),
29 position === TruncatePosition.middle &&
30 content.slice(0, content.length - trailingNumChars).length <= minWidthCharacters &&
31 content)));
32};
33Truncate.displayName = 'Truncate';
34//# sourceMappingURL=Truncate.js.map
\No newline at end of file