@atlaskit/smart-card 25.5.7 → 25.6.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.
Files changed (55) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/constants.js +1 -0
  3. package/dist/cjs/extractors/flexible/index.js +1 -0
  4. package/dist/cjs/extractors/flexible/utils.js +8 -1
  5. package/dist/cjs/messages.js +5 -0
  6. package/dist/cjs/ssr.js +9 -6
  7. package/dist/cjs/state/hooks/useSmartLink.js +6 -1
  8. package/dist/cjs/version.json +1 -1
  9. package/dist/cjs/view/BlockCard/views/flexible/FlexibleResolvedView.js +27 -21
  10. package/dist/cjs/view/FlexibleCard/components/blocks/utils.js +1 -1
  11. package/dist/cjs/view/FlexibleCard/components/elements/index.js +8 -2
  12. package/dist/cjs/view/FlexibleCard/components/elements/utils.js +4 -0
  13. package/dist/cjs/view/HoverCard/components/HoverCardContent.js +1 -3
  14. package/dist/cjs/view/HoverCard/components/views/resolved/index.js +1 -1
  15. package/dist/cjs/view/HoverCard/utils.js +8 -4
  16. package/dist/es2019/constants.js +1 -0
  17. package/dist/es2019/extractors/flexible/index.js +2 -1
  18. package/dist/es2019/extractors/flexible/utils.js +7 -1
  19. package/dist/es2019/messages.js +5 -0
  20. package/dist/es2019/ssr.js +11 -6
  21. package/dist/es2019/state/hooks/useSmartLink.js +6 -1
  22. package/dist/es2019/version.json +1 -1
  23. package/dist/es2019/view/BlockCard/views/flexible/FlexibleResolvedView.js +27 -22
  24. package/dist/es2019/view/FlexibleCard/components/blocks/utils.js +1 -0
  25. package/dist/es2019/view/FlexibleCard/components/elements/index.js +5 -0
  26. package/dist/es2019/view/FlexibleCard/components/elements/utils.js +5 -0
  27. package/dist/es2019/view/HoverCard/components/HoverCardContent.js +1 -3
  28. package/dist/es2019/view/HoverCard/components/views/resolved/index.js +1 -1
  29. package/dist/es2019/view/HoverCard/utils.js +8 -4
  30. package/dist/esm/constants.js +1 -0
  31. package/dist/esm/extractors/flexible/index.js +2 -1
  32. package/dist/esm/extractors/flexible/utils.js +7 -1
  33. package/dist/esm/messages.js +5 -0
  34. package/dist/esm/ssr.js +9 -6
  35. package/dist/esm/state/hooks/useSmartLink.js +6 -1
  36. package/dist/esm/version.json +1 -1
  37. package/dist/esm/view/BlockCard/views/flexible/FlexibleResolvedView.js +27 -22
  38. package/dist/esm/view/FlexibleCard/components/blocks/utils.js +1 -1
  39. package/dist/esm/view/FlexibleCard/components/elements/index.js +5 -0
  40. package/dist/esm/view/FlexibleCard/components/elements/utils.js +4 -0
  41. package/dist/esm/view/HoverCard/components/HoverCardContent.js +1 -3
  42. package/dist/esm/view/HoverCard/components/views/resolved/index.js +1 -1
  43. package/dist/esm/view/HoverCard/utils.js +8 -4
  44. package/dist/types/constants.d.ts +1 -0
  45. package/dist/types/extractors/flexible/utils.d.ts +1 -0
  46. package/dist/types/messages.d.ts +1 -1
  47. package/dist/types/state/flexible-ui-context/types.d.ts +6 -0
  48. package/dist/types/state/hooks/useSmartLink.d.ts +6 -1
  49. package/dist/types/view/CardWithUrl/types.d.ts +5 -1
  50. package/dist/types/view/FlexibleCard/components/blocks/types.d.ts +8 -1
  51. package/dist/types/view/FlexibleCard/components/elements/index.d.ts +5 -0
  52. package/dist/types/view/HoverCard/utils.d.ts +1 -1
  53. package/package.json +6 -6
  54. package/report.api.md +9 -1
  55. package/tmp/api-report-tmp.d.ts +8 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 25.6.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`72a99128d3e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/72a99128d3e) - Enables CardSSR component to send analytics events.
8
+
9
+ ## 25.6.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`eceb32a564f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/eceb32a564f) - [ux] This adds a new Flexible UI attribute, `OwnedBy`, which represents who owns a resource.
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies
18
+
3
19
  ## 25.5.7
4
20
 
5
21
  ### Patch Changes
@@ -119,6 +119,7 @@ exports.ElementName = ElementName;
119
119
  ElementName["LinkIcon"] = "LinkIcon";
120
120
  ElementName["ModifiedBy"] = "ModifiedBy";
121
121
  ElementName["ModifiedOn"] = "ModifiedOn";
122
+ ElementName["OwnedBy"] = "OwnedBy";
122
123
  ElementName["Preview"] = "Preview";
123
124
  ElementName["Priority"] = "Priority";
124
125
  ElementName["ProgrammingLanguage"] = "ProgrammingLanguage";
@@ -41,6 +41,7 @@ var extractFlexibleUiContext = function extractFlexibleUiContext() {
41
41
  voteCount: (0, _utils.extractVoteCount)(data),
42
42
  checklistProgress: (0, _utils.extractChecklistProgress)(data),
43
43
  createdBy: (0, _utils.extractCreatedBy)(data),
44
+ ownedBy: (0, _utils.extractOwnedBy)(data),
44
45
  createdOn: (0, _extractors.extractDateCreated)(data),
45
46
  dueOn: (0, _utils.extractDueOn)(data),
46
47
  previewAction: (0, _extractPreviewAction.extractPreviewAction)(response),
@@ -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.extractSourceBranch = exports.extractReactCount = exports.extractProgrammingLanguage = exports.extractModifiedBy = exports.extractDueOn = exports.extractCreatedBy = exports.extractCommentCount = exports.extractChecklistProgress = exports.extractAttachmentCount = void 0;
7
+ exports.extractVoteCount = exports.extractViewCount = exports.extractTargetBranch = exports.extractSubscriberCount = exports.extractSourceBranch = exports.extractReactCount = exports.extractProgrammingLanguage = exports.extractOwnedBy = exports.extractModifiedBy = exports.extractDueOn = exports.extractCreatedBy = exports.extractCommentCount = exports.extractChecklistProgress = exports.extractAttachmentCount = void 0;
8
8
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
9
  var _extractors = require("@atlaskit/linking-common/extractors");
10
10
  var extractLinkName = function extractLinkName(link) {
@@ -35,6 +35,13 @@ var extractVoteCount = function extractVoteCount(data) {
35
35
  return extractValue(data, 'atlassian:voteCount');
36
36
  };
37
37
  exports.extractVoteCount = extractVoteCount;
38
+ var extractOwnedBy = function extractOwnedBy(data) {
39
+ var persons = (0, _extractors.extractPersonOwnedBy)(data);
40
+ if (persons && persons.length) {
41
+ return persons[0].name;
42
+ }
43
+ };
44
+ exports.extractOwnedBy = extractOwnedBy;
38
45
  var extractCreatedBy = function extractCreatedBy(data) {
39
46
  var persons = (0, _extractors.extractPersonCreatedBy)(data);
40
47
  if (persons && persons.length) {
@@ -211,6 +211,11 @@ var messages = (0, _reactIntlNext.defineMessages)({
211
211
  defaultMessage: 'Open link in a new tab',
212
212
  description: 'Click to open link in a new tab'
213
213
  },
214
+ owned_by: {
215
+ id: 'fabric.linking.owned_by',
216
+ defaultMessage: 'Owned by {context}',
217
+ description: 'Indicates the person or entity that owns or maintains the resource.'
218
+ },
214
219
  preview: {
215
220
  id: 'fabric.linking.preview',
216
221
  defaultMessage: 'Full screen view',
package/dist/cjs/ssr.js CHANGED
@@ -11,8 +11,10 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _uuid = _interopRequireDefault(require("uuid"));
13
13
  var _reactErrorBoundary = require("react-error-boundary");
14
+ var _analyticsNext = require("@atlaskit/analytics-next");
14
15
  var _component = require("./view/CardWithUrl/component");
15
16
  var _LazyFallback = require("./view/CardWithUrl/component-lazy/LazyFallback");
17
+ var _analytics = require("./utils/analytics/analytics");
16
18
  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); }
17
19
  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; }
18
20
  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; }
@@ -22,19 +24,20 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
22
24
  // only contains whats necessary to render the card on SSR mode
23
25
  var CardSSR = function CardSSR(props) {
24
26
  var _useState = (0, _react.useState)(function () {
25
- return (0, _uuid.default)();
27
+ var _props$id;
28
+ return (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : (0, _uuid.default)();
26
29
  }),
27
30
  _useState2 = (0, _slicedToArray2.default)(_useState, 1),
28
31
  id = _useState2[0];
29
- var dispatchAnalytics = function dispatchAnalytics() {}; // we can't dispatch events on SSR, after hydration the we will provide the real callback
30
32
  var cardProps = _objectSpread(_objectSpread({}, props), {}, {
31
- id: id,
32
- dispatchAnalytics: dispatchAnalytics
33
+ id: id
33
34
  });
34
- return /*#__PURE__*/_react.default.createElement(_reactErrorBoundary.ErrorBoundary, {
35
+ return /*#__PURE__*/_react.default.createElement(_analyticsNext.AnalyticsContext, {
36
+ data: _analytics.context
37
+ }, /*#__PURE__*/_react.default.createElement(_reactErrorBoundary.ErrorBoundary, {
35
38
  FallbackComponent: function FallbackComponent() {
36
39
  return /*#__PURE__*/_react.default.createElement(_LazyFallback.LoadingCardLink, cardProps);
37
40
  }
38
- }, /*#__PURE__*/_react.default.createElement(_component.CardWithUrlContent, cardProps));
41
+ }, /*#__PURE__*/_react.default.createElement(_component.CardWithUrlContent, cardProps)));
39
42
  };
40
43
  exports.CardSSR = CardSSR;
@@ -13,7 +13,12 @@ var _config = require("../config");
13
13
  var _analytics = require("../analytics");
14
14
  var _renderers = require("../renderers");
15
15
  var _linkProvider = require("@atlaskit/link-provider");
16
- function useSmartLink(id, url, dispatchAnalytics) {
16
+ function useSmartLink(id, url,
17
+ /**
18
+ * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-2681 Internal documentation for deprecation (no external access)}
19
+ * Avoid prop drilling analytics handlers. Continue passing a handler for now if there's already one in place.
20
+ */
21
+ dispatchAnalytics) {
17
22
  var state = (0, _store.useSmartCardState)(url);
18
23
  var _useSmartLinkContext = (0, _linkProvider.useSmartLinkContext)(),
19
24
  store = _useSmartLinkContext.store;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "25.5.7",
3
+ "version": "25.6.1",
4
4
  "sideEffects": false
5
5
  }
@@ -13,6 +13,7 @@ var _titleBlock = _interopRequireDefault(require("../../../FlexibleCard/componen
13
13
  var _blocks = require("../../../FlexibleCard/components/blocks");
14
14
  var _constants = require("../../../../constants");
15
15
  var _uuid = _interopRequireDefault(require("uuid"));
16
+ var _utils = require("../../../../extractors/flexible/utils");
16
17
  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); }
17
18
  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; }
18
19
  /**
@@ -21,6 +22,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
21
22
  * @see FlexibleCardProps
22
23
  */
23
24
  var FlexibleResolvedView = function FlexibleResolvedView(_ref) {
25
+ var _cardState$details, _cardState$details2;
24
26
  var id = _ref.id,
25
27
  cardState = _ref.cardState,
26
28
  onClick = _ref.onClick,
@@ -44,6 +46,30 @@ var FlexibleResolvedView = function FlexibleResolvedView(_ref) {
44
46
  }),
45
47
  _useState4 = (0, _slicedToArray2.default)(_useState3, 1),
46
48
  analyticsId = _useState4[0];
49
+ var baseMetadata = [{
50
+ name: _constants.ElementName.ModifiedOn
51
+ }, {
52
+ name: _constants.ElementName.AttachmentCount
53
+ }, {
54
+ name: _constants.ElementName.CommentCount
55
+ }, {
56
+ name: _constants.ElementName.ReactCount
57
+ }, {
58
+ name: _constants.ElementName.SubscriberCount
59
+ }, {
60
+ name: _constants.ElementName.ViewCount
61
+ }, {
62
+ name: _constants.ElementName.VoteCount
63
+ }, {
64
+ name: _constants.ElementName.ChecklistProgress
65
+ }, {
66
+ name: _constants.ElementName.DueOn
67
+ }];
68
+ var metadata = cardState !== null && cardState !== void 0 && (_cardState$details = cardState.details) !== null && _cardState$details !== void 0 && _cardState$details.data && (0, _utils.extractOwnedBy)(cardState === null || cardState === void 0 ? void 0 : (_cardState$details2 = cardState.details) === null || _cardState$details2 === void 0 ? void 0 : _cardState$details2.data) ? [{
69
+ name: _constants.ElementName.OwnedBy
70
+ }].concat(baseMetadata) : [{
71
+ name: _constants.ElementName.ModifiedBy
72
+ }].concat(baseMetadata);
47
73
  return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, {
48
74
  appearance: "block",
49
75
  cardState: cardState,
@@ -65,27 +91,7 @@ var FlexibleResolvedView = function FlexibleResolvedView(_ref) {
65
91
  }],
66
92
  hideRetry: true
67
93
  }), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
68
- primary: [{
69
- name: _constants.ElementName.ModifiedBy
70
- }, {
71
- name: _constants.ElementName.ModifiedOn
72
- }, {
73
- name: _constants.ElementName.AttachmentCount
74
- }, {
75
- name: _constants.ElementName.CommentCount
76
- }, {
77
- name: _constants.ElementName.ReactCount
78
- }, {
79
- name: _constants.ElementName.SubscriberCount
80
- }, {
81
- name: _constants.ElementName.ViewCount
82
- }, {
83
- name: _constants.ElementName.VoteCount
84
- }, {
85
- name: _constants.ElementName.ChecklistProgress
86
- }, {
87
- name: _constants.ElementName.DueOn
88
- }],
94
+ primary: metadata,
89
95
  maxLines: 1
90
96
  }), /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, null), !isPreviewBlockErrored ? /*#__PURE__*/_react.default.createElement(_blocks.PreviewBlock, {
91
97
  placement: _constants.MediaPlacement.Right,
@@ -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.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.ViewCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ReactCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.VoteCount, ['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.ModifiedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedOn, ['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.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.TargetBranch, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Title, ['inline']), _ElementDisplaySchema);
27
+ var ElementDisplaySchema = (_ElementDisplaySchema = {}, (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.ViewCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ReactCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.VoteCount, ['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.ModifiedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.OwnedBy, ['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.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.TargetBranch, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Title, ['inline']), _ElementDisplaySchema);
28
28
  exports.ElementDisplaySchema = ElementDisplaySchema;
29
29
  var getDirectionStyles = function getDirectionStyles(direction) {
30
30
  switch (direction) {
@@ -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.State = exports.SourceBranch = exports.Snippet = exports.ReactCount = exports.Provider = exports.ProgrammingLanguage = exports.Priority = exports.Preview = exports.ModifiedOn = exports.ModifiedBy = exports.LinkIcon = exports.LatestCommit = exports.DueOn = exports.CreatedOn = exports.CreatedBy = exports.CommentCount = exports.CollaboratorGroup = exports.ChecklistProgress = exports.AuthorGroup = exports.AttachmentCount = void 0;
6
+ exports.VoteCount = exports.ViewCount = exports.Title = exports.TargetBranch = exports.SubscriberCount = exports.State = exports.SourceBranch = exports.Snippet = exports.ReactCount = exports.Provider = exports.ProgrammingLanguage = exports.Priority = exports.Preview = exports.OwnedBy = exports.ModifiedOn = exports.ModifiedBy = exports.LinkIcon = exports.LatestCommit = exports.DueOn = exports.CreatedOn = exports.CreatedBy = exports.CommentCount = exports.CollaboratorGroup = exports.ChecklistProgress = exports.AuthorGroup = exports.AttachmentCount = 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.
@@ -79,11 +79,17 @@ var ModifiedBy = (0, _utils.createElement)(_constants.ElementName.ModifiedBy);
79
79
  */
80
80
  exports.ModifiedBy = ModifiedBy;
81
81
  var ModifiedOn = (0, _utils.createElement)(_constants.ElementName.ModifiedOn);
82
+ /**
83
+ * Creates a OwnedBy text element using the data from OwnedBy in the Flexible UI Context.
84
+ * @see Text
85
+ */
86
+ exports.ModifiedOn = ModifiedOn;
87
+ var OwnedBy = (0, _utils.createElement)(_constants.ElementName.OwnedBy);
82
88
  /**
83
89
  * Creates a Preview element using the data from Preview in the Flexible UI Context.
84
90
  * @see Preview
85
91
  */
86
- exports.ModifiedOn = ModifiedOn;
92
+ exports.OwnedBy = OwnedBy;
87
93
  var Preview = (0, _utils.createElement)(_constants.ElementName.Preview);
88
94
  /**
89
95
  * Creates a Priority Badge element using the data from Priority in the Flexible UI Context.
@@ -64,6 +64,8 @@ var elementMappings = (_elementMappings = {}, (0, _defineProperty2.default)(_ele
64
64
  }
65
65
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.CreatedBy, {
66
66
  component: _text.default
67
+ }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.OwnedBy, {
68
+ component: _text.default
67
69
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.CreatedOn, {
68
70
  component: _dateTime.default
69
71
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.DueOn, {
@@ -136,6 +138,8 @@ var getData = function getData(elementName, contextKey, context) {
136
138
  return toBadgeProps(data);
137
139
  case _constants.ElementName.CreatedBy:
138
140
  return toFormattedTextProps(_messages.messages.created_by, context.createdBy);
141
+ case _constants.ElementName.OwnedBy:
142
+ return toFormattedTextProps(_messages.messages.owned_by, context.ownedBy);
139
143
  case _constants.ElementName.CreatedOn:
140
144
  return toDateTimeProps('created', context.createdOn);
141
145
  case _constants.ElementName.DueOn:
@@ -10,7 +10,6 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
10
10
  var _react = require("@emotion/react");
11
11
  var _shortcut = _interopRequireDefault(require("@atlaskit/icon/glyph/shortcut"));
12
12
  var _copy = _interopRequireDefault(require("@atlaskit/icon/glyph/copy"));
13
- var _extractors = require("@atlaskit/linking-common/extractors");
14
13
  var _analyticsNext = require("@atlaskit/analytics-next");
15
14
  var _react2 = _interopRequireWildcard(require("react"));
16
15
  var _constants = require("../../../constants");
@@ -126,8 +125,7 @@ var HoverCardContent = function HoverCardContent(_ref) {
126
125
  return [getCopyAction(url), getOpenAction(url, analytics, onActionClick)];
127
126
  }, [url, analytics, onActionClick]);
128
127
  var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
129
- var types = data ? (0, _extractors.extractType)(data) : undefined;
130
- var _extractMetadata = (0, _extractMetadata2.extractMetadata)((0, _utils2.getSimulatedMetadata)(extensionKey, types)),
128
+ var _extractMetadata = (0, _extractMetadata2.extractMetadata)((0, _utils2.getSimulatedMetadata)(extensionKey, data)),
131
129
  subtitle = _extractMetadata.subtitle;
132
130
  var titleMaxLines = subtitle && subtitle.length > 0 ? 1 : 2;
133
131
  var titleBlockProps = {
@@ -63,7 +63,7 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
63
63
  var _useMemo = (0, _react.useMemo)(function () {
64
64
  var types = data ? (0, _extractors.extractType)(data) : undefined;
65
65
  //TODO: EDM-3224 deleted simulated and use real JsonLd
66
- var metadata = (0, _extractMetadata.extractMetadata)((0, _utils.getSimulatedMetadata)(extensionKey, types));
66
+ var metadata = (0, _extractMetadata.extractMetadata)((0, _utils.getSimulatedMetadata)(extensionKey, data));
67
67
  var primary = showActionableElement ? (0, _utils.toActionableMetadata)(onActionClick, extensionKey, types, cardActions, metadata.primary) : metadata.primary;
68
68
  return {
69
69
  primary: primary,
@@ -7,15 +7,18 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.toActionableMetadata = exports.getSimulatedMetadata = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _constants = require("../../constants");
10
+ var _extractors = require("@atlaskit/linking-common/extractors");
11
+ var _utils = require("../../extractors/flexible/utils");
10
12
  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; }
11
13
  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; }
12
14
  var getSimulatedMetadata = function getSimulatedMetadata() {
13
15
  var extensionKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
14
- var types = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
16
+ var data = arguments.length > 1 ? arguments[1] : undefined;
17
+ var types = data ? (0, _extractors.extractType)(data) : undefined;
15
18
  switch (extensionKey) {
16
19
  case 'bitbucket-object-provider':
17
20
  case 'native-bitbucket-object-provider':
18
- if (types.includes('atlassian:SourceCodePullRequest')) {
21
+ if (types !== null && types !== void 0 && types.includes('atlassian:SourceCodePullRequest')) {
19
22
  return {
20
23
  metadata: {
21
24
  primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn, _constants.ElementName.SubscriberCount, _constants.ElementName.State],
@@ -32,9 +35,10 @@ var getSimulatedMetadata = function getSimulatedMetadata() {
32
35
  }
33
36
  };
34
37
  case 'confluence-object-provider':
38
+ var primaryAttribution = data && (0, _utils.extractOwnedBy)(data) ? _constants.ElementName.OwnedBy : _constants.ElementName.CreatedBy;
35
39
  return {
36
40
  metadata: {
37
- primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.CreatedBy],
41
+ primary: [_constants.ElementName.AuthorGroup, primaryAttribution],
38
42
  secondary: [_constants.ElementName.CommentCount, _constants.ElementName.ReactCount],
39
43
  subtitle: []
40
44
  }
@@ -56,7 +60,7 @@ var getSimulatedMetadata = function getSimulatedMetadata() {
56
60
  }
57
61
  };
58
62
  case 'watermelon-object-provider':
59
- if (types.includes('atlassian:Project')) {
63
+ if (types !== null && types !== void 0 && types.includes('atlassian:Project')) {
60
64
  return {
61
65
  metadata: {
62
66
  primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn, _constants.ElementName.State, _constants.ElementName.DueOn],
@@ -112,6 +112,7 @@ export let ElementName;
112
112
  ElementName["LinkIcon"] = "LinkIcon";
113
113
  ElementName["ModifiedBy"] = "ModifiedBy";
114
114
  ElementName["ModifiedOn"] = "ModifiedOn";
115
+ ElementName["OwnedBy"] = "OwnedBy";
115
116
  ElementName["Preview"] = "Preview";
116
117
  ElementName["Priority"] = "Priority";
117
118
  ElementName["ProgrammingLanguage"] = "ProgrammingLanguage";
@@ -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 } from './utils';
3
+ import { extractAttachmentCount, extractChecklistProgress, extractCommentCount, extractCreatedBy, extractModifiedBy, extractProgrammingLanguage, extractSubscriberCount, extractViewCount, extractReactCount, extractVoteCount, extractSourceBranch, extractTargetBranch, extractDueOn, extractOwnedBy } from './utils';
4
4
  import { extractPersonsUpdatedBy } from './collaboratorGroup';
5
5
  import { extractPersonCreatedBy, extractTitle, extractDateUpdated, extractDateCreated, extractLink } from '@atlaskit/linking-common/extractors';
6
6
  import extractPriority from './extract-priority';
@@ -34,6 +34,7 @@ const extractFlexibleUiContext = ({
34
34
  voteCount: extractVoteCount(data),
35
35
  checklistProgress: extractChecklistProgress(data),
36
36
  createdBy: extractCreatedBy(data),
37
+ ownedBy: extractOwnedBy(data),
37
38
  createdOn: extractDateCreated(data),
38
39
  dueOn: extractDueOn(data),
39
40
  previewAction: extractPreviewAction(response),
@@ -1,4 +1,4 @@
1
- import { extractPersonCreatedBy, extractPersonUpdatedBy } from '@atlaskit/linking-common/extractors';
1
+ import { extractPersonOwnedBy, extractPersonCreatedBy, extractPersonUpdatedBy } from '@atlaskit/linking-common/extractors';
2
2
  const extractLinkName = link => {
3
3
  if (link && typeof link === 'object' && link['@type'] === 'Link') {
4
4
  return link.name;
@@ -12,6 +12,12 @@ export const extractDueOn = data => extractValue(data, 'endTime');
12
12
  export const extractViewCount = data => extractValue(data, 'atlassian:viewCount');
13
13
  export const extractReactCount = data => extractValue(data, 'atlassian:reactCount');
14
14
  export const extractVoteCount = data => extractValue(data, 'atlassian:voteCount');
15
+ export const extractOwnedBy = data => {
16
+ const persons = extractPersonOwnedBy(data);
17
+ if (persons && persons.length) {
18
+ return persons[0].name;
19
+ }
20
+ };
15
21
  export const extractCreatedBy = data => {
16
22
  const persons = extractPersonCreatedBy(data);
17
23
  if (persons && persons.length) {
@@ -205,6 +205,11 @@ export const messages = defineMessages({
205
205
  defaultMessage: 'Open link in a new tab',
206
206
  description: 'Click to open link in a new tab'
207
207
  },
208
+ owned_by: {
209
+ id: 'fabric.linking.owned_by',
210
+ defaultMessage: 'Owned by {context}',
211
+ description: 'Indicates the person or entity that owns or maintains the resource.'
212
+ },
208
213
  preview: {
209
214
  id: 'fabric.linking.preview',
210
215
  defaultMessage: 'Full screen view',
@@ -2,20 +2,25 @@ import React from 'react';
2
2
  import { useState } from 'react';
3
3
  import uuid from 'uuid';
4
4
  import { ErrorBoundary } from 'react-error-boundary';
5
+ import { AnalyticsContext } from '@atlaskit/analytics-next';
5
6
  import { CardWithUrlContent } from './view/CardWithUrl/component';
6
7
  import { LoadingCardLink } from './view/CardWithUrl/component-lazy/LazyFallback';
8
+ import { context } from './utils/analytics/analytics';
7
9
  // SSR friendly version of smart-card
8
10
  // simplifies the logic around rendering and loading placeholders and
9
11
  // only contains whats necessary to render the card on SSR mode
10
12
  export const CardSSR = props => {
11
- const [id] = useState(() => uuid());
12
- const dispatchAnalytics = () => {}; // we can't dispatch events on SSR, after hydration the we will provide the real callback
13
+ const [id] = useState(() => {
14
+ var _props$id;
15
+ return (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : uuid();
16
+ });
13
17
  const cardProps = {
14
18
  ...props,
15
- id,
16
- dispatchAnalytics
19
+ id
17
20
  };
18
- return /*#__PURE__*/React.createElement(ErrorBoundary, {
21
+ return /*#__PURE__*/React.createElement(AnalyticsContext, {
22
+ data: context
23
+ }, /*#__PURE__*/React.createElement(ErrorBoundary, {
19
24
  FallbackComponent: () => /*#__PURE__*/React.createElement(LoadingCardLink, cardProps)
20
- }, /*#__PURE__*/React.createElement(CardWithUrlContent, cardProps));
25
+ }, /*#__PURE__*/React.createElement(CardWithUrlContent, cardProps)));
21
26
  };
@@ -5,7 +5,12 @@ import { useSmartLinkConfig } from '../config';
5
5
  import { useSmartLinkAnalytics } from '../analytics';
6
6
  import { useSmartLinkRenderers } from '../renderers';
7
7
  import { useSmartLinkContext } from '@atlaskit/link-provider';
8
- export function useSmartLink(id, url, dispatchAnalytics) {
8
+ export function useSmartLink(id, url,
9
+ /**
10
+ * @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-2681 Internal documentation for deprecation (no external access)}
11
+ * Avoid prop drilling analytics handlers. Continue passing a handler for now if there's already one in place.
12
+ */
13
+ dispatchAnalytics) {
9
14
  const state = useSmartLinkState(url);
10
15
  const {
11
16
  store
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "25.5.7",
3
+ "version": "25.6.1",
4
4
  "sideEffects": false
5
5
  }
@@ -4,7 +4,7 @@ import TitleBlock from '../../../FlexibleCard/components/blocks/title-block';
4
4
  import { FooterBlock, MetadataBlock, PreviewBlock, SnippetBlock } from '../../../FlexibleCard/components/blocks';
5
5
  import { ActionName, CardDisplay, ElementName, MediaPlacement, SmartLinkPosition } from '../../../../constants';
6
6
  import uuid from 'uuid';
7
-
7
+ import { extractOwnedBy } from '../../../../extractors/flexible/utils';
8
8
  /**
9
9
  * This view represents a Block card that has an 'Resolved' status.
10
10
  * @see SmartLinkStatus
@@ -22,11 +22,36 @@ const FlexibleResolvedView = ({
22
22
  url,
23
23
  analytics
24
24
  }) => {
25
+ var _cardState$details, _cardState$details2;
25
26
  const [isPreviewBlockErrored, setIsPreviewBlockErrored] = useState(false);
26
27
  useEffect(() => {
27
28
  setIsPreviewBlockErrored(false);
28
29
  }, [url, cardState]);
29
30
  const [analyticsId] = useState(() => id ? id : uuid());
31
+ const baseMetadata = [{
32
+ name: ElementName.ModifiedOn
33
+ }, {
34
+ name: ElementName.AttachmentCount
35
+ }, {
36
+ name: ElementName.CommentCount
37
+ }, {
38
+ name: ElementName.ReactCount
39
+ }, {
40
+ name: ElementName.SubscriberCount
41
+ }, {
42
+ name: ElementName.ViewCount
43
+ }, {
44
+ name: ElementName.VoteCount
45
+ }, {
46
+ name: ElementName.ChecklistProgress
47
+ }, {
48
+ name: ElementName.DueOn
49
+ }];
50
+ const metadata = cardState !== null && cardState !== void 0 && (_cardState$details = cardState.details) !== null && _cardState$details !== void 0 && _cardState$details.data && extractOwnedBy(cardState === null || cardState === void 0 ? void 0 : (_cardState$details2 = cardState.details) === null || _cardState$details2 === void 0 ? void 0 : _cardState$details2.data) ? [{
51
+ name: ElementName.OwnedBy
52
+ }, ...baseMetadata] : [{
53
+ name: ElementName.ModifiedBy
54
+ }, ...baseMetadata];
30
55
  return /*#__PURE__*/React.createElement(FlexibleCard, {
31
56
  appearance: "block",
32
57
  cardState: cardState,
@@ -48,27 +73,7 @@ const FlexibleResolvedView = ({
48
73
  }],
49
74
  hideRetry: true
50
75
  }), /*#__PURE__*/React.createElement(MetadataBlock, {
51
- primary: [{
52
- name: ElementName.ModifiedBy
53
- }, {
54
- name: ElementName.ModifiedOn
55
- }, {
56
- name: ElementName.AttachmentCount
57
- }, {
58
- name: ElementName.CommentCount
59
- }, {
60
- name: ElementName.ReactCount
61
- }, {
62
- name: ElementName.SubscriberCount
63
- }, {
64
- name: ElementName.ViewCount
65
- }, {
66
- name: ElementName.VoteCount
67
- }, {
68
- name: ElementName.ChecklistProgress
69
- }, {
70
- name: ElementName.DueOn
71
- }],
76
+ primary: metadata,
72
77
  maxLines: 1
73
78
  }), /*#__PURE__*/React.createElement(SnippetBlock, null), !isPreviewBlockErrored ? /*#__PURE__*/React.createElement(PreviewBlock, {
74
79
  placement: MediaPlacement.Right,
@@ -25,6 +25,7 @@ export const ElementDisplaySchema = {
25
25
  [ElementName.LinkIcon]: ['inline'],
26
26
  [ElementName.ModifiedBy]: ['inline'],
27
27
  [ElementName.ModifiedOn]: ['inline'],
28
+ [ElementName.OwnedBy]: ['inline'],
28
29
  [ElementName.Preview]: ['block'],
29
30
  [ElementName.Priority]: ['inline'],
30
31
  [ElementName.ProgrammingLanguage]: ['inline'],
@@ -62,6 +62,11 @@ export const ModifiedBy = createElement(ElementName.ModifiedBy);
62
62
  * @see DateTime
63
63
  */
64
64
  export const ModifiedOn = createElement(ElementName.ModifiedOn);
65
+ /**
66
+ * Creates a OwnedBy text element using the data from OwnedBy in the Flexible UI Context.
67
+ * @see Text
68
+ */
69
+ export const OwnedBy = createElement(ElementName.OwnedBy);
65
70
  /**
66
71
  * Creates a Preview element using the data from Preview in the Flexible UI Context.
67
72
  * @see Preview
@@ -61,6 +61,9 @@ const elementMappings = {
61
61
  [ElementName.CreatedBy]: {
62
62
  component: Text
63
63
  },
64
+ [ElementName.OwnedBy]: {
65
+ component: Text
66
+ },
64
67
  [ElementName.CreatedOn]: {
65
68
  component: DateTime
66
69
  },
@@ -151,6 +154,8 @@ const getData = (elementName, contextKey, context) => {
151
154
  return toBadgeProps(data);
152
155
  case ElementName.CreatedBy:
153
156
  return toFormattedTextProps(messages.created_by, context.createdBy);
157
+ case ElementName.OwnedBy:
158
+ return toFormattedTextProps(messages.owned_by, context.ownedBy);
154
159
  case ElementName.CreatedOn:
155
160
  return toDateTimeProps('created', context.createdOn);
156
161
  case ElementName.DueOn:
@@ -2,7 +2,6 @@
2
2
  import { jsx } from '@emotion/react';
3
3
  import ShortcutIcon from '@atlaskit/icon/glyph/shortcut';
4
4
  import CopyIcon from '@atlaskit/icon/glyph/copy';
5
- import { extractType } from '@atlaskit/linking-common/extractors';
6
5
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
7
6
  import React, { useCallback, useEffect, useMemo } from 'react';
8
7
  import { ActionName, CardDisplay, SmartLinkPosition, SmartLinkSize } from '../../../constants';
@@ -83,10 +82,9 @@ const HoverCardContent = ({
83
82
  }, [createAnalyticsEvent, cardState.status, analytics.ui, id]);
84
83
  const titleActions = useMemo(() => [getCopyAction(url), getOpenAction(url, analytics, onActionClick)], [url, analytics, onActionClick]);
85
84
  const data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
86
- const types = data ? extractType(data) : undefined;
87
85
  const {
88
86
  subtitle
89
- } = extractMetadata(getSimulatedMetadata(extensionKey, types));
87
+ } = extractMetadata(getSimulatedMetadata(extensionKey, data));
90
88
  const titleMaxLines = subtitle && subtitle.length > 0 ? 1 : 2;
91
89
  const titleBlockProps = {
92
90
  actions: titleActions,
@@ -48,7 +48,7 @@ const HoverCardResolvedView = ({
48
48
  } = useMemo(() => {
49
49
  const types = data ? extractType(data) : undefined;
50
50
  //TODO: EDM-3224 deleted simulated and use real JsonLd
51
- const metadata = extractMetadata(getSimulatedMetadata(extensionKey, types));
51
+ const metadata = extractMetadata(getSimulatedMetadata(extensionKey, data));
52
52
  const primary = showActionableElement ? toActionableMetadata(onActionClick, extensionKey, types, cardActions, metadata.primary) : metadata.primary;
53
53
  return {
54
54
  primary,