1 | import { __rest } from "tslib";
|
2 | import * as React from 'react';
|
3 | import styles from '@patternfly/react-styles/css/components/Truncate/truncate';
|
4 | import { css } from '@patternfly/react-styles';
|
5 | import { Tooltip } from '../Tooltip';
|
6 | export var TruncatePosition;
|
7 | (function (TruncatePosition) {
|
8 | TruncatePosition["start"] = "start";
|
9 | TruncatePosition["end"] = "end";
|
10 | TruncatePosition["middle"] = "middle";
|
11 | })(TruncatePosition || (TruncatePosition = {}));
|
12 | const truncateStyles = {
|
13 | start: styles.truncateEnd,
|
14 | end: styles.truncateStart
|
15 | };
|
16 | const minWidthCharacters = 12;
|
17 | const sliceContent = (str, slice) => [str.slice(0, str.length - slice), str.slice(-slice)];
|
18 | export 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 | };
|
33 | Truncate.displayName = 'Truncate';
|
34 |
|
\ | No newline at end of file |