@atlaskit/smart-card 26.15.11 → 26.16.1
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 +12 -0
- package/dist/cjs/constants.js +1 -0
- package/dist/cjs/extractors/flexible/index.js +1 -0
- package/dist/cjs/extractors/flexible/utils.js +5 -1
- package/dist/cjs/messages.js +10 -0
- package/dist/cjs/utils/analytics/analytics.js +1 -1
- package/dist/cjs/view/FlexibleCard/components/blocks/utils.js +1 -1
- package/dist/cjs/view/FlexibleCard/components/elements/date-time/index.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/elements/index.js +8 -2
- package/dist/cjs/view/FlexibleCard/components/elements/utils.js +4 -0
- package/dist/cjs/view/HoverCard/components/{SnippetOrPreview.js → ImagePreview.js} +19 -17
- package/dist/cjs/view/HoverCard/components/views/resolved/index.js +5 -5
- package/dist/cjs/view/HoverCard/components/views/resolving/styled.js +2 -1
- package/dist/cjs/view/HoverCard/styled.js +10 -6
- package/dist/cjs/view/LinkUrl/index.js +1 -1
- package/dist/es2019/constants.js +1 -0
- package/dist/es2019/extractors/flexible/index.js +2 -1
- package/dist/es2019/extractors/flexible/utils.js +3 -0
- package/dist/es2019/messages.js +10 -0
- package/dist/es2019/utils/analytics/analytics.js +1 -1
- package/dist/es2019/view/FlexibleCard/components/blocks/utils.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/elements/date-time/index.js +5 -0
- package/dist/es2019/view/FlexibleCard/components/elements/index.js +5 -0
- package/dist/es2019/view/FlexibleCard/components/elements/utils.js +5 -0
- package/dist/es2019/view/HoverCard/components/ImagePreview.js +43 -0
- package/dist/es2019/view/HoverCard/components/views/resolved/index.js +5 -5
- package/dist/es2019/view/HoverCard/components/views/resolving/styled.js +2 -0
- package/dist/es2019/view/HoverCard/styled.js +10 -3
- package/dist/es2019/view/LinkUrl/index.js +1 -1
- package/dist/esm/constants.js +1 -0
- package/dist/esm/extractors/flexible/index.js +2 -1
- package/dist/esm/extractors/flexible/utils.js +3 -0
- package/dist/esm/messages.js +10 -0
- package/dist/esm/utils/analytics/analytics.js +1 -1
- package/dist/esm/view/FlexibleCard/components/blocks/utils.js +1 -1
- package/dist/esm/view/FlexibleCard/components/elements/date-time/index.js +5 -0
- package/dist/esm/view/FlexibleCard/components/elements/index.js +5 -0
- package/dist/esm/view/FlexibleCard/components/elements/utils.js +4 -0
- package/dist/esm/view/HoverCard/components/ImagePreview.js +49 -0
- package/dist/esm/view/HoverCard/components/views/resolved/index.js +5 -5
- package/dist/esm/view/HoverCard/components/views/resolving/styled.js +2 -1
- package/dist/esm/view/HoverCard/styled.js +8 -5
- package/dist/esm/view/LinkUrl/index.js +1 -1
- package/dist/types/constants.d.ts +2 -1
- package/dist/types/extractors/flexible/utils.d.ts +1 -0
- package/dist/types/messages.d.ts +1 -1
- package/dist/types/state/flexible-ui-context/types.d.ts +6 -0
- package/dist/types/view/FlexibleCard/components/blocks/types.d.ts +8 -1
- package/dist/types/view/FlexibleCard/components/elements/date-time/index.d.ts +1 -0
- package/dist/types/view/FlexibleCard/components/elements/date-time/types.d.ts +2 -2
- package/dist/types/view/FlexibleCard/components/elements/index.d.ts +5 -0
- package/dist/types/view/HoverCard/components/ImagePreview.d.ts +4 -0
- package/dist/types/view/HoverCard/styled.d.ts +1 -0
- package/dist/types/view/HoverCard/types.d.ts +2 -2
- package/dist/types-ts4.5/constants.d.ts +2 -1
- package/dist/types-ts4.5/extractors/flexible/utils.d.ts +1 -0
- package/dist/types-ts4.5/messages.d.ts +1 -1
- package/dist/types-ts4.5/state/flexible-ui-context/types.d.ts +6 -0
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/types.d.ts +8 -1
- package/dist/types-ts4.5/view/FlexibleCard/components/elements/date-time/index.d.ts +1 -0
- package/dist/types-ts4.5/view/FlexibleCard/components/elements/date-time/types.d.ts +2 -2
- package/dist/types-ts4.5/view/FlexibleCard/components/elements/index.d.ts +5 -0
- package/dist/types-ts4.5/view/HoverCard/components/ImagePreview.d.ts +4 -0
- package/dist/types-ts4.5/view/HoverCard/styled.d.ts +1 -0
- package/dist/types-ts4.5/view/HoverCard/types.d.ts +2 -2
- package/package.json +2 -2
- package/report.api.md +8 -0
- package/tmp/api-report-tmp.d.ts +8 -1
- package/dist/es2019/view/HoverCard/components/SnippetOrPreview.js +0 -41
- package/dist/esm/view/HoverCard/components/SnippetOrPreview.js +0 -47
- package/dist/types/view/HoverCard/components/SnippetOrPreview.d.ts +0 -4
- package/dist/types-ts4.5/view/HoverCard/components/SnippetOrPreview.d.ts +0 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 26.16.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`8e0d75e3666`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8e0d75e3666) - Update Image preview styles for Hover Card
|
|
8
|
+
|
|
9
|
+
## 26.16.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [`b73f38b2588`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b73f38b2588) - Add new FlexUI element - SentOn
|
|
14
|
+
|
|
3
15
|
## 26.15.11
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/dist/cjs/constants.js
CHANGED
|
@@ -141,6 +141,7 @@ var ElementName = /*#__PURE__*/function (ElementName) {
|
|
|
141
141
|
ElementName["Title"] = "Title";
|
|
142
142
|
ElementName["ViewCount"] = "ViewCount";
|
|
143
143
|
ElementName["VoteCount"] = "VoteCount";
|
|
144
|
+
ElementName["SentOn"] = "SentOn";
|
|
144
145
|
return ElementName;
|
|
145
146
|
}({});
|
|
146
147
|
/**
|
|
@@ -60,6 +60,7 @@ var extractFlexibleUiContext = function extractFlexibleUiContext() {
|
|
|
60
60
|
provider: (0, _extractProviderIcon.default)(data),
|
|
61
61
|
programmingLanguage: (0, _utils.extractProgrammingLanguage)(data),
|
|
62
62
|
readTime: (0, _utils.extractReadTime)(data),
|
|
63
|
+
sentOn: (0, _utils.extractSentOn)(data),
|
|
63
64
|
snippet: (0, _primitives.extractSummary)(data) || undefined,
|
|
64
65
|
// Explicitly set here to remove an empty string
|
|
65
66
|
sourceBranch: (0, _utils.extractSourceBranch)(data),
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.extractVoteCount = exports.extractViewCount = exports.extractTargetBranch = exports.extractSubscriberCount = exports.extractSubTasksProgress = exports.extractStoryPoints = exports.extractSourceBranch = exports.extractReadTime = exports.extractReactCount = exports.extractProgrammingLanguage = exports.extractPersonAssignedToAsArray = exports.extractOwnedBy = exports.extractModifiedBy = exports.extractLocation = exports.extractDueOn = exports.extractCreatedBy = exports.extractCommentCount = exports.extractChecklistProgress = exports.extractAttachmentCount = exports.extractAssignedTo = void 0;
|
|
7
|
+
exports.extractVoteCount = exports.extractViewCount = exports.extractTargetBranch = exports.extractSubscriberCount = exports.extractSubTasksProgress = exports.extractStoryPoints = exports.extractSourceBranch = exports.extractSentOn = exports.extractReadTime = exports.extractReactCount = exports.extractProgrammingLanguage = exports.extractPersonAssignedToAsArray = exports.extractOwnedBy = exports.extractModifiedBy = exports.extractLocation = exports.extractDueOn = exports.extractCreatedBy = exports.extractCommentCount = exports.extractChecklistProgress = exports.extractAttachmentCount = exports.extractAssignedTo = void 0;
|
|
8
8
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
9
9
|
var _linkExtractors = require("@atlaskit/link-extractors");
|
|
10
10
|
var extractLinkName = function extractLinkName(link) {
|
|
@@ -114,6 +114,10 @@ var extractReadTime = function extractReadTime(data) {
|
|
|
114
114
|
return extractValue(data, 'atlassian:readTimeInMinutes');
|
|
115
115
|
};
|
|
116
116
|
exports.extractReadTime = extractReadTime;
|
|
117
|
+
var extractSentOn = function extractSentOn(data) {
|
|
118
|
+
return extractValue(data, 'dateSent');
|
|
119
|
+
};
|
|
120
|
+
exports.extractSentOn = extractSentOn;
|
|
117
121
|
var extractStoryPoints = function extractStoryPoints(data) {
|
|
118
122
|
return extractValue(data, 'atlassian:storyPoints');
|
|
119
123
|
};
|
package/dist/cjs/messages.js
CHANGED
|
@@ -366,6 +366,16 @@ var messages = (0, _reactIntlNext.defineMessages)({
|
|
|
366
366
|
defaultMessage: 'Save',
|
|
367
367
|
description: 'Just the "save" word'
|
|
368
368
|
},
|
|
369
|
+
sent_on_relative: {
|
|
370
|
+
id: 'fabric.linking.sent_on_relative',
|
|
371
|
+
defaultMessage: 'Sent {context}',
|
|
372
|
+
description: 'Indicated when entity was sent (relative form)'
|
|
373
|
+
},
|
|
374
|
+
sent_on_absolute: {
|
|
375
|
+
id: 'fabric.linking.sent_on_absolute',
|
|
376
|
+
defaultMessage: 'Sent on {context}',
|
|
377
|
+
description: 'Indicated when entity was sent (absolute form)'
|
|
378
|
+
},
|
|
369
379
|
status_change_load_error: {
|
|
370
380
|
id: 'fabric.linking.status_change_load_error',
|
|
371
381
|
defaultMessage: 'We couldn’t load the statuses and transitions',
|
|
@@ -21,7 +21,7 @@ exports.ANALYTICS_CHANNEL = ANALYTICS_CHANNEL;
|
|
|
21
21
|
var context = {
|
|
22
22
|
componentName: 'smart-cards',
|
|
23
23
|
packageName: "@atlaskit/smart-card",
|
|
24
|
-
packageVersion: "26.
|
|
24
|
+
packageVersion: "26.16.1"
|
|
25
25
|
};
|
|
26
26
|
exports.context = context;
|
|
27
27
|
var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
@@ -24,7 +24,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
24
24
|
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; }
|
|
25
25
|
// Determine whether the element can be display as inline/block.
|
|
26
26
|
|
|
27
|
-
var ElementDisplaySchema = (_ElementDisplaySchema = {}, (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AssignedTo, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AssignedToGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AttachmentCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AuthorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ChecklistProgress, ['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.DueOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.LatestCommit, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.LinkIcon, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Location, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.OwnedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.OwnedByGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Preview, ['block']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Priority, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ProgrammingLanguage, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Provider, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ReactCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ReadTime, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Snippet, ['block']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.SourceBranch, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.State, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.SubscriberCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.SubTasksProgress, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.StoryPoints, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.TargetBranch, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Title, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ViewCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.VoteCount, ['inline']), _ElementDisplaySchema);
|
|
27
|
+
var ElementDisplaySchema = (_ElementDisplaySchema = {}, (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AssignedTo, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AssignedToGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AttachmentCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AuthorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ChecklistProgress, ['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.DueOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.LatestCommit, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.LinkIcon, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Location, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.OwnedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.OwnedByGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Preview, ['block']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Priority, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ProgrammingLanguage, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Provider, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ReactCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ReadTime, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Snippet, ['block']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.SourceBranch, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.SentOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.State, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.SubscriberCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.SubTasksProgress, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.StoryPoints, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.TargetBranch, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Title, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ViewCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.VoteCount, ['inline']), _ElementDisplaySchema);
|
|
28
28
|
exports.ElementDisplaySchema = ElementDisplaySchema;
|
|
29
29
|
var getDirectionStyles = function getDirectionStyles(direction) {
|
|
30
30
|
switch (direction) {
|
|
@@ -25,6 +25,10 @@ var typeToDescriptorMap = {
|
|
|
25
25
|
modified: {
|
|
26
26
|
relative: _messages.messages.modified_on_relative,
|
|
27
27
|
absolute: _messages.messages.modified_on_absolute
|
|
28
|
+
},
|
|
29
|
+
sent: {
|
|
30
|
+
relative: _messages.messages.sent_on_relative,
|
|
31
|
+
absolute: _messages.messages.sent_on_absolute
|
|
28
32
|
}
|
|
29
33
|
};
|
|
30
34
|
|
|
@@ -34,6 +38,7 @@ var typeToDescriptorMap = {
|
|
|
34
38
|
* @param {DateTimeProps} DateTimeProps - The props necessary for the DateTime element.
|
|
35
39
|
* @see CreatedOn
|
|
36
40
|
* @see ModifiedOn
|
|
41
|
+
* @see SentOn
|
|
37
42
|
*/
|
|
38
43
|
var DateTime = function DateTime(_ref) {
|
|
39
44
|
var date = _ref.date,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.VoteCount = exports.ViewCount = exports.Title = exports.TargetBranch = exports.SubscriberCount = exports.SubTasksProgress = exports.StoryPoints = exports.State = exports.SourceBranch = exports.Snippet = exports.ReadTime = exports.ReactCount = exports.Provider = exports.ProgrammingLanguage = exports.Priority = exports.Preview = exports.OwnedByGroup = exports.OwnedBy = exports.ModifiedOn = exports.ModifiedBy = exports.Location = exports.LinkIcon = exports.LatestCommit = exports.DueOn = exports.CreatedOn = exports.CreatedBy = exports.CommentCount = exports.CollaboratorGroup = exports.ChecklistProgress = exports.AuthorGroup = exports.AttachmentCount = exports.AssignedToGroup = exports.AssignedTo = void 0;
|
|
6
|
+
exports.VoteCount = exports.ViewCount = exports.Title = exports.TargetBranch = exports.SubscriberCount = exports.SubTasksProgress = exports.StoryPoints = exports.State = exports.SourceBranch = exports.Snippet = exports.SentOn = exports.ReadTime = exports.ReactCount = exports.Provider = exports.ProgrammingLanguage = exports.Priority = exports.Preview = exports.OwnedByGroup = exports.OwnedBy = exports.ModifiedOn = exports.ModifiedBy = exports.Location = exports.LinkIcon = exports.LatestCommit = exports.DueOn = exports.CreatedOn = exports.CreatedBy = exports.CommentCount = exports.CollaboratorGroup = exports.ChecklistProgress = exports.AuthorGroup = exports.AttachmentCount = exports.AssignedToGroup = exports.AssignedTo = void 0;
|
|
7
7
|
var _utils = require("./utils");
|
|
8
8
|
var _constants = require("../../../../constants");
|
|
9
9
|
// Attention: Keep the export name and element name the same.
|
|
@@ -145,11 +145,17 @@ var ReactCount = (0, _utils.createElement)(_constants.ElementName.ReactCount);
|
|
|
145
145
|
*/
|
|
146
146
|
exports.ReactCount = ReactCount;
|
|
147
147
|
var ReadTime = (0, _utils.createElement)(_constants.ElementName.ReadTime);
|
|
148
|
+
/**
|
|
149
|
+
* Creates a SentOn DateTime element using the data from SentOn in the Flexible UI Context.
|
|
150
|
+
* @see DateTime
|
|
151
|
+
*/
|
|
152
|
+
exports.ReadTime = ReadTime;
|
|
153
|
+
var SentOn = (0, _utils.createElement)(_constants.ElementName.SentOn);
|
|
148
154
|
/**
|
|
149
155
|
* Creates a Snippet element using the data from Snippet in the Flexible UI Context.
|
|
150
156
|
* @see Text
|
|
151
157
|
*/
|
|
152
|
-
exports.
|
|
158
|
+
exports.SentOn = SentOn;
|
|
153
159
|
var Snippet = (0, _utils.createElement)(_constants.ElementName.Snippet);
|
|
154
160
|
/**
|
|
155
161
|
* Creates a SourceBranch Text element using the data from sourceBranch in the Flexible UI Context.
|
|
@@ -102,6 +102,8 @@ var elementMappings = (_elementMappings = {}, (0, _defineProperty2.default)(_ele
|
|
|
102
102
|
component: _badge.default
|
|
103
103
|
}), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.ReadTime, {
|
|
104
104
|
component: _text.default
|
|
105
|
+
}), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.SentOn, {
|
|
106
|
+
component: _dateTime.default
|
|
105
107
|
}), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.Snippet, {
|
|
106
108
|
component: _text.default,
|
|
107
109
|
props: {
|
|
@@ -177,6 +179,8 @@ var getData = function getData(elementName, contextKey, context) {
|
|
|
177
179
|
return toFormattedTextProps(_messages.messages.modified_by, context.modifiedBy);
|
|
178
180
|
case _constants.ElementName.ModifiedOn:
|
|
179
181
|
return toDateTimeProps('modified', context.modifiedOn);
|
|
182
|
+
case _constants.ElementName.SentOn:
|
|
183
|
+
return toDateTimeProps('sent', context.sentOn);
|
|
180
184
|
case _constants.ElementName.ReadTime:
|
|
181
185
|
return toFormattedTextProps(_messages.messages.read_time, data);
|
|
182
186
|
case _constants.ElementName.Snippet:
|
|
@@ -6,25 +6,24 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
|
-
var
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
-
var _react2 = require("@emotion/react");
|
|
13
12
|
var _extractPreview = _interopRequireDefault(require("../../../extractors/flexible/extract-preview"));
|
|
14
13
|
var _blocks = require("../../FlexibleCard/components/blocks");
|
|
15
14
|
var _styled = require("../styled");
|
|
16
|
-
var
|
|
15
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
17
16
|
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); }
|
|
18
17
|
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; }
|
|
19
|
-
var
|
|
18
|
+
var ImagePreview = function ImagePreview(_ref) {
|
|
20
19
|
var data = _ref.data,
|
|
21
|
-
|
|
20
|
+
fallbackElementHeight = _ref.fallbackElementHeight;
|
|
22
21
|
var transitionStarted = (0, _react.useRef)(false);
|
|
23
22
|
var previewBlockRef = (0, _react.useRef)(null);
|
|
24
|
-
var _useState = (0, _react.useState)(
|
|
23
|
+
var _useState = (0, _react.useState)(true),
|
|
25
24
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
showPreview = _useState2[0],
|
|
26
|
+
setShowPreview = _useState2[1];
|
|
28
27
|
var _useState3 = (0, _react.useState)(),
|
|
29
28
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
30
29
|
previewCss = _useState4[0],
|
|
@@ -33,26 +32,29 @@ var SnippetOrPreview = function SnippetOrPreview(_ref) {
|
|
|
33
32
|
// Set Preview to a fixed height to enable transitions
|
|
34
33
|
var onPreviewRender = (0, _react.useCallback)(function () {
|
|
35
34
|
var _previewBlockRef$curr;
|
|
36
|
-
previewBlockRef.current && setPreviewCss((0,
|
|
35
|
+
previewBlockRef.current && setPreviewCss((0, _styled.getPreviewBlockStyles)((_previewBlockRef$curr = previewBlockRef.current) === null || _previewBlockRef$curr === void 0 ? void 0 : _previewBlockRef$curr.getBoundingClientRect().height));
|
|
37
36
|
}, []);
|
|
38
37
|
|
|
39
|
-
// On error set Preview to
|
|
38
|
+
// On error set Preview to Fallback height with transition
|
|
40
39
|
var onPreviewError = (0, _react.useCallback)(function () {
|
|
41
40
|
if (transitionStarted.current === false) {
|
|
42
|
-
setPreviewCss((0, _styled.getTransitionStyles)(
|
|
41
|
+
setPreviewCss((0, _styled.getTransitionStyles)(fallbackElementHeight));
|
|
43
42
|
transitionStarted.current = true;
|
|
44
43
|
}
|
|
45
|
-
}, [
|
|
44
|
+
}, [fallbackElementHeight]);
|
|
46
45
|
var onPreviewTransitionEnd = (0, _react.useCallback)(function () {
|
|
47
|
-
|
|
46
|
+
setShowPreview(false);
|
|
48
47
|
}, []);
|
|
49
|
-
return
|
|
50
|
-
onError: onPreviewError
|
|
48
|
+
return showPreview && data && (0, _extractPreview.default)(data) ? /*#__PURE__*/_react.default.createElement(_blocks.PreviewBlock, (0, _extends2.default)({
|
|
49
|
+
onError: onPreviewError
|
|
50
|
+
}, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
51
|
+
ignoreContainerPadding: true
|
|
52
|
+
}, {
|
|
51
53
|
overrideCss: previewCss,
|
|
52
54
|
onTransitionEnd: onPreviewTransitionEnd,
|
|
53
55
|
blockRef: previewBlockRef,
|
|
54
56
|
onRender: onPreviewRender
|
|
55
|
-
}) :
|
|
57
|
+
})) : null;
|
|
56
58
|
};
|
|
57
|
-
var _default =
|
|
59
|
+
var _default = ImagePreview;
|
|
58
60
|
exports.default = _default;
|
|
@@ -13,7 +13,7 @@ var _blocks = require("../../../../FlexibleCard/components/blocks");
|
|
|
13
13
|
var _styled = require("./styled");
|
|
14
14
|
var _FlexibleCard = _interopRequireDefault(require("../../../../FlexibleCard"));
|
|
15
15
|
var _utils = require("../../../utils");
|
|
16
|
-
var
|
|
16
|
+
var _ImagePreview = _interopRequireDefault(require("../../ImagePreview"));
|
|
17
17
|
var _extractMetadata = require("../../../../../extractors/hover/extractMetadata");
|
|
18
18
|
var _messages = require("../../../../../messages");
|
|
19
19
|
var _reactIntlNext = require("react-intl-next");
|
|
@@ -100,11 +100,11 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
|
|
|
100
100
|
var _snippetBlockRef$curr, _snippetBlockRef$curr2;
|
|
101
101
|
snippetHeight.current = (_snippetBlockRef$curr = (_snippetBlockRef$curr2 = snippetBlockRef.current) === null || _snippetBlockRef$curr2 === void 0 ? void 0 : _snippetBlockRef$curr2.getBoundingClientRect().height) !== null && _snippetBlockRef$curr !== void 0 ? _snippetBlockRef$curr : 0;
|
|
102
102
|
}, []);
|
|
103
|
-
var
|
|
103
|
+
var imagePreview = (0, _ImagePreview.default)({
|
|
104
104
|
data: data,
|
|
105
|
-
|
|
105
|
+
fallbackElementHeight: snippetHeight.current
|
|
106
106
|
});
|
|
107
|
-
return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, flexibleCardProps, /*#__PURE__*/_react.default.createElement(_blocks.TitleBlock, (0, _extends2.default)({}, titleBlockProps, {
|
|
107
|
+
return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, flexibleCardProps, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && imagePreview, /*#__PURE__*/_react.default.createElement(_blocks.TitleBlock, (0, _extends2.default)({}, titleBlockProps, {
|
|
108
108
|
metadataPosition: _constants.SmartLinkPosition.Top
|
|
109
109
|
})), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, (0, _extends2.default)({
|
|
110
110
|
primary: topPrimary,
|
|
@@ -114,7 +114,7 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
|
|
|
114
114
|
size: _constants.SmartLinkSize.Large
|
|
115
115
|
}, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
116
116
|
size: _constants.SmartLinkSize.Medium
|
|
117
|
-
})),
|
|
117
|
+
})), !imagePreview && /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, null), !(0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && imagePreview, /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, {
|
|
118
118
|
testId: 'hidden-snippet',
|
|
119
119
|
onRender: onSnippetRender,
|
|
120
120
|
blockRef: snippetBlockRef,
|
|
@@ -7,8 +7,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.titleBlockStyles = exports.skeletonContainer = exports.loadingViewContainer = exports.getTitleStyles = void 0;
|
|
8
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
9
|
var _react = require("@emotion/react");
|
|
10
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
10
11
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
11
|
-
var loadingViewContainer = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n"])));
|
|
12
|
+
var loadingViewContainer = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n ", "\n"])), (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? "padding: 1rem;" : "");
|
|
12
13
|
exports.loadingViewContainer = loadingViewContainer;
|
|
13
14
|
var skeletonContainer = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n gap: 0.625rem;\n align-items: center;\n"])));
|
|
14
15
|
exports.skeletonContainer = skeletonContainer;
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.titleBlockCss = exports.separatorCss = exports.popupContainerStyles = exports.getTransitionStyles = exports.flexibleUiOptions = exports.HoverCardContainer = exports.HOVER_CARD_Z_INDEX = exports.CARD_WIDTH_REM = exports.CARD_GAP_PX = void 0;
|
|
7
|
+
exports.titleBlockCss = exports.separatorCss = exports.popupContainerStyles = exports.getTransitionStyles = exports.getPreviewBlockStyles = exports.flexibleUiOptions = exports.HoverCardContainer = exports.HOVER_CARD_Z_INDEX = exports.CARD_WIDTH_REM = exports.CARD_GAP_PX = void 0;
|
|
8
8
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
10
|
var _react = require("@emotion/react");
|
|
@@ -13,7 +13,7 @@ var _constants = require("../../constants");
|
|
|
13
13
|
var _constants2 = require("@atlaskit/theme/constants");
|
|
14
14
|
var _components = require("@atlaskit/theme/components");
|
|
15
15
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
16
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
16
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
17
17
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
18
18
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
19
19
|
// Temporary fix for Confluence inline comment on editor mod has z-index of 500, Jira issue view has z-index of 510
|
|
@@ -23,11 +23,11 @@ var flexibleUiOptions = _objectSpread({
|
|
|
23
23
|
hideBackground: true,
|
|
24
24
|
hideElevation: true,
|
|
25
25
|
size: _constants.SmartLinkSize.Medium,
|
|
26
|
-
hidePadding: true,
|
|
27
26
|
hideHoverCardPreviewButton: false,
|
|
28
27
|
zIndex: HOVER_CARD_Z_INDEX + 1
|
|
29
28
|
}, !(0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
30
|
-
theme: _constants.SmartLinkTheme.Black
|
|
29
|
+
theme: _constants.SmartLinkTheme.Black,
|
|
30
|
+
hidePadding: true
|
|
31
31
|
});
|
|
32
32
|
exports.flexibleUiOptions = flexibleUiOptions;
|
|
33
33
|
var CARD_WIDTH_REM = 24;
|
|
@@ -39,7 +39,7 @@ var blockGap = '0.5rem';
|
|
|
39
39
|
var elementGap = '0.5rem';
|
|
40
40
|
var separatorCss = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n [data-separator] + [data-separator]:before {\n margin-right: ", ";\n }\n ", "\n"])), elementGap, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? " [data-smart-element-avatar-group] + [data-separator]:before {\n content: '\u2022';\n margin-right: ".concat(elementGap, ";\n }") : "");
|
|
41
41
|
exports.separatorCss = separatorCss;
|
|
42
|
-
var HoverCardContainer = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n background: none;\n border-width: 0;\n box-sizing: border-box;\n width: ", "rem;\n
|
|
42
|
+
var HoverCardContainer = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n background: none;\n border-width: 0;\n box-sizing: border-box;\n width: ", "rem;\n ", "\n\n .", " {\n display: none;\n }\n"])), CARD_WIDTH_REM, !(0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? "padding: 1rem;" : "", _index.loadingPlaceholderClassName);
|
|
43
43
|
exports.HoverCardContainer = HoverCardContainer;
|
|
44
44
|
var titleBlockCss = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n gap: ", ";\n\n ", "\n\n // title and subtitle element group\n [data-smart-element-group] {\n // gap between title and subtitle\n gap: 0.06rem;\n display: flex;\n /* subtitle element group */\n > [data-smart-element-group] {\n > span {\n margin-right: ", ";\n }\n }\n }\n\n ", "\n"])), blockGap, separatorCss, elementGap, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.show-smart-links-refreshed-design') ? "[data-smart-element=\"Title\"] {\n font-weight: 600;\n }" : "");
|
|
45
45
|
exports.titleBlockCss = titleBlockCss;
|
|
@@ -54,4 +54,8 @@ var popupContainerStyles = (0, _react.css)(_templateObject5 || (_templateObject5
|
|
|
54
54
|
light: "var(--ds-shadow-overlay, 0px 8px 12px rgba(9, 30, 66, 0.15),0px 0px 1px rgba(9, 30, 66, 0.31))",
|
|
55
55
|
dark: "var(--ds-shadow-overlay, 0px 0px 0px rgba(188, 214, 240, 0.12),0px 8px 12px rgba(3, 4, 4, 0.36),0px 0px 1px rgba(3, 4, 4, 0.5))"
|
|
56
56
|
})());
|
|
57
|
-
exports.popupContainerStyles = popupContainerStyles;
|
|
57
|
+
exports.popupContainerStyles = popupContainerStyles;
|
|
58
|
+
var getPreviewBlockStyles = function getPreviewBlockStyles(snippetHeight) {
|
|
59
|
+
return (0, _react.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n height: ", "px;\n ", "\n"])), snippetHeight, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.show-smart-links-refreshed-design') ? " border-top-left-radius: ".concat("var(--ds-border-radius-300, 12px)", ";\n border-top-right-radius: ", "var(--ds-border-radius-300, 12px)", ";\n margin-bottom: ", blockGap, ";\n }") : "");
|
|
60
|
+
};
|
|
61
|
+
exports.getPreviewBlockStyles = getPreviewBlockStyles;
|
|
@@ -18,7 +18,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId"],
|
|
|
18
18
|
_excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
|
|
19
19
|
var PACKAGE_DATA = {
|
|
20
20
|
packageName: "@atlaskit/smart-card",
|
|
21
|
-
packageVersion: "26.
|
|
21
|
+
packageVersion: "26.16.1",
|
|
22
22
|
componentName: 'linkUrl'
|
|
23
23
|
};
|
|
24
24
|
var Link = (0, _click.withLinkClickedEvent)('a');
|
package/dist/es2019/constants.js
CHANGED
|
@@ -133,6 +133,7 @@ export let ElementName = /*#__PURE__*/function (ElementName) {
|
|
|
133
133
|
ElementName["Title"] = "Title";
|
|
134
134
|
ElementName["ViewCount"] = "ViewCount";
|
|
135
135
|
ElementName["VoteCount"] = "VoteCount";
|
|
136
|
+
ElementName["SentOn"] = "SentOn";
|
|
136
137
|
return ElementName;
|
|
137
138
|
}({});
|
|
138
139
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { extractSummary } from '../common/primitives';
|
|
2
2
|
import { extractLinkIcon } from './icon';
|
|
3
|
-
import { extractAttachmentCount, extractChecklistProgress, extractCommentCount, extractCreatedBy, extractModifiedBy, extractProgrammingLanguage, extractSubscriberCount, extractViewCount, extractReactCount, extractVoteCount, extractSourceBranch, extractTargetBranch, extractDueOn, extractLocation, extractOwnedBy, extractAssignedTo, extractSubTasksProgress, extractStoryPoints, extractReadTime, extractPersonAssignedToAsArray } from './utils';
|
|
3
|
+
import { extractAttachmentCount, extractChecklistProgress, extractCommentCount, extractCreatedBy, extractModifiedBy, extractProgrammingLanguage, extractSubscriberCount, extractViewCount, extractReactCount, extractVoteCount, extractSourceBranch, extractTargetBranch, extractDueOn, extractLocation, extractOwnedBy, extractAssignedTo, extractSubTasksProgress, extractStoryPoints, extractReadTime, extractSentOn, extractPersonAssignedToAsArray } from './utils';
|
|
4
4
|
import { extractPersonsUpdatedBy } from './collaboratorGroup';
|
|
5
5
|
import { extractPersonCreatedBy, extractTitle, extractDateUpdated, extractDateCreated, extractLink, extractPersonOwnedBy } from '@atlaskit/link-extractors';
|
|
6
6
|
import extractPriority from './extract-priority';
|
|
@@ -53,6 +53,7 @@ const extractFlexibleUiContext = ({
|
|
|
53
53
|
provider: extractProviderIcon(data),
|
|
54
54
|
programmingLanguage: extractProgrammingLanguage(data),
|
|
55
55
|
readTime: extractReadTime(data),
|
|
56
|
+
sentOn: extractSentOn(data),
|
|
56
57
|
snippet: extractSummary(data) || undefined,
|
|
57
58
|
// Explicitly set here to remove an empty string
|
|
58
59
|
sourceBranch: extractSourceBranch(data),
|
|
@@ -68,6 +68,9 @@ export const extractSubTasksProgress = data => {
|
|
|
68
68
|
export const extractReadTime = data => {
|
|
69
69
|
return extractValue(data, 'atlassian:readTimeInMinutes');
|
|
70
70
|
};
|
|
71
|
+
export const extractSentOn = data => {
|
|
72
|
+
return extractValue(data, 'dateSent');
|
|
73
|
+
};
|
|
71
74
|
export const extractStoryPoints = data => {
|
|
72
75
|
return extractValue(data, 'atlassian:storyPoints');
|
|
73
76
|
};
|
package/dist/es2019/messages.js
CHANGED
|
@@ -360,6 +360,16 @@ export const messages = defineMessages({
|
|
|
360
360
|
defaultMessage: 'Save',
|
|
361
361
|
description: 'Just the "save" word'
|
|
362
362
|
},
|
|
363
|
+
sent_on_relative: {
|
|
364
|
+
id: 'fabric.linking.sent_on_relative',
|
|
365
|
+
defaultMessage: 'Sent {context}',
|
|
366
|
+
description: 'Indicated when entity was sent (relative form)'
|
|
367
|
+
},
|
|
368
|
+
sent_on_absolute: {
|
|
369
|
+
id: 'fabric.linking.sent_on_absolute',
|
|
370
|
+
defaultMessage: 'Sent on {context}',
|
|
371
|
+
description: 'Indicated when entity was sent (absolute form)'
|
|
372
|
+
},
|
|
363
373
|
status_change_load_error: {
|
|
364
374
|
id: 'fabric.linking.status_change_load_error',
|
|
365
375
|
defaultMessage: 'We couldn’t load the statuses and transitions',
|
|
@@ -3,7 +3,7 @@ export const ANALYTICS_CHANNEL = 'media';
|
|
|
3
3
|
export const context = {
|
|
4
4
|
componentName: 'smart-cards',
|
|
5
5
|
packageName: "@atlaskit/smart-card",
|
|
6
|
-
packageVersion: "26.
|
|
6
|
+
packageVersion: "26.16.1"
|
|
7
7
|
};
|
|
8
8
|
export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
9
9
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -35,6 +35,7 @@ export const ElementDisplaySchema = {
|
|
|
35
35
|
[ElementName.ReadTime]: ['inline'],
|
|
36
36
|
[ElementName.Snippet]: ['block'],
|
|
37
37
|
[ElementName.SourceBranch]: ['inline'],
|
|
38
|
+
[ElementName.SentOn]: ['inline'],
|
|
38
39
|
[ElementName.State]: ['inline'],
|
|
39
40
|
[ElementName.SubscriberCount]: ['inline'],
|
|
40
41
|
[ElementName.SubTasksProgress]: ['inline'],
|
|
@@ -21,6 +21,10 @@ const typeToDescriptorMap = {
|
|
|
21
21
|
modified: {
|
|
22
22
|
relative: messages.modified_on_relative,
|
|
23
23
|
absolute: messages.modified_on_absolute
|
|
24
|
+
},
|
|
25
|
+
sent: {
|
|
26
|
+
relative: messages.sent_on_relative,
|
|
27
|
+
absolute: messages.sent_on_absolute
|
|
24
28
|
}
|
|
25
29
|
};
|
|
26
30
|
|
|
@@ -30,6 +34,7 @@ const typeToDescriptorMap = {
|
|
|
30
34
|
* @param {DateTimeProps} DateTimeProps - The props necessary for the DateTime element.
|
|
31
35
|
* @see CreatedOn
|
|
32
36
|
* @see ModifiedOn
|
|
37
|
+
* @see SentOn
|
|
33
38
|
*/
|
|
34
39
|
const DateTime = ({
|
|
35
40
|
date,
|
|
@@ -117,6 +117,11 @@ export const ReactCount = createElement(ElementName.ReactCount);
|
|
|
117
117
|
* Creates a ReadTime Text element using the data from readTime in the Flexible UI Context
|
|
118
118
|
*/
|
|
119
119
|
export const ReadTime = createElement(ElementName.ReadTime);
|
|
120
|
+
/**
|
|
121
|
+
* Creates a SentOn DateTime element using the data from SentOn in the Flexible UI Context.
|
|
122
|
+
* @see DateTime
|
|
123
|
+
*/
|
|
124
|
+
export const SentOn = createElement(ElementName.SentOn);
|
|
120
125
|
/**
|
|
121
126
|
* Creates a Snippet element using the data from Snippet in the Flexible UI Context.
|
|
122
127
|
* @see Text
|
|
@@ -113,6 +113,9 @@ const elementMappings = {
|
|
|
113
113
|
[ElementName.ReadTime]: {
|
|
114
114
|
component: Text
|
|
115
115
|
},
|
|
116
|
+
[ElementName.SentOn]: {
|
|
117
|
+
component: DateTime
|
|
118
|
+
},
|
|
116
119
|
[ElementName.Snippet]: {
|
|
117
120
|
component: Text,
|
|
118
121
|
props: {
|
|
@@ -199,6 +202,8 @@ const getData = (elementName, contextKey, context) => {
|
|
|
199
202
|
return toFormattedTextProps(messages.modified_by, context.modifiedBy);
|
|
200
203
|
case ElementName.ModifiedOn:
|
|
201
204
|
return toDateTimeProps('modified', context.modifiedOn);
|
|
205
|
+
case ElementName.SentOn:
|
|
206
|
+
return toDateTimeProps('sent', context.sentOn);
|
|
202
207
|
case ElementName.ReadTime:
|
|
203
208
|
return toFormattedTextProps(messages.read_time, data);
|
|
204
209
|
case ElementName.Snippet:
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import React, { useCallback, useState, useRef } from 'react';
|
|
3
|
+
import extractPreview from '../../../extractors/flexible/extract-preview';
|
|
4
|
+
import { PreviewBlock } from '../../FlexibleCard/components/blocks';
|
|
5
|
+
import { getTransitionStyles, getPreviewBlockStyles } from '../styled';
|
|
6
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
7
|
+
const ImagePreview = ({
|
|
8
|
+
data,
|
|
9
|
+
fallbackElementHeight
|
|
10
|
+
}) => {
|
|
11
|
+
const transitionStarted = useRef(false);
|
|
12
|
+
const previewBlockRef = useRef(null);
|
|
13
|
+
const [showPreview, setShowPreview] = useState(true);
|
|
14
|
+
const [previewCss, setPreviewCss] = useState();
|
|
15
|
+
|
|
16
|
+
// Set Preview to a fixed height to enable transitions
|
|
17
|
+
const onPreviewRender = useCallback(() => {
|
|
18
|
+
var _previewBlockRef$curr;
|
|
19
|
+
previewBlockRef.current && setPreviewCss(getPreviewBlockStyles((_previewBlockRef$curr = previewBlockRef.current) === null || _previewBlockRef$curr === void 0 ? void 0 : _previewBlockRef$curr.getBoundingClientRect().height));
|
|
20
|
+
}, []);
|
|
21
|
+
|
|
22
|
+
// On error set Preview to Fallback height with transition
|
|
23
|
+
const onPreviewError = useCallback(() => {
|
|
24
|
+
if (transitionStarted.current === false) {
|
|
25
|
+
setPreviewCss(getTransitionStyles(fallbackElementHeight));
|
|
26
|
+
transitionStarted.current = true;
|
|
27
|
+
}
|
|
28
|
+
}, [fallbackElementHeight]);
|
|
29
|
+
const onPreviewTransitionEnd = useCallback(() => {
|
|
30
|
+
setShowPreview(false);
|
|
31
|
+
}, []);
|
|
32
|
+
return showPreview && data && extractPreview(data) ? /*#__PURE__*/React.createElement(PreviewBlock, _extends({
|
|
33
|
+
onError: onPreviewError
|
|
34
|
+
}, getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
35
|
+
ignoreContainerPadding: true
|
|
36
|
+
}, {
|
|
37
|
+
overrideCss: previewCss,
|
|
38
|
+
onTransitionEnd: onPreviewTransitionEnd,
|
|
39
|
+
blockRef: previewBlockRef,
|
|
40
|
+
onRender: onPreviewRender
|
|
41
|
+
})) : null;
|
|
42
|
+
};
|
|
43
|
+
export default ImagePreview;
|
|
@@ -5,7 +5,7 @@ import { FooterBlock, MetadataBlock, SnippetBlock, TitleBlock } from '../../../.
|
|
|
5
5
|
import { footerBlockCss, hiddenSnippetStyles, metadataBlockCss } from './styled';
|
|
6
6
|
import FlexibleCard from '../../../../FlexibleCard';
|
|
7
7
|
import { getSimulatedMetadata, getSimulatedBetterMetadata } from '../../../utils';
|
|
8
|
-
import
|
|
8
|
+
import ImagePreview from '../../ImagePreview';
|
|
9
9
|
import { extractMetadata, elementNamesToItems } from '../../../../../extractors/hover/extractMetadata';
|
|
10
10
|
import { messages } from '../../../../../messages';
|
|
11
11
|
import { FormattedMessage } from 'react-intl-next';
|
|
@@ -87,11 +87,11 @@ const HoverCardResolvedView = ({
|
|
|
87
87
|
var _snippetBlockRef$curr, _snippetBlockRef$curr2;
|
|
88
88
|
snippetHeight.current = (_snippetBlockRef$curr = (_snippetBlockRef$curr2 = snippetBlockRef.current) === null || _snippetBlockRef$curr2 === void 0 ? void 0 : _snippetBlockRef$curr2.getBoundingClientRect().height) !== null && _snippetBlockRef$curr !== void 0 ? _snippetBlockRef$curr : 0;
|
|
89
89
|
}, []);
|
|
90
|
-
const
|
|
90
|
+
const imagePreview = ImagePreview({
|
|
91
91
|
data: data,
|
|
92
|
-
|
|
92
|
+
fallbackElementHeight: snippetHeight.current
|
|
93
93
|
});
|
|
94
|
-
return /*#__PURE__*/React.createElement(FlexibleCard, flexibleCardProps, /*#__PURE__*/React.createElement(TitleBlock, _extends({}, titleBlockProps, {
|
|
94
|
+
return /*#__PURE__*/React.createElement(FlexibleCard, flexibleCardProps, getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && imagePreview, /*#__PURE__*/React.createElement(TitleBlock, _extends({}, titleBlockProps, {
|
|
95
95
|
metadataPosition: SmartLinkPosition.Top
|
|
96
96
|
})), /*#__PURE__*/React.createElement(MetadataBlock, _extends({
|
|
97
97
|
primary: topPrimary,
|
|
@@ -101,7 +101,7 @@ const HoverCardResolvedView = ({
|
|
|
101
101
|
size: SmartLinkSize.Large
|
|
102
102
|
}, getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
103
103
|
size: SmartLinkSize.Medium
|
|
104
|
-
})),
|
|
104
|
+
})), !imagePreview && /*#__PURE__*/React.createElement(SnippetBlock, null), !getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && imagePreview, /*#__PURE__*/React.createElement(SnippetBlock, {
|
|
105
105
|
testId: 'hidden-snippet',
|
|
106
106
|
onRender: onSnippetRender,
|
|
107
107
|
blockRef: snippetBlockRef,
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { css } from '@emotion/react';
|
|
2
|
+
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
2
3
|
export const loadingViewContainer = css`
|
|
3
4
|
display: flex;
|
|
4
5
|
flex-direction: column;
|
|
6
|
+
${getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? `padding: 1rem;` : ``}
|
|
5
7
|
`;
|
|
6
8
|
export const skeletonContainer = css`
|
|
7
9
|
display: flex;
|
|
@@ -11,11 +11,11 @@ export const flexibleUiOptions = {
|
|
|
11
11
|
hideBackground: true,
|
|
12
12
|
hideElevation: true,
|
|
13
13
|
size: SmartLinkSize.Medium,
|
|
14
|
-
hidePadding: true,
|
|
15
14
|
hideHoverCardPreviewButton: false,
|
|
16
15
|
zIndex: HOVER_CARD_Z_INDEX + 1,
|
|
17
16
|
...(!getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') && {
|
|
18
|
-
theme: SmartLinkTheme.Black
|
|
17
|
+
theme: SmartLinkTheme.Black,
|
|
18
|
+
hidePadding: true
|
|
19
19
|
})
|
|
20
20
|
};
|
|
21
21
|
export const CARD_WIDTH_REM = 24;
|
|
@@ -37,7 +37,7 @@ export const HoverCardContainer = css`
|
|
|
37
37
|
border-width: 0;
|
|
38
38
|
box-sizing: border-box;
|
|
39
39
|
width: ${CARD_WIDTH_REM}rem;
|
|
40
|
-
padding: 1rem
|
|
40
|
+
${!getBooleanFF('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? `padding: 1rem;` : ``}
|
|
41
41
|
|
|
42
42
|
.${loadingPlaceholderClassName} {
|
|
43
43
|
display: none;
|
|
@@ -79,4 +79,11 @@ export const popupContainerStyles = css`
|
|
|
79
79
|
light: "var(--ds-shadow-overlay, 0px 8px 12px rgba(9, 30, 66, 0.15),0px 0px 1px rgba(9, 30, 66, 0.31))",
|
|
80
80
|
dark: "var(--ds-shadow-overlay, 0px 0px 0px rgba(188, 214, 240, 0.12),0px 8px 12px rgba(3, 4, 4, 0.36),0px 0px 1px rgba(3, 4, 4, 0.5))"
|
|
81
81
|
})()};
|
|
82
|
+
`;
|
|
83
|
+
export const getPreviewBlockStyles = snippetHeight => css`
|
|
84
|
+
height: ${snippetHeight}px;
|
|
85
|
+
${getBooleanFF('platform.linking-platform.smart-card.show-smart-links-refreshed-design') ? ` border-top-left-radius: ${"var(--ds-border-radius-300, 12px)"};
|
|
86
|
+
border-top-right-radius: ${"var(--ds-border-radius-300, 12px)"};
|
|
87
|
+
margin-bottom: ${blockGap};
|
|
88
|
+
}` : ``}
|
|
82
89
|
`;
|