@atlaskit/smart-card 18.0.19 → 18.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/FlexibleCard/components/elements/link/index.js +13 -4
- package/dist/cjs/view/FlexibleCard/components/utils.js +10 -3
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/FlexibleCard/components/elements/link/index.js +21 -18
- package/dist/es2019/view/FlexibleCard/components/utils.js +6 -3
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/FlexibleCard/components/elements/link/index.js +8 -5
- package/dist/esm/view/FlexibleCard/components/utils.js +5 -1
- package/dist/types/view/FlexibleCard/components/utils.d.ts +2 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/dist/cjs/version.json
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
@@ -9,7 +11,7 @@ exports.default = void 0;
|
|
|
9
11
|
|
|
10
12
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
13
|
|
|
12
|
-
var _react =
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
13
15
|
|
|
14
16
|
var _core = require("@emotion/core");
|
|
15
17
|
|
|
@@ -23,6 +25,10 @@ var _token = require("../../../../../utils/token");
|
|
|
23
25
|
|
|
24
26
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
25
27
|
|
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
+
|
|
30
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
+
|
|
26
32
|
var DEFAULT_MAX_LINES = 2;
|
|
27
33
|
var MAXIMUM_MAX_LINES = 2;
|
|
28
34
|
var MINIMUM_MAX_LINES = 1;
|
|
@@ -40,9 +46,9 @@ var getThemeStyles = function getThemeStyles(theme) {
|
|
|
40
46
|
}
|
|
41
47
|
};
|
|
42
48
|
|
|
43
|
-
var getAnchorStyles = function getAnchorStyles(size, theme, maxLines) {
|
|
49
|
+
var getAnchorStyles = function getAnchorStyles(size, theme, maxLines, hasSpace) {
|
|
44
50
|
var sizeStyles = (0, _utils.getLinkSizeStyles)(size);
|
|
45
|
-
return (0, _core.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n flex: 1 1 auto;\n ", "\n ", "\n // Theme should be last to be spread because it contains override values\n ", "\n "])), sizeStyles, (0, _utils.getTruncateStyles)(maxLines, (0, _utils.getLinkLineHeight)(size)), getThemeStyles(theme));
|
|
51
|
+
return (0, _core.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n flex: 1 1 auto;\n ", "\n ", "\n // Theme should be last to be spread because it contains override values\n ", "\n "])), sizeStyles, (0, _utils.getTruncateStyles)(maxLines, (0, _utils.getLinkLineHeight)(size), hasSpace ? 'break-word' : 'break-all'), getThemeStyles(theme));
|
|
46
52
|
};
|
|
47
53
|
|
|
48
54
|
var getMaxLines = function getMaxLines(maxLines) {
|
|
@@ -78,6 +84,9 @@ var Link = function Link(_ref) {
|
|
|
78
84
|
url = _ref.url,
|
|
79
85
|
onClick = _ref.onClick,
|
|
80
86
|
target = _ref.target;
|
|
87
|
+
var hasSpace = (0, _react.useMemo)(function () {
|
|
88
|
+
return text ? (0, _utils.hasWhiteSpace)(text) : false;
|
|
89
|
+
}, [text]);
|
|
81
90
|
return (0, _core.jsx)("span", {
|
|
82
91
|
css: containerStyles
|
|
83
92
|
}, (0, _core.jsx)(_tooltip.default, {
|
|
@@ -85,7 +94,7 @@ var Link = function Link(_ref) {
|
|
|
85
94
|
testId: "".concat(testId, "-tooltip"),
|
|
86
95
|
tag: "span"
|
|
87
96
|
}, (0, _core.jsx)("a", {
|
|
88
|
-
css: [getAnchorStyles(size, theme, getMaxLines(maxLines)), overrideCss],
|
|
97
|
+
css: [getAnchorStyles(size, theme, getMaxLines(maxLines), hasSpace), overrideCss],
|
|
89
98
|
"data-smart-element-link": true,
|
|
90
99
|
"data-testid": testId,
|
|
91
100
|
onClick: onClick,
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.getTruncateStyles = exports.getMaxLines = exports.getLinkSizeStyles = exports.getLinkLineHeight = exports.getIconWidth = exports.getIconSizeStyles = exports.getFormattedMessage = void 0;
|
|
8
|
+
exports.hasWhiteSpace = exports.getTruncateStyles = exports.getMaxLines = exports.getLinkSizeStyles = exports.getLinkLineHeight = exports.getIconWidth = exports.getIconSizeStyles = exports.getFormattedMessage = void 0;
|
|
9
9
|
|
|
10
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
11
|
|
|
@@ -111,7 +111,14 @@ exports.getMaxLines = getMaxLines;
|
|
|
111
111
|
|
|
112
112
|
var getTruncateStyles = function getTruncateStyles(maxLines) {
|
|
113
113
|
var lineHeight = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '1rem';
|
|
114
|
-
|
|
114
|
+
var wordBreak = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'break-word';
|
|
115
|
+
return (0, _core.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n display: -webkit-box;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: ", ";\n -webkit-line-clamp: ", ";\n -webkit-box-orient: vertical;\n // Fallback options\n max-height: calc(", " * ", ");\n "])), wordBreak, maxLines, maxLines, lineHeight);
|
|
115
116
|
};
|
|
116
117
|
|
|
117
|
-
exports.getTruncateStyles = getTruncateStyles;
|
|
118
|
+
exports.getTruncateStyles = getTruncateStyles;
|
|
119
|
+
|
|
120
|
+
var hasWhiteSpace = function hasWhiteSpace(str) {
|
|
121
|
+
return str.search(/\s/) >= 0;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
exports.hasWhiteSpace = hasWhiteSpace;
|
package/dist/es2019/version.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/** @jsx jsx */
|
|
2
|
-
import React from 'react';
|
|
2
|
+
import React, { useMemo } from 'react';
|
|
3
3
|
import { css, jsx } from '@emotion/core';
|
|
4
4
|
import Tooltip from '@atlaskit/tooltip';
|
|
5
5
|
import { SmartLinkSize, SmartLinkTheme } from '../../../../../constants';
|
|
6
|
-
import { getLinkLineHeight, getLinkSizeStyles, getTruncateStyles } from '../../utils';
|
|
6
|
+
import { getLinkLineHeight, getLinkSizeStyles, getTruncateStyles, hasWhiteSpace } from '../../utils';
|
|
7
7
|
import { tokens } from '../../../../../utils/token';
|
|
8
8
|
const DEFAULT_MAX_LINES = 2;
|
|
9
9
|
const MAXIMUM_MAX_LINES = 2;
|
|
@@ -42,12 +42,12 @@ const getThemeStyles = theme => {
|
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
const getAnchorStyles = (size, theme, maxLines) => {
|
|
45
|
+
const getAnchorStyles = (size, theme, maxLines, hasSpace) => {
|
|
46
46
|
const sizeStyles = getLinkSizeStyles(size);
|
|
47
47
|
return css`
|
|
48
48
|
flex: 1 1 auto;
|
|
49
49
|
${sizeStyles}
|
|
50
|
-
${getTruncateStyles(maxLines, getLinkLineHeight(size))}
|
|
50
|
+
${getTruncateStyles(maxLines, getLinkLineHeight(size), hasSpace ? 'break-word' : 'break-all')}
|
|
51
51
|
// Theme should be last to be spread because it contains override values
|
|
52
52
|
${getThemeStyles(theme)}
|
|
53
53
|
`;
|
|
@@ -82,19 +82,22 @@ const Link = ({
|
|
|
82
82
|
url,
|
|
83
83
|
onClick,
|
|
84
84
|
target
|
|
85
|
-
}) =>
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
"
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
85
|
+
}) => {
|
|
86
|
+
const hasSpace = useMemo(() => text ? hasWhiteSpace(text) : false, [text]);
|
|
87
|
+
return jsx("span", {
|
|
88
|
+
css: containerStyles
|
|
89
|
+
}, jsx(Tooltip, {
|
|
90
|
+
content: text,
|
|
91
|
+
testId: `${testId}-tooltip`,
|
|
92
|
+
tag: "span"
|
|
93
|
+
}, jsx("a", {
|
|
94
|
+
css: [getAnchorStyles(size, theme, getMaxLines(maxLines), hasSpace), overrideCss],
|
|
95
|
+
"data-smart-element-link": true,
|
|
96
|
+
"data-testid": testId,
|
|
97
|
+
onClick: onClick,
|
|
98
|
+
href: url,
|
|
99
|
+
target: target || '_blank'
|
|
100
|
+
}, text)));
|
|
101
|
+
};
|
|
99
102
|
|
|
100
103
|
export default Link;
|
|
@@ -107,13 +107,16 @@ export const getMaxLines = (value, defaultValue, max, min) => {
|
|
|
107
107
|
|
|
108
108
|
return value;
|
|
109
109
|
};
|
|
110
|
-
export const getTruncateStyles = (maxLines, lineHeight = '1rem') => css`
|
|
110
|
+
export const getTruncateStyles = (maxLines, lineHeight = '1rem', wordBreak = 'break-word') => css`
|
|
111
111
|
display: -webkit-box;
|
|
112
112
|
overflow: hidden;
|
|
113
113
|
text-overflow: ellipsis;
|
|
114
|
-
word-break:
|
|
114
|
+
word-break: ${wordBreak};
|
|
115
115
|
-webkit-line-clamp: ${maxLines};
|
|
116
116
|
-webkit-box-orient: vertical;
|
|
117
117
|
// Fallback options
|
|
118
118
|
max-height: calc(${maxLines} * ${lineHeight});
|
|
119
|
-
`;
|
|
119
|
+
`;
|
|
120
|
+
export const hasWhiteSpace = str => {
|
|
121
|
+
return str.search(/\s/) >= 0;
|
|
122
|
+
};
|
package/dist/esm/version.json
CHANGED
|
@@ -3,11 +3,11 @@ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral
|
|
|
3
3
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
4
4
|
|
|
5
5
|
/** @jsx jsx */
|
|
6
|
-
import React from 'react';
|
|
6
|
+
import React, { useMemo } from 'react';
|
|
7
7
|
import { css, jsx } from '@emotion/core';
|
|
8
8
|
import Tooltip from '@atlaskit/tooltip';
|
|
9
9
|
import { SmartLinkSize, SmartLinkTheme } from '../../../../../constants';
|
|
10
|
-
import { getLinkLineHeight, getLinkSizeStyles, getTruncateStyles } from '../../utils';
|
|
10
|
+
import { getLinkLineHeight, getLinkSizeStyles, getTruncateStyles, hasWhiteSpace } from '../../utils';
|
|
11
11
|
import { tokens } from '../../../../../utils/token';
|
|
12
12
|
var DEFAULT_MAX_LINES = 2;
|
|
13
13
|
var MAXIMUM_MAX_LINES = 2;
|
|
@@ -26,9 +26,9 @@ var getThemeStyles = function getThemeStyles(theme) {
|
|
|
26
26
|
}
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
var getAnchorStyles = function getAnchorStyles(size, theme, maxLines) {
|
|
29
|
+
var getAnchorStyles = function getAnchorStyles(size, theme, maxLines, hasSpace) {
|
|
30
30
|
var sizeStyles = getLinkSizeStyles(size);
|
|
31
|
-
return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n flex: 1 1 auto;\n ", "\n ", "\n // Theme should be last to be spread because it contains override values\n ", "\n "])), sizeStyles, getTruncateStyles(maxLines, getLinkLineHeight(size)), getThemeStyles(theme));
|
|
31
|
+
return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n flex: 1 1 auto;\n ", "\n ", "\n // Theme should be last to be spread because it contains override values\n ", "\n "])), sizeStyles, getTruncateStyles(maxLines, getLinkLineHeight(size), hasSpace ? 'break-word' : 'break-all'), getThemeStyles(theme));
|
|
32
32
|
};
|
|
33
33
|
|
|
34
34
|
var getMaxLines = function getMaxLines(maxLines) {
|
|
@@ -64,6 +64,9 @@ var Link = function Link(_ref) {
|
|
|
64
64
|
url = _ref.url,
|
|
65
65
|
onClick = _ref.onClick,
|
|
66
66
|
target = _ref.target;
|
|
67
|
+
var hasSpace = useMemo(function () {
|
|
68
|
+
return text ? hasWhiteSpace(text) : false;
|
|
69
|
+
}, [text]);
|
|
67
70
|
return jsx("span", {
|
|
68
71
|
css: containerStyles
|
|
69
72
|
}, jsx(Tooltip, {
|
|
@@ -71,7 +74,7 @@ var Link = function Link(_ref) {
|
|
|
71
74
|
testId: "".concat(testId, "-tooltip"),
|
|
72
75
|
tag: "span"
|
|
73
76
|
}, jsx("a", {
|
|
74
|
-
css: [getAnchorStyles(size, theme, getMaxLines(maxLines)), overrideCss],
|
|
77
|
+
css: [getAnchorStyles(size, theme, getMaxLines(maxLines), hasSpace), overrideCss],
|
|
75
78
|
"data-smart-element-link": true,
|
|
76
79
|
"data-testid": testId,
|
|
77
80
|
onClick: onClick,
|
|
@@ -80,5 +80,9 @@ export var getMaxLines = function getMaxLines(value, defaultValue, max, min) {
|
|
|
80
80
|
};
|
|
81
81
|
export var getTruncateStyles = function getTruncateStyles(maxLines) {
|
|
82
82
|
var lineHeight = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '1rem';
|
|
83
|
-
|
|
83
|
+
var wordBreak = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'break-word';
|
|
84
|
+
return css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display: -webkit-box;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: ", ";\n -webkit-line-clamp: ", ";\n -webkit-box-orient: vertical;\n // Fallback options\n max-height: calc(", " * ", ");\n "])), wordBreak, maxLines, maxLines, lineHeight);
|
|
85
|
+
};
|
|
86
|
+
export var hasWhiteSpace = function hasWhiteSpace(str) {
|
|
87
|
+
return str.search(/\s/) >= 0;
|
|
84
88
|
};
|
|
@@ -8,4 +8,5 @@ export declare const getIconWidth: (size?: SmartLinkSize | undefined) => string;
|
|
|
8
8
|
export declare const getLinkLineHeight: (size: SmartLinkSize) => string;
|
|
9
9
|
export declare const getLinkSizeStyles: (size: SmartLinkSize) => SerializedStyles;
|
|
10
10
|
export declare const getMaxLines: (value: number, defaultValue: number, max: number, min: number) => number;
|
|
11
|
-
export declare const getTruncateStyles: (maxLines: number, lineHeight?: string) => SerializedStyles;
|
|
11
|
+
export declare const getTruncateStyles: (maxLines: number, lineHeight?: string, wordBreak?: 'break-word' | 'break-all') => SerializedStyles;
|
|
12
|
+
export declare const hasWhiteSpace: (str: string) => boolean;
|