@atlaskit/smart-card 17.2.0 → 17.3.2
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 +28 -0
- package/dist/cjs/constants.js +15 -1
- package/dist/cjs/extractors/flexible/index.js +2 -0
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/FlexibleCard/components/actions/{delete-action → action}/index.js +40 -25
- package/dist/cjs/view/FlexibleCard/components/actions/{types.js → action/types.js} +0 -0
- package/dist/cjs/view/FlexibleCard/components/actions/index.js +3 -1
- package/dist/cjs/view/FlexibleCard/components/actions/utils.js +34 -6
- package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.js +1 -1
- package/dist/cjs/view/FlexibleCard/components/blocks/metadata-block/index.js +17 -3
- package/dist/cjs/view/FlexibleCard/components/blocks/utils.js +27 -7
- package/dist/cjs/view/FlexibleCard/components/elements/avatar-group/index.js +24 -2
- package/dist/cjs/view/FlexibleCard/components/elements/index.js +3 -1
- package/dist/cjs/view/FlexibleCard/components/elements/text/index.js +6 -2
- package/dist/cjs/view/FlexibleCard/components/elements/utils.js +62 -39
- package/dist/es2019/constants.js +14 -1
- package/dist/es2019/extractors/flexible/index.js +3 -1
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/FlexibleCard/components/actions/{delete-action → action}/index.js +31 -15
- package/dist/es2019/view/FlexibleCard/components/actions/{types.js → action/types.js} +0 -0
- package/dist/es2019/view/FlexibleCard/components/actions/index.js +5 -3
- package/dist/es2019/view/FlexibleCard/components/actions/utils.js +27 -4
- package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.js +1 -1
- package/dist/es2019/view/FlexibleCard/components/blocks/metadata-block/index.js +17 -3
- package/dist/es2019/view/FlexibleCard/components/blocks/utils.js +37 -6
- package/dist/es2019/view/FlexibleCard/components/elements/avatar-group/index.js +28 -2
- package/dist/es2019/view/FlexibleCard/components/elements/index.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/elements/text/index.js +5 -3
- package/dist/es2019/view/FlexibleCard/components/elements/utils.js +63 -37
- package/dist/esm/constants.js +14 -1
- package/dist/esm/extractors/flexible/index.js +3 -1
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/FlexibleCard/components/actions/action/index.js +82 -0
- package/dist/esm/view/FlexibleCard/components/actions/{types.js → action/types.js} +0 -0
- package/dist/esm/view/FlexibleCard/components/actions/index.js +5 -3
- package/dist/esm/view/FlexibleCard/components/actions/utils.js +26 -4
- package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.js +1 -1
- package/dist/esm/view/FlexibleCard/components/blocks/metadata-block/index.js +17 -3
- package/dist/esm/view/FlexibleCard/components/blocks/utils.js +25 -7
- package/dist/esm/view/FlexibleCard/components/elements/avatar-group/index.js +24 -2
- package/dist/esm/view/FlexibleCard/components/elements/index.js +1 -0
- package/dist/esm/view/FlexibleCard/components/elements/text/index.js +7 -2
- package/dist/esm/view/FlexibleCard/components/elements/utils.js +62 -39
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/state/flexible-ui-context/types.d.ts +3 -2
- package/dist/types/view/FlexibleCard/components/actions/action/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/actions/action/types.d.ts +18 -0
- package/dist/types/view/FlexibleCard/components/actions/index.d.ts +1 -1
- package/dist/types/view/FlexibleCard/components/actions/utils.d.ts +2 -1
- package/dist/types/view/FlexibleCard/components/blocks/utils.d.ts +4 -2
- package/dist/types/view/FlexibleCard/components/elements/avatar-group/index.d.ts +1 -0
- package/dist/types/view/FlexibleCard/components/elements/avatar-group/types.d.ts +1 -2
- package/dist/types/view/FlexibleCard/components/elements/index.d.ts +1 -0
- package/dist/types/view/FlexibleCard/components/elements/text/types.d.ts +1 -0
- package/package.json +1 -1
- package/dist/esm/view/FlexibleCard/components/actions/delete-action/index.js +0 -64
- package/dist/types/view/FlexibleCard/components/actions/delete-action/index.d.ts +0 -5
- package/dist/types/view/FlexibleCard/components/actions/types.d.ts +0 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 17.3.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`02ed34221ef`](https://bitbucket.org/atlassian/atlassian-frontend/commits/02ed34221ef) - Flexible UI: Add Snippet element
|
|
8
|
+
|
|
9
|
+
## 17.3.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`66dc86e0331`](https://bitbucket.org/atlassian/atlassian-frontend/commits/66dc86e0331) - Flexible UI: Check for null element
|
|
14
|
+
|
|
15
|
+
## 17.3.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- [`dab29fc6697`](https://bitbucket.org/atlassian/atlassian-frontend/commits/dab29fc6697) - [ux] Flexible UI: AvatarGroup sizing updated for small and medium size
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- [`25408fac413`](https://bitbucket.org/atlassian/atlassian-frontend/commits/25408fac413) - Flexible UI: Add MetadataBlock example
|
|
24
|
+
|
|
25
|
+
## 17.2.1
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- [`1d701660954`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1d701660954) - Refactored deleteAction into a re-usable action component
|
|
30
|
+
|
|
3
31
|
## 17.2.0
|
|
4
32
|
|
|
5
33
|
### Minor Changes
|
package/dist/cjs/constants.js
CHANGED
|
@@ -60,7 +60,20 @@ exports.SmartLinkTheme = SmartLinkTheme;
|
|
|
60
60
|
SmartLinkTheme["Link"] = "link";
|
|
61
61
|
})(SmartLinkTheme || (exports.SmartLinkTheme = SmartLinkTheme = {}));
|
|
62
62
|
|
|
63
|
-
var SmartLinkWidth;
|
|
63
|
+
var SmartLinkWidth; // When adding an element...
|
|
64
|
+
// 1) Create base element if it doesn't already existed.
|
|
65
|
+
// Base element are inside src/view/FlexibleCard/components/elements.
|
|
66
|
+
// E.g. Badge,DateTime, Icon, Lozenge, etc.
|
|
67
|
+
// 2) Update FlexibleUiContext with the new prop for data representing
|
|
68
|
+
// the element, preferably with the same name as the element itself.
|
|
69
|
+
// (src/state/flexible-ui-context/types.ts)
|
|
70
|
+
// 3) Update Flexible UI extractor (src/extractors/flexible/index.ts)
|
|
71
|
+
// 4) Set base element and data mapping.
|
|
72
|
+
// (src/view/FlexibleCard/components/elements/utils.tsx)
|
|
73
|
+
// 5) Create element. (src/view/FlexibleCard/components/elements/index.ts)
|
|
74
|
+
// 6) Update element ElementDisplaySchema for inline/block display
|
|
75
|
+
// (src/view/FlexibleCard/components/blocks/utils.tsx)
|
|
76
|
+
|
|
64
77
|
exports.SmartLinkWidth = SmartLinkWidth;
|
|
65
78
|
|
|
66
79
|
(function (SmartLinkWidth) {
|
|
@@ -82,6 +95,7 @@ exports.ElementName = ElementName;
|
|
|
82
95
|
ElementName["ModifiedOn"] = "ModifiedOn";
|
|
83
96
|
ElementName["Priority"] = "Priority";
|
|
84
97
|
ElementName["ProgrammingLanguage"] = "ProgrammingLanguage";
|
|
98
|
+
ElementName["Snippet"] = "Snippet";
|
|
85
99
|
ElementName["State"] = "State";
|
|
86
100
|
ElementName["SubscriberCount"] = "SubscriberCount";
|
|
87
101
|
ElementName["Title"] = "Title";
|
|
@@ -43,6 +43,8 @@ var extractFlexibleUiContext = function extractFlexibleUiContext(response, rende
|
|
|
43
43
|
modifiedOn: (0, _extractDateUpdated.extractDateUpdated)(data),
|
|
44
44
|
priority: (0, _extractPriority.default)(data),
|
|
45
45
|
programmingLanguage: (0, _utils.extractProgrammingLanguage)(data),
|
|
46
|
+
snippet: (0, _primitives.extractSummary)(data) || undefined,
|
|
47
|
+
// Explicitly set here to remove an empty string
|
|
46
48
|
state: (0, _lozenge.extractLozenge)(data),
|
|
47
49
|
subscriberCount: (0, _utils.extractSubscriberCount)(data),
|
|
48
50
|
title: (0, _primitives.extractTitle)(data) || url,
|
package/dist/cjs/version.json
CHANGED
|
@@ -11,22 +11,16 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
|
|
|
11
11
|
|
|
12
12
|
var _react = _interopRequireDefault(require("react"));
|
|
13
13
|
|
|
14
|
-
var _reactIntlNext = require("react-intl-next");
|
|
15
|
-
|
|
16
14
|
var _core = require("@emotion/core");
|
|
17
15
|
|
|
18
16
|
var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
|
|
19
17
|
|
|
20
|
-
var _cross = _interopRequireDefault(require("@atlaskit/icon/glyph/cross"));
|
|
21
|
-
|
|
22
18
|
var _constants = require("../../../../../constants");
|
|
23
19
|
|
|
24
20
|
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
25
21
|
|
|
26
22
|
var _utils = require("../../utils");
|
|
27
23
|
|
|
28
|
-
var _messages = require("../../../../../messages");
|
|
29
|
-
|
|
30
24
|
var _token = require("../../../../../utils/token");
|
|
31
25
|
|
|
32
26
|
var _utils2 = require("../../../../../utils");
|
|
@@ -46,38 +40,59 @@ var getWidth = function getWidth(size) {
|
|
|
46
40
|
}
|
|
47
41
|
};
|
|
48
42
|
|
|
49
|
-
var
|
|
43
|
+
var getIconStyles = function getIconStyles(size) {
|
|
50
44
|
return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n ", ";\n"])), _token.tokens.actionIcon, (0, _utils.getIconSizeStyles)(getWidth(size)));
|
|
51
45
|
};
|
|
52
46
|
|
|
53
|
-
var
|
|
54
|
-
var
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
47
|
+
var ActionIcon = function ActionIcon(_ref) {
|
|
48
|
+
var size = _ref.size,
|
|
49
|
+
testId = _ref.testId,
|
|
50
|
+
icon = _ref.icon;
|
|
51
|
+
return (0, _core.jsx)("span", {
|
|
52
|
+
css: getIconStyles(size),
|
|
53
|
+
"data-testid": "".concat(testId, "-icon")
|
|
54
|
+
}, icon);
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
var Action = function Action(_ref2) {
|
|
58
|
+
var _ref2$appearance = _ref2.appearance,
|
|
59
|
+
appearance = _ref2$appearance === void 0 ? 'subtle' : _ref2$appearance,
|
|
60
|
+
content = _ref2.content,
|
|
61
|
+
onClick = _ref2.onClick,
|
|
62
|
+
_ref2$size = _ref2.size,
|
|
63
|
+
size = _ref2$size === void 0 ? _constants.SmartLinkSize.Medium : _ref2$size,
|
|
64
|
+
_ref2$testId = _ref2.testId,
|
|
65
|
+
testId = _ref2$testId === void 0 ? 'smart-action' : _ref2$testId,
|
|
66
|
+
icon = _ref2.icon,
|
|
67
|
+
_ref2$iconPosition = _ref2.iconPosition,
|
|
68
|
+
iconPosition = _ref2$iconPosition === void 0 ? 'before' : _ref2$iconPosition,
|
|
69
|
+
tooltipMessage = _ref2.tooltipMessage;
|
|
62
70
|
|
|
63
71
|
if (!onClick) {
|
|
64
72
|
return null;
|
|
65
73
|
}
|
|
66
74
|
|
|
75
|
+
var iconBefore = iconPosition === 'before' ? (0, _core.jsx)(ActionIcon, {
|
|
76
|
+
size: size,
|
|
77
|
+
testId: testId,
|
|
78
|
+
icon: icon
|
|
79
|
+
}) : undefined;
|
|
80
|
+
var iconAfter = iconPosition === 'after' ? (0, _core.jsx)(ActionIcon, {
|
|
81
|
+
size: size,
|
|
82
|
+
testId: testId,
|
|
83
|
+
icon: icon
|
|
84
|
+
}) : undefined;
|
|
67
85
|
return (0, _core.jsx)(_tooltip.default, {
|
|
68
|
-
content:
|
|
86
|
+
content: tooltipMessage
|
|
69
87
|
}, (0, _core.jsx)(_customThemeButton.default, {
|
|
70
88
|
spacing: "none",
|
|
71
89
|
appearance: appearance,
|
|
72
90
|
testId: testId,
|
|
73
|
-
onClick: (0, _utils2.handleOnClick)(onClick)
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}, (0, _core.jsx)(_cross.default, {
|
|
78
|
-
label: "Delete"
|
|
79
|
-
}))));
|
|
91
|
+
onClick: (0, _utils2.handleOnClick)(onClick),
|
|
92
|
+
iconBefore: iconBefore,
|
|
93
|
+
iconAfter: iconAfter
|
|
94
|
+
}, content));
|
|
80
95
|
};
|
|
81
96
|
|
|
82
|
-
var _default =
|
|
97
|
+
var _default = Action;
|
|
83
98
|
exports.default = _default;
|
|
File without changes
|
|
@@ -12,5 +12,7 @@ var _utils = require("./utils");
|
|
|
12
12
|
// Attention: Keep the export name and action name the same.
|
|
13
13
|
// This will help reducing the code for mapping action inside
|
|
14
14
|
// createAction and renderActionItems
|
|
15
|
-
|
|
15
|
+
// UIActions infer that you do not need to get any data from the context.
|
|
16
|
+
// DataActions infer that the action depends on the data from the context.
|
|
17
|
+
var DeleteAction = (0, _utils.createUIAction)(_constants.ActionName.DeleteAction);
|
|
16
18
|
exports.DeleteAction = DeleteAction;
|
|
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.
|
|
10
|
+
exports.createUIAction = exports.createDataAction = void 0;
|
|
11
11
|
|
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
13
|
|
|
@@ -19,14 +19,27 @@ var _flexibleUiContext = require("../../../../state/flexible-ui-context");
|
|
|
19
19
|
|
|
20
20
|
var _react = _interopRequireWildcard(require("react"));
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _action = _interopRequireDefault(require("./action"));
|
|
23
|
+
|
|
24
|
+
var _reactIntlNext = require("react-intl-next");
|
|
25
|
+
|
|
26
|
+
var _messages = require("../../../../messages");
|
|
27
|
+
|
|
28
|
+
var _cross = _interopRequireDefault(require("@atlaskit/icon/glyph/cross"));
|
|
23
29
|
|
|
24
30
|
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); }
|
|
25
31
|
|
|
26
32
|
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; }
|
|
27
33
|
|
|
28
34
|
var actionMappings = (0, _defineProperty2.default)({}, _constants.ActionName.DeleteAction, {
|
|
29
|
-
component:
|
|
35
|
+
component: _action.default,
|
|
36
|
+
props: {
|
|
37
|
+
testId: 'smart-action-delete-action',
|
|
38
|
+
icon: /*#__PURE__*/_react.default.createElement(_cross.default, {
|
|
39
|
+
label: "Delete"
|
|
40
|
+
}),
|
|
41
|
+
toolTipMessage: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.delete)
|
|
42
|
+
}
|
|
30
43
|
});
|
|
31
44
|
|
|
32
45
|
var getContextKey = function getContextKey(name) {
|
|
@@ -43,13 +56,12 @@ var getActionData = function getActionData(actionName, contextKey, context) {
|
|
|
43
56
|
var data = context[contextKey];
|
|
44
57
|
|
|
45
58
|
switch (actionName) {
|
|
46
|
-
case _constants.ActionName.DeleteAction:
|
|
47
59
|
default:
|
|
48
60
|
return data;
|
|
49
61
|
}
|
|
50
62
|
};
|
|
51
63
|
|
|
52
|
-
var
|
|
64
|
+
var createDataAction = function createDataAction(name) {
|
|
53
65
|
var _ref = actionMappings[name] || {},
|
|
54
66
|
BaseAction = _ref.component,
|
|
55
67
|
props = _ref.props;
|
|
@@ -67,4 +79,20 @@ var createAction = function createAction(name) {
|
|
|
67
79
|
};
|
|
68
80
|
};
|
|
69
81
|
|
|
70
|
-
exports.
|
|
82
|
+
exports.createDataAction = createDataAction;
|
|
83
|
+
|
|
84
|
+
var createUIAction = function createUIAction(name) {
|
|
85
|
+
var _ref2 = actionMappings[name] || {},
|
|
86
|
+
BaseAction = _ref2.component,
|
|
87
|
+
props = _ref2.props;
|
|
88
|
+
|
|
89
|
+
if (!BaseAction) {
|
|
90
|
+
throw Error("Action ".concat(name, " does not exist."));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return function (overrides) {
|
|
94
|
+
return /*#__PURE__*/_react.default.createElement(BaseAction, (0, _extends2.default)({}, props, overrides));
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
exports.createUIAction = createUIAction;
|
|
@@ -19,7 +19,7 @@ var _constants = require("../../../../../constants");
|
|
|
19
19
|
|
|
20
20
|
var _templateObject;
|
|
21
21
|
|
|
22
|
-
var styles = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n line-height:
|
|
22
|
+
var styles = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n line-height: 1rem;\n"])));
|
|
23
23
|
|
|
24
24
|
var ActionGroup = function ActionGroup(_ref) {
|
|
25
25
|
var _ref$items = _ref.items,
|
|
@@ -37,18 +37,32 @@ var getElementGroupStyles = function getElementGroupStyles(size, maxLines) {
|
|
|
37
37
|
// MetadataBlock allows metadata elements to be displayed in
|
|
38
38
|
// multiple lines, with maximum of 2 lines.
|
|
39
39
|
// a) We need the height of the line to be equal on both left and right
|
|
40
|
-
// sides so they line up nicely.
|
|
41
|
-
// all elements in specific size. This height belongs to AvatarGroup.
|
|
40
|
+
// sides so they line up nicely.
|
|
42
41
|
// b) There is no way to truncate non-text elements nicely. Here
|
|
43
42
|
// it's fix max height of the element group so that anything that is
|
|
44
43
|
// overflown will not be visible.
|
|
45
|
-
var lineHeight =
|
|
44
|
+
var lineHeight = getLineHeight(size);
|
|
46
45
|
var gap = (0, _utils.getGapSize)(size);
|
|
47
46
|
var gapHeight = gap * (maxLines - 1);
|
|
48
47
|
var height = lineHeight * maxLines + gapHeight;
|
|
49
48
|
return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n flex-wrap: wrap;\n line-height: ", "rem;\n max-height: ", "rem;\n > span,\n > div {\n min-height: ", "rem;\n max-height: ", "rem;\n line-height: ", "rem;\n }\n "])), lineHeight, height, lineHeight, lineHeight, lineHeight);
|
|
50
49
|
};
|
|
51
50
|
|
|
51
|
+
var getLineHeight = function getLineHeight(size) {
|
|
52
|
+
// The maximum height of all elements in specific size.
|
|
53
|
+
// These heights belongs to AvatarGroup.
|
|
54
|
+
switch (size) {
|
|
55
|
+
case _constants.SmartLinkSize.XLarge:
|
|
56
|
+
case _constants.SmartLinkSize.Large:
|
|
57
|
+
return 1.75;
|
|
58
|
+
|
|
59
|
+
case _constants.SmartLinkSize.Medium:
|
|
60
|
+
case _constants.SmartLinkSize.Small:
|
|
61
|
+
default:
|
|
62
|
+
return 1.5;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
52
66
|
var getMaxLines = function getMaxLines(maxLines) {
|
|
53
67
|
if (maxLines > MAXIMUM_MAX_LINES) {
|
|
54
68
|
return DEFAULT_MAX_LINES;
|
|
@@ -7,16 +7,18 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.renderElementItems = exports.renderChildren = exports.renderActionItems = exports.getGapSize = exports.getBaseStyles = void 0;
|
|
11
|
-
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
exports.renderElementItems = exports.renderChildren = exports.renderActionItems = exports.getGapSize = exports.getBaseStyles = exports.ElementDisplaySchema = void 0;
|
|
13
11
|
|
|
14
12
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
13
|
|
|
14
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
15
|
+
|
|
16
16
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
17
17
|
|
|
18
18
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
19
19
|
|
|
20
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
+
|
|
20
22
|
var _react = _interopRequireDefault(require("react"));
|
|
21
23
|
|
|
22
24
|
var _core = require("@emotion/core");
|
|
@@ -36,12 +38,15 @@ var _elementGroup = _interopRequireDefault(require("./element-group"));
|
|
|
36
38
|
var _excluded = ["name"],
|
|
37
39
|
_excluded2 = ["name"];
|
|
38
40
|
|
|
39
|
-
var _templateObject, _templateObject2, _templateObject3;
|
|
41
|
+
var _ElementDisplaySchema, _templateObject, _templateObject2, _templateObject3;
|
|
40
42
|
|
|
41
43
|
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); }
|
|
42
44
|
|
|
43
45
|
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; }
|
|
44
46
|
|
|
47
|
+
var ElementDisplaySchema = (_ElementDisplaySchema = {}, (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AuthorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CollaboratorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CommentCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CreatedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CreatedOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.LinkIcon, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Priority, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ProgrammingLanguage, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Snippet, ['block']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.State, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.SubscriberCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Title, ['inline']), _ElementDisplaySchema);
|
|
48
|
+
exports.ElementDisplaySchema = ElementDisplaySchema;
|
|
49
|
+
|
|
45
50
|
var getDirectionStyles = function getDirectionStyles(direction) {
|
|
46
51
|
switch (direction) {
|
|
47
52
|
case _constants.SmartLinkDirection.Vertical:
|
|
@@ -82,6 +87,16 @@ var isActionGroup = function isActionGroup(node) {
|
|
|
82
87
|
return /*#__PURE__*/_react.default.isValidElement(node) && node.type === _actionGroup.default;
|
|
83
88
|
};
|
|
84
89
|
|
|
90
|
+
var isElementDisplayValid = function isElementDisplayValid(name, display) {
|
|
91
|
+
var _ElementDisplaySchema2, _ElementDisplaySchema3;
|
|
92
|
+
|
|
93
|
+
return (_ElementDisplaySchema2 = (_ElementDisplaySchema3 = ElementDisplaySchema[name]) === null || _ElementDisplaySchema3 === void 0 ? void 0 : _ElementDisplaySchema3.includes(display)) !== null && _ElementDisplaySchema2 !== void 0 ? _ElementDisplaySchema2 : false;
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
var isElementNull = function isElementNull(children) {
|
|
97
|
+
return Boolean(children.type() === null);
|
|
98
|
+
};
|
|
99
|
+
|
|
85
100
|
var isElementOrElementGroup = function isElementOrElementGroup(node) {
|
|
86
101
|
return /*#__PURE__*/_react.default.isValidElement(node) && ((0, _flexible.isFlexibleUiElement)(node) || node.type === _elementGroup.default);
|
|
87
102
|
};
|
|
@@ -104,15 +119,20 @@ exports.renderChildren = renderChildren;
|
|
|
104
119
|
|
|
105
120
|
var renderElementItems = function renderElementItems() {
|
|
106
121
|
var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
122
|
+
var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'inline';
|
|
107
123
|
var elements = items.reduce(function (acc, curr, idx) {
|
|
108
124
|
var name = curr.name,
|
|
109
125
|
props = (0, _objectWithoutProperties2.default)(curr, _excluded);
|
|
110
126
|
var Element = Elements[name];
|
|
111
127
|
|
|
112
|
-
if (Element) {
|
|
113
|
-
|
|
128
|
+
if (Element && isElementDisplayValid(name, display)) {
|
|
129
|
+
var element = /*#__PURE__*/_react.default.createElement(Element, (0, _extends2.default)({
|
|
114
130
|
key: idx
|
|
115
|
-
}, props))
|
|
131
|
+
}, props));
|
|
132
|
+
|
|
133
|
+
if (!isElementNull(element)) {
|
|
134
|
+
return [].concat((0, _toConsumableArray2.default)(acc), [element]);
|
|
135
|
+
}
|
|
116
136
|
}
|
|
117
137
|
|
|
118
138
|
return acc;
|
|
@@ -7,14 +7,34 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
|
|
10
12
|
var _react = _interopRequireDefault(require("react"));
|
|
11
13
|
|
|
14
|
+
var _core = require("@emotion/core");
|
|
15
|
+
|
|
12
16
|
var _avatarGroup = _interopRequireDefault(require("@atlaskit/avatar-group"));
|
|
13
17
|
|
|
14
18
|
var _constants = require("../../../../../constants");
|
|
15
19
|
|
|
20
|
+
var _templateObject;
|
|
21
|
+
|
|
16
22
|
var MAX_COUNT = 4;
|
|
17
23
|
|
|
24
|
+
var getStyles = function getStyles(size) {
|
|
25
|
+
switch (size) {
|
|
26
|
+
case _constants.SmartLinkSize.XLarge:
|
|
27
|
+
case _constants.SmartLinkSize.Large:
|
|
28
|
+
// Default AK small size
|
|
29
|
+
return;
|
|
30
|
+
|
|
31
|
+
case _constants.SmartLinkSize.Medium:
|
|
32
|
+
case _constants.SmartLinkSize.Small:
|
|
33
|
+
default:
|
|
34
|
+
return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n li {\n span,\n svg {\n max-height: 1.25rem;\n max-width: 1.25rem;\n }\n }\n "])));
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
|
|
18
38
|
var AvatarGroup = function AvatarGroup(_ref) {
|
|
19
39
|
var _ref$items = _ref.items,
|
|
20
40
|
items = _ref$items === void 0 ? [] : _ref$items,
|
|
@@ -29,13 +49,15 @@ var AvatarGroup = function AvatarGroup(_ref) {
|
|
|
29
49
|
return null;
|
|
30
50
|
}
|
|
31
51
|
|
|
32
|
-
return
|
|
52
|
+
return (0, _core.jsx)("span", {
|
|
53
|
+
css: getStyles(size)
|
|
54
|
+
}, (0, _core.jsx)(_avatarGroup.default, {
|
|
33
55
|
maxCount: maxCount,
|
|
34
56
|
appearance: "stack",
|
|
35
57
|
size: "small",
|
|
36
58
|
data: items,
|
|
37
59
|
testId: testId
|
|
38
|
-
});
|
|
60
|
+
}));
|
|
39
61
|
};
|
|
40
62
|
|
|
41
63
|
var _default = AvatarGroup;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.Title = exports.SubscriberCount = exports.State = exports.ProgrammingLanguage = exports.Priority = exports.ModifiedOn = exports.ModifiedBy = exports.LinkIcon = exports.CreatedOn = exports.CreatedBy = exports.CommentCount = exports.CollaboratorGroup = exports.AuthorGroup = void 0;
|
|
6
|
+
exports.Title = exports.SubscriberCount = exports.State = exports.Snippet = exports.ProgrammingLanguage = exports.Priority = exports.ModifiedOn = exports.ModifiedBy = exports.LinkIcon = exports.CreatedOn = exports.CreatedBy = exports.CommentCount = exports.CollaboratorGroup = exports.AuthorGroup = void 0;
|
|
7
7
|
|
|
8
8
|
var _utils = require("./utils");
|
|
9
9
|
|
|
@@ -32,6 +32,8 @@ var Priority = (0, _utils.createElement)(_constants.ElementName.Priority);
|
|
|
32
32
|
exports.Priority = Priority;
|
|
33
33
|
var ProgrammingLanguage = (0, _utils.createElement)(_constants.ElementName.ProgrammingLanguage);
|
|
34
34
|
exports.ProgrammingLanguage = ProgrammingLanguage;
|
|
35
|
+
var Snippet = (0, _utils.createElement)(_constants.ElementName.Snippet);
|
|
36
|
+
exports.Snippet = Snippet;
|
|
35
37
|
var State = (0, _utils.createElement)(_constants.ElementName.State);
|
|
36
38
|
exports.State = State;
|
|
37
39
|
var SubscriberCount = (0, _utils.createElement)(_constants.ElementName.SubscriberCount);
|
|
@@ -19,10 +19,14 @@ var _token = require("../../../../../utils/token");
|
|
|
19
19
|
|
|
20
20
|
var _templateObject;
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var getStyles = function getStyles(maxLines) {
|
|
23
|
+
return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n font-size: 0.75rem;\n line-height: 1rem;\n ", "\n"])), _token.tokens.text, (0, _utils.getTruncateStyles)(maxLines));
|
|
24
|
+
};
|
|
23
25
|
|
|
24
26
|
var Text = function Text(_ref) {
|
|
25
27
|
var content = _ref.content,
|
|
28
|
+
_ref$maxLines = _ref.maxLines,
|
|
29
|
+
maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
|
|
26
30
|
message = _ref.message,
|
|
27
31
|
_ref$testId = _ref.testId,
|
|
28
32
|
testId = _ref$testId === void 0 ? 'smart-element-text' : _ref$testId;
|
|
@@ -32,7 +36,7 @@ var Text = function Text(_ref) {
|
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
return (0, _core.jsx)("span", {
|
|
35
|
-
css:
|
|
39
|
+
css: getStyles(maxLines),
|
|
36
40
|
"data-smart-element-text": true,
|
|
37
41
|
"data-testid": testId
|
|
38
42
|
}, (0, _utils.getFormattedMessage)(message) || content);
|
|
@@ -63,6 +63,11 @@ var elementMappings = (_elementMappings = {}, (0, _defineProperty2.default)(_ele
|
|
|
63
63
|
props: {
|
|
64
64
|
icon: _constants.IconType.ProgrammingLanguage
|
|
65
65
|
}
|
|
66
|
+
}), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.Snippet, {
|
|
67
|
+
component: _text.default,
|
|
68
|
+
props: {
|
|
69
|
+
maxLines: 3
|
|
70
|
+
}
|
|
66
71
|
}), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.State, {
|
|
67
72
|
component: _lozenge.default
|
|
68
73
|
}), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.SubscriberCount, {
|
|
@@ -84,17 +89,6 @@ var getContextKey = function getContextKey(name) {
|
|
|
84
89
|
return name.length > 0 ? name.charAt(0).toLowerCase() + name.slice(1) : undefined;
|
|
85
90
|
};
|
|
86
91
|
|
|
87
|
-
var getFormattedMessage = function getFormattedMessage(descriptor, value) {
|
|
88
|
-
return value ? {
|
|
89
|
-
message: {
|
|
90
|
-
descriptor: descriptor,
|
|
91
|
-
values: {
|
|
92
|
-
context: value
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
} : undefined;
|
|
96
|
-
};
|
|
97
|
-
|
|
98
92
|
var getData = function getData(elementName, contextKey, context) {
|
|
99
93
|
if (!context) {
|
|
100
94
|
return undefined;
|
|
@@ -103,52 +97,81 @@ var getData = function getData(elementName, contextKey, context) {
|
|
|
103
97
|
var data = context[contextKey];
|
|
104
98
|
|
|
105
99
|
switch (elementName) {
|
|
100
|
+
case _constants.ElementName.AuthorGroup:
|
|
101
|
+
case _constants.ElementName.CollaboratorGroup:
|
|
102
|
+
return toAvatarGroupProps(data);
|
|
103
|
+
|
|
106
104
|
case _constants.ElementName.CommentCount:
|
|
107
105
|
case _constants.ElementName.ProgrammingLanguage:
|
|
108
106
|
case _constants.ElementName.SubscriberCount:
|
|
109
|
-
return
|
|
110
|
-
label: data
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
case _constants.ElementName.AuthorGroup:
|
|
114
|
-
return {
|
|
115
|
-
items: context.authorGroup
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
case _constants.ElementName.CollaboratorGroup:
|
|
119
|
-
return {
|
|
120
|
-
items: context.collaboratorGroup
|
|
121
|
-
};
|
|
107
|
+
return toBadgeProps(data);
|
|
122
108
|
|
|
123
109
|
case _constants.ElementName.CreatedBy:
|
|
124
|
-
return
|
|
110
|
+
return toFormattedTextProps(_messages.messages.created_by, context.createdBy);
|
|
111
|
+
|
|
112
|
+
case _constants.ElementName.CreatedOn:
|
|
113
|
+
return toDateTimeProps('created', context.createdOn);
|
|
125
114
|
|
|
126
115
|
case _constants.ElementName.ModifiedBy:
|
|
127
|
-
return
|
|
116
|
+
return toFormattedTextProps(_messages.messages.modified_by, context.modifiedBy);
|
|
128
117
|
|
|
129
118
|
case _constants.ElementName.ModifiedOn:
|
|
130
|
-
return context.modifiedOn
|
|
131
|
-
date: new Date(context.modifiedOn),
|
|
132
|
-
type: 'modified'
|
|
133
|
-
} : undefined;
|
|
119
|
+
return toDateTimeProps('modified', context.modifiedOn);
|
|
134
120
|
|
|
135
|
-
case _constants.ElementName.
|
|
136
|
-
return
|
|
137
|
-
date: new Date(context.createdOn),
|
|
138
|
-
type: 'created'
|
|
139
|
-
} : undefined;
|
|
121
|
+
case _constants.ElementName.Snippet:
|
|
122
|
+
return toTextProps(data);
|
|
140
123
|
|
|
141
124
|
case _constants.ElementName.Title:
|
|
142
|
-
return
|
|
143
|
-
text: context.title,
|
|
144
|
-
url: context.url
|
|
145
|
-
};
|
|
125
|
+
return toLinkProps(context.title, context.url);
|
|
146
126
|
|
|
147
127
|
default:
|
|
148
128
|
return data;
|
|
149
129
|
}
|
|
150
130
|
};
|
|
151
131
|
|
|
132
|
+
var toAvatarGroupProps = function toAvatarGroupProps(items) {
|
|
133
|
+
return items ? {
|
|
134
|
+
items: items
|
|
135
|
+
} : undefined;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
var toBadgeProps = function toBadgeProps(label) {
|
|
139
|
+
return label ? {
|
|
140
|
+
label: label
|
|
141
|
+
} : undefined;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
var toDateTimeProps = function toDateTimeProps(type, dateString) {
|
|
145
|
+
return dateString ? {
|
|
146
|
+
date: new Date(dateString),
|
|
147
|
+
type: type
|
|
148
|
+
} : undefined;
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
var toFormattedTextProps = function toFormattedTextProps(descriptor, context) {
|
|
152
|
+
return context ? {
|
|
153
|
+
message: {
|
|
154
|
+
descriptor: descriptor,
|
|
155
|
+
values: {
|
|
156
|
+
context: context
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
} : undefined;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
var toLinkProps = function toLinkProps(text, url) {
|
|
163
|
+
return text ? {
|
|
164
|
+
text: text,
|
|
165
|
+
url: url
|
|
166
|
+
} : undefined;
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
var toTextProps = function toTextProps(content) {
|
|
170
|
+
return content ? {
|
|
171
|
+
content: content
|
|
172
|
+
} : undefined;
|
|
173
|
+
};
|
|
174
|
+
|
|
152
175
|
var createElement = function createElement(name) {
|
|
153
176
|
var _ref = elementMappings[name] || {},
|
|
154
177
|
BaseElement = _ref.component,
|