@atlaskit/smart-card 19.1.27 → 19.1.30

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 (85) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/cjs/constants.js +3 -1
  3. package/dist/cjs/extractors/flexible/index.js +4 -2
  4. package/dist/cjs/extractors/flexible/utils.js +24 -2
  5. package/dist/cjs/extractors/hover/extractMetadata.js +3 -2
  6. package/dist/cjs/version.json +1 -1
  7. package/dist/cjs/view/CardWithUrl/component.js +9 -1
  8. package/dist/cjs/view/FlexibleCard/components/blocks/block/index.js +1 -1
  9. package/dist/cjs/view/FlexibleCard/components/blocks/utils.js +1 -1
  10. package/dist/cjs/view/FlexibleCard/components/elements/avatar-group/index.js +2 -0
  11. package/dist/cjs/view/FlexibleCard/components/elements/badge/index.js +2 -0
  12. package/dist/cjs/view/FlexibleCard/components/elements/date-time/index.js +2 -0
  13. package/dist/cjs/view/FlexibleCard/components/elements/icon/index.js +2 -0
  14. package/dist/cjs/view/FlexibleCard/components/elements/index.js +17 -3
  15. package/dist/cjs/view/FlexibleCard/components/elements/link/index.js +2 -0
  16. package/dist/cjs/view/FlexibleCard/components/elements/lozenge/index.js +2 -0
  17. package/dist/cjs/view/FlexibleCard/components/elements/media/index.js +3 -1
  18. package/dist/cjs/view/FlexibleCard/components/elements/text/index.js +2 -0
  19. package/dist/cjs/view/FlexibleCard/components/elements/utils.js +20 -12
  20. package/dist/cjs/view/HoverCard/components/hover-card-content.js +12 -5
  21. package/dist/cjs/view/HoverCard/index.js +1 -1
  22. package/dist/cjs/view/HoverCard/styled.js +8 -5
  23. package/dist/cjs/view/HoverCard/utils.js +27 -3
  24. package/dist/es2019/constants.js +3 -1
  25. package/dist/es2019/extractors/flexible/index.js +5 -3
  26. package/dist/es2019/extractors/flexible/utils.js +9 -1
  27. package/dist/es2019/extractors/hover/extractMetadata.js +3 -2
  28. package/dist/es2019/version.json +1 -1
  29. package/dist/es2019/view/CardWithUrl/component.js +8 -1
  30. package/dist/es2019/view/FlexibleCard/components/blocks/block/index.js +11 -1
  31. package/dist/es2019/view/FlexibleCard/components/blocks/utils.js +5 -3
  32. package/dist/es2019/view/FlexibleCard/components/elements/avatar-group/index.js +2 -0
  33. package/dist/es2019/view/FlexibleCard/components/elements/badge/index.js +2 -0
  34. package/dist/es2019/view/FlexibleCard/components/elements/date-time/index.js +2 -0
  35. package/dist/es2019/view/FlexibleCard/components/elements/icon/index.js +2 -0
  36. package/dist/es2019/view/FlexibleCard/components/elements/index.js +12 -0
  37. package/dist/es2019/view/FlexibleCard/components/elements/link/index.js +2 -0
  38. package/dist/es2019/view/FlexibleCard/components/elements/lozenge/index.js +2 -0
  39. package/dist/es2019/view/FlexibleCard/components/elements/media/index.js +2 -0
  40. package/dist/es2019/view/FlexibleCard/components/elements/text/index.js +2 -0
  41. package/dist/es2019/view/FlexibleCard/components/elements/utils.js +26 -16
  42. package/dist/es2019/view/HoverCard/components/hover-card-content.js +11 -5
  43. package/dist/es2019/view/HoverCard/index.js +1 -1
  44. package/dist/es2019/view/HoverCard/styled.js +31 -5
  45. package/dist/es2019/view/HoverCard/utils.js +27 -4
  46. package/dist/esm/constants.js +3 -1
  47. package/dist/esm/extractors/flexible/index.js +5 -3
  48. package/dist/esm/extractors/flexible/utils.js +13 -0
  49. package/dist/esm/extractors/hover/extractMetadata.js +3 -2
  50. package/dist/esm/state/actions/index.js +1 -1
  51. package/dist/esm/state/hooks/usePrefetch.js +1 -1
  52. package/dist/esm/utils/mocks.js +1 -1
  53. package/dist/esm/version.json +1 -1
  54. package/dist/esm/view/BlockCard/actions/DownloadAction.js +1 -1
  55. package/dist/esm/view/BlockCard/actions/PreviewAction.js +1 -1
  56. package/dist/esm/view/BlockCard/actions/RetryAction.js +1 -1
  57. package/dist/esm/view/BlockCard/actions/ViewAction.js +1 -1
  58. package/dist/esm/view/CardWithUrl/component.js +8 -1
  59. package/dist/esm/view/FlexibleCard/components/blocks/block/index.js +2 -2
  60. package/dist/esm/view/FlexibleCard/components/blocks/utils.js +1 -1
  61. package/dist/esm/view/FlexibleCard/components/elements/avatar-group/index.js +2 -0
  62. package/dist/esm/view/FlexibleCard/components/elements/badge/index.js +2 -0
  63. package/dist/esm/view/FlexibleCard/components/elements/date-time/index.js +2 -0
  64. package/dist/esm/view/FlexibleCard/components/elements/icon/index.js +2 -0
  65. package/dist/esm/view/FlexibleCard/components/elements/index.js +12 -0
  66. package/dist/esm/view/FlexibleCard/components/elements/link/index.js +2 -0
  67. package/dist/esm/view/FlexibleCard/components/elements/lozenge/index.js +2 -0
  68. package/dist/esm/view/FlexibleCard/components/elements/media/index.js +3 -1
  69. package/dist/esm/view/FlexibleCard/components/elements/text/index.js +2 -0
  70. package/dist/esm/view/FlexibleCard/components/elements/utils.js +20 -12
  71. package/dist/esm/view/HoverCard/components/hover-card-content.js +11 -5
  72. package/dist/esm/view/HoverCard/index.js +1 -1
  73. package/dist/esm/view/HoverCard/styled.js +8 -5
  74. package/dist/esm/view/HoverCard/utils.js +27 -3
  75. package/dist/types/constants.d.ts +3 -1
  76. package/dist/types/extractors/common/__mocks__/jsonld.d.ts +11 -6
  77. package/dist/types/extractors/flexible/utils.d.ts +2 -0
  78. package/dist/types/state/flexible-ui-context/types.d.ts +22 -10
  79. package/dist/types/view/FlexibleCard/components/blocks/types.d.ts +15 -1
  80. package/dist/types/view/FlexibleCard/components/elements/index.d.ts +10 -0
  81. package/dist/types/view/FlexibleCard/components/elements/types.d.ts +7 -1
  82. package/dist/types/view/HoverCard/types.d.ts +1 -0
  83. package/dist/types/view/HoverCard/utils.d.ts +1 -1
  84. package/package.json +2 -2
  85. package/report.api.md +505 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 19.1.30
4
+
5
+ ### Patch Changes
6
+
7
+ - [`3a2bc5af606`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3a2bc5af606) - Flexible UI: Add pull request source and target branch element (text)
8
+ Hover Preview: Update Bitbucket metadata for pull request link
9
+
10
+ ## 19.1.29
11
+
12
+ ### Patch Changes
13
+
14
+ - [`acfb4cbb01f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/acfb4cbb01f) - set hover card z-index to 511 to go over issue view modal
15
+
16
+ ## 19.1.28
17
+
18
+ ### Patch Changes
19
+
20
+ - [`455538b6a3f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/455538b6a3f) - use useFeatureFlag hook to get hover preview FF
21
+
3
22
  ## 19.1.27
4
23
 
5
24
  ### Patch Changes
@@ -102,7 +102,7 @@ var SmartLinkWidth;
102
102
  * When adding an element...
103
103
  * 1) Create base element if it doesn't already exist.
104
104
  * Base element are inside src/view/FlexibleCard/components/elements.
105
- * E.g. Badge,DateTime, Icon, Lozenge, etc.
105
+ * E.g. Badge, DateTime, Icon, Lozenge, etc.
106
106
  * 2) Update FlexibleUiContext with the new prop for data representing
107
107
  * the element, preferably with the same name as the element itself.
108
108
  * (src/state/flexible-ui-context/types.ts)
@@ -143,8 +143,10 @@ exports.ElementName = ElementName;
143
143
  ElementName["Provider"] = "Provider";
144
144
  ElementName["ReactCount"] = "ReactCount";
145
145
  ElementName["Snippet"] = "Snippet";
146
+ ElementName["SourceBranch"] = "SourceBranch";
146
147
  ElementName["State"] = "State";
147
148
  ElementName["SubscriberCount"] = "SubscriberCount";
149
+ ElementName["TargetBranch"] = "TargetBranch";
148
150
  ElementName["Title"] = "Title";
149
151
  ElementName["ViewCount"] = "ViewCount";
150
152
  ElementName["VoteCount"] = "VoteCount";
@@ -47,19 +47,21 @@ var extractFlexibleUiContext = function extractFlexibleUiContext(response, rende
47
47
  voteCount: (0, _utils.extractVoteCount)(data),
48
48
  createdBy: (0, _utils.extractCreatedBy)(data),
49
49
  createdOn: (0, _extractDateCreated.extractDateCreated)(data),
50
+ latestCommit: (0, _latestCommit.extractLatestCommit)(data),
50
51
  linkIcon: (0, _icon.extractLinkIcon)(response, renderers),
51
52
  modifiedBy: (0, _utils.extractModifiedBy)(data),
52
53
  modifiedOn: (0, _extractDateUpdated.extractDateUpdated)(data),
53
54
  preview: (0, _extractPreview.default)(data),
54
55
  priority: (0, _extractPriority.default)(data),
56
+ provider: (0, _extractProviderIcon.default)(data),
55
57
  programmingLanguage: (0, _utils.extractProgrammingLanguage)(data),
56
58
  snippet: (0, _primitives.extractSummary)(data) || undefined,
57
59
  // Explicitly set here to remove an empty string
60
+ sourceBranch: (0, _utils.extractSourceBranch)(data),
58
61
  state: (0, _lozenge.extractLozenge)(data),
59
62
  subscriberCount: (0, _utils.extractSubscriberCount)(data),
63
+ targetBranch: (0, _utils.extractTargetBranch)(data),
60
64
  title: (0, _primitives.extractTitle)(data) || url,
61
- provider: (0, _extractProviderIcon.default)(data),
62
- latestCommit: (0, _latestCommit.extractLatestCommit)(data),
63
65
  url: url
64
66
  };
65
67
  };
@@ -1,12 +1,22 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
- exports.extractVoteCount = exports.extractViewCount = exports.extractSubscriberCount = exports.extractReactCount = exports.extractProgrammingLanguage = exports.extractModifiedBy = exports.extractCreatedBy = exports.extractCommentCount = void 0;
8
+ exports.extractVoteCount = exports.extractViewCount = exports.extractTargetBranch = exports.extractSubscriberCount = exports.extractSourceBranch = exports.extractReactCount = exports.extractProgrammingLanguage = exports.extractModifiedBy = exports.extractCreatedBy = exports.extractCommentCount = void 0;
9
+
10
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
7
11
 
8
12
  var _person = require("../common/person");
9
13
 
14
+ var extractLinkName = function extractLinkName(link) {
15
+ if (link && (0, _typeof2.default)(link) === 'object' && link['@type'] === 'Link') {
16
+ return link.name;
17
+ }
18
+ };
19
+
10
20
  var extractValue = function extractValue(data, key) {
11
21
  return data === null || data === void 0 ? void 0 : data[key];
12
22
  };
@@ -61,8 +71,20 @@ var extractProgrammingLanguage = function extractProgrammingLanguage(data) {
61
71
 
62
72
  exports.extractProgrammingLanguage = extractProgrammingLanguage;
63
73
 
74
+ var extractSourceBranch = function extractSourceBranch(data) {
75
+ return extractLinkName(data['atlassian:mergeSource']);
76
+ };
77
+
78
+ exports.extractSourceBranch = extractSourceBranch;
79
+
64
80
  var extractSubscriberCount = function extractSubscriberCount(data) {
65
81
  return extractValue(data, 'atlassian:subscriberCount');
66
82
  };
67
83
 
68
- exports.extractSubscriberCount = extractSubscriberCount;
84
+ exports.extractSubscriberCount = extractSubscriberCount;
85
+
86
+ var extractTargetBranch = function extractTargetBranch(data) {
87
+ return extractLinkName(data['atlassian:mergeDestination']);
88
+ };
89
+
90
+ exports.extractTargetBranch = extractTargetBranch;
@@ -19,12 +19,13 @@ var elementNamesToItems = function elementNamesToItems(elementNames) {
19
19
  };
20
20
 
21
21
  var extractMetadata = function extractMetadata(jsonLd) {
22
- var _jsonLd$metadata, _metadata$primary, _metadata$secondary;
22
+ var _jsonLd$metadata, _metadata$primary, _metadata$secondary, _metadata$subtitle;
23
23
 
24
24
  var metadata = (_jsonLd$metadata = jsonLd.metadata) !== null && _jsonLd$metadata !== void 0 ? _jsonLd$metadata : [];
25
25
  return {
26
26
  primary: elementNamesToItems((_metadata$primary = metadata.primary) !== null && _metadata$primary !== void 0 ? _metadata$primary : []),
27
- secondary: elementNamesToItems((_metadata$secondary = metadata.secondary) !== null && _metadata$secondary !== void 0 ? _metadata$secondary : [])
27
+ secondary: elementNamesToItems((_metadata$secondary = metadata.secondary) !== null && _metadata$secondary !== void 0 ? _metadata$secondary : []),
28
+ subtitle: elementNamesToItems((_metadata$subtitle = metadata.subtitle) !== null && _metadata$subtitle !== void 0 ? _metadata$subtitle : [])
28
29
  };
29
30
  };
30
31
 
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "19.1.27",
3
+ "version": "19.1.30",
4
4
  "sideEffects": false
5
5
  }
@@ -11,6 +11,8 @@ exports.CardWithUrlContent = CardWithUrlContent;
11
11
 
12
12
  var _react = _interopRequireWildcard(require("react"));
13
13
 
14
+ var _linkProvider = require("@atlaskit/link-provider");
15
+
14
16
  var _utils = require("../../utils");
15
17
 
16
18
  var measure = _interopRequireWildcard(require("../../utils/performance"));
@@ -73,7 +75,13 @@ function CardWithUrlContent(_ref) {
73
75
  var services = (0, _helpers.getServices)(state.details);
74
76
  var isFlexibleUi = (0, _react.useMemo)(function () {
75
77
  return (0, _flexible.isFlexibleUiCard)(children);
76
- }, [children]); // Setup UI handlers.
78
+ }, [children]);
79
+ var showHoverPreviewFlag = (0, _linkProvider.useFeatureFlag)('showHoverPreview');
80
+
81
+ if (showHoverPreview === undefined && showHoverPreviewFlag !== undefined) {
82
+ showHoverPreview = showHoverPreviewFlag;
83
+ } // Setup UI handlers.
84
+
77
85
 
78
86
  var handleClick = (0, _react.useCallback)(function (event) {
79
87
  var clickUrl = (0, _helpers.getClickUrl)(url, state.details);
@@ -20,7 +20,7 @@ var _utils = require("../utils");
20
20
  var _templateObject;
21
21
 
22
22
  var getBlockStyles = function getBlockStyles(direction, size) {
23
- return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n ", "\n justify-content: flex-start;\n [data-separator] + [data-separator]:before {\n content: '\u2022';\n margin-right: ", "rem;\n }\n"])), (0, _utils.getBaseStyles)(direction, size), (0, _utils.getGapSize)(size));
23
+ return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n ", "\n justify-content: flex-start;\n [data-separator] + [data-separator]:before {\n content: '\u2022';\n margin-right: ", "rem;\n }\n // Pull request elements: source branch \u2192 target branch\n [data-smart-element='", "']\n + [data-smart-element='", "']:before {\n content: '\u2192';\n }\n // Pull request elements: target branch \u2190 source branch\n [data-smart-element='", "']\n + [data-smart-element='", "']:before {\n content: '\u2190';\n }\n"])), (0, _utils.getBaseStyles)(direction, size), (0, _utils.getGapSize)(size), _constants.ElementName.SourceBranch, _constants.ElementName.TargetBranch, _constants.ElementName.TargetBranch, _constants.ElementName.SourceBranch);
24
24
  };
25
25
  /**
26
26
  * A block represents a collection of elements and actions that are arranged
@@ -48,7 +48,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
48
48
 
49
49
  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; }
50
50
 
51
- var ElementDisplaySchema = (_ElementDisplaySchema = {}, (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AuthorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CollaboratorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CommentCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.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.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.Snippet, ['block']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.State, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.SubscriberCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Title, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Provider, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.LatestCommit, ['inline']), _ElementDisplaySchema);
51
+ var ElementDisplaySchema = (_ElementDisplaySchema = {}, (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AuthorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CollaboratorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CommentCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.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.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);
52
52
  exports.ElementDisplaySchema = ElementDisplaySchema;
53
53
 
54
54
  var getDirectionStyles = function getDirectionStyles(direction) {
@@ -50,6 +50,7 @@ var AvatarGroup = function AvatarGroup(_ref) {
50
50
  items = _ref$items === void 0 ? [] : _ref$items,
51
51
  _ref$maxCount = _ref.maxCount,
52
52
  maxCount = _ref$maxCount === void 0 ? MAX_COUNT : _ref$maxCount,
53
+ name = _ref.name,
53
54
  overrideCss = _ref.overrideCss,
54
55
  _ref$size = _ref.size,
55
56
  size = _ref$size === void 0 ? _constants.SmartLinkSize.Medium : _ref$size,
@@ -63,6 +64,7 @@ var AvatarGroup = function AvatarGroup(_ref) {
63
64
  return (0, _core.jsx)("span", {
64
65
  css: [getStyles(size), overrideCss],
65
66
  "data-fit-to-content": true,
67
+ "data-smart-element": name,
66
68
  "data-smart-element-avatar-group": true,
67
69
  "data-testid": testId
68
70
  }, (0, _core.jsx)(_avatarGroup.default, {
@@ -82,6 +82,7 @@ var renderImageIcon = function renderImageIcon(url, testId) {
82
82
  var Badge = function Badge(_ref) {
83
83
  var icon = _ref.icon,
84
84
  label = _ref.label,
85
+ name = _ref.name,
85
86
  overrideCss = _ref.overrideCss,
86
87
  _ref$testId = _ref.testId,
87
88
  testId = _ref$testId === void 0 ? 'smart-element-badge' : _ref$testId,
@@ -96,6 +97,7 @@ var Badge = function Badge(_ref) {
96
97
  return (0, _core.jsx)("span", {
97
98
  css: [badgeStyles, overrideCss],
98
99
  "data-fit-to-content": true,
100
+ "data-smart-element": name,
99
101
  "data-smart-element-badge": true,
100
102
  "data-testid": testId
101
103
  }, (0, _core.jsx)("span", {
@@ -48,6 +48,7 @@ var typeToDescriptorMap = {
48
48
 
49
49
  var DateTime = function DateTime(_ref) {
50
50
  var date = _ref.date,
51
+ name = _ref.name,
51
52
  overrideCss = _ref.overrideCss,
52
53
  type = _ref.type,
53
54
  _ref$testId = _ref.testId,
@@ -87,6 +88,7 @@ var DateTime = function DateTime(_ref) {
87
88
  return (0, _core.jsx)("span", {
88
89
  css: [styles, overrideCss],
89
90
  "data-separator": true,
91
+ "data-smart-element": name,
90
92
  "data-smart-element-date-time": true,
91
93
  "data-testid": testId
92
94
  }, text ? "".concat(text, " ").concat(context) : (0, _core.jsx)(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, typeToDescriptorMap[type][typeVariant], {
@@ -88,6 +88,7 @@ var Icon = function Icon(_ref) {
88
88
  var icon = _ref.icon,
89
89
  _ref$label = _ref.label,
90
90
  label = _ref$label === void 0 ? 'Link' : _ref$label,
91
+ name = _ref.name,
91
92
  _ref$position = _ref.position,
92
93
  position = _ref$position === void 0 ? _constants.SmartLinkPosition.Top : _ref$position,
93
94
  overrideCss = _ref.overrideCss,
@@ -107,6 +108,7 @@ var Icon = function Icon(_ref) {
107
108
  return (0, _core.jsx)("div", {
108
109
  css: [styles, renderStyles, overrideCss],
109
110
  "data-fit-to-content": true,
111
+ "data-smart-element": name,
110
112
  "data-smart-element-icon": true,
111
113
  "data-testid": testId
112
114
  }, element);
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.VoteCount = exports.ViewCount = exports.Title = exports.SubscriberCount = exports.State = exports.Snippet = exports.ReactCount = exports.Provider = exports.ProgrammingLanguage = exports.Priority = exports.Preview = exports.ModifiedOn = exports.ModifiedBy = exports.LinkIcon = exports.LatestCommit = exports.CreatedOn = exports.CreatedBy = exports.CommentCount = exports.CollaboratorGroup = exports.AuthorGroup = 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.ModifiedOn = exports.ModifiedBy = exports.LinkIcon = exports.LatestCommit = exports.CreatedOn = exports.CreatedBy = exports.CommentCount = exports.CollaboratorGroup = exports.AuthorGroup = void 0;
7
7
 
8
8
  var _utils = require("./utils");
9
9
 
@@ -115,12 +115,19 @@ var ReactCount = (0, _utils.createElement)(_constants.ElementName.ReactCount);
115
115
 
116
116
  exports.ReactCount = ReactCount;
117
117
  var Snippet = (0, _utils.createElement)(_constants.ElementName.Snippet);
118
+ /**
119
+ * Creates a SourceBranch Text element using the data from sourceBranch in the Flexible UI Context.
120
+ * @see Text
121
+ */
122
+
123
+ exports.Snippet = Snippet;
124
+ var SourceBranch = (0, _utils.createElement)(_constants.ElementName.SourceBranch);
118
125
  /**
119
126
  * Creates a State Lozenge element using the data from State in the Flexible UI Context.
120
127
  * @see Lozenge
121
128
  */
122
129
 
123
- exports.Snippet = Snippet;
130
+ exports.SourceBranch = SourceBranch;
124
131
  var State = (0, _utils.createElement)(_constants.ElementName.State);
125
132
  /**
126
133
  * Creates a SubscriberCount Badge element using the data from SubscriberCount in the Flexible UI Context.
@@ -129,13 +136,20 @@ var State = (0, _utils.createElement)(_constants.ElementName.State);
129
136
 
130
137
  exports.State = State;
131
138
  var SubscriberCount = (0, _utils.createElement)(_constants.ElementName.SubscriberCount);
139
+ /**
140
+ * Creates a TargetBranch Text element using the data from targetBranch in the Flexible UI Context.
141
+ * @see Text
142
+ */
143
+
144
+ exports.SubscriberCount = SubscriberCount;
145
+ var TargetBranch = (0, _utils.createElement)(_constants.ElementName.TargetBranch);
132
146
  /**
133
147
  * Creates a Title Link element using the data from Title in the Flexible UI Context.
134
148
  * This represents the main link text within the Smart Link.
135
149
  * @see Link
136
150
  */
137
151
 
138
- exports.SubscriberCount = SubscriberCount;
152
+ exports.TargetBranch = TargetBranch;
139
153
  var Title = (0, _utils.createElement)(_constants.ElementName.Title);
140
154
  /**
141
155
  * Creates a ViewCount Badge element using the data from ViewCount in the Flexible UI Context.
@@ -82,6 +82,7 @@ var Link = function Link(_ref) {
82
82
  var hideTooltip = _ref.hideTooltip,
83
83
  _ref$maxLines = _ref.maxLines,
84
84
  maxLines = _ref$maxLines === void 0 ? DEFAULT_MAX_LINES : _ref$maxLines,
85
+ name = _ref.name,
85
86
  overrideCss = _ref.overrideCss,
86
87
  _ref$size = _ref.size,
87
88
  size = _ref$size === void 0 ? _constants.SmartLinkSize.Medium : _ref$size,
@@ -98,6 +99,7 @@ var Link = function Link(_ref) {
98
99
  }, [text]);
99
100
  var anchor = (0, _core.jsx)("a", {
100
101
  css: [getAnchorStyles(size, theme, getMaxLines(maxLines), hasSpace), overrideCss],
102
+ "data-smart-element": name,
101
103
  "data-smart-element-link": true,
102
104
  "data-testid": testId,
103
105
  onClick: onClick,
@@ -28,6 +28,7 @@ var styles = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTem
28
28
  var Lozenge = function Lozenge(_ref) {
29
29
  var _ref$appearance = _ref.appearance,
30
30
  appearance = _ref$appearance === void 0 ? 'default' : _ref$appearance,
31
+ name = _ref.name,
31
32
  overrideCss = _ref.overrideCss,
32
33
  text = _ref.text,
33
34
  _ref$testId = _ref.testId,
@@ -40,6 +41,7 @@ var Lozenge = function Lozenge(_ref) {
40
41
  return (0, _core.jsx)("span", {
41
42
  css: [styles, overrideCss],
42
43
  "data-fit-to-content": true,
44
+ "data-smart-element": name,
43
45
  "data-smart-element-lozenge": true,
44
46
  "data-testid": testId
45
47
  }, (0, _core.jsx)(_lozenge.default, {
@@ -36,7 +36,8 @@ var styles = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTem
36
36
  */
37
37
 
38
38
  var Media = function Media(_ref) {
39
- var overrideCss = _ref.overrideCss,
39
+ var name = _ref.name,
40
+ overrideCss = _ref.overrideCss,
40
41
  _ref$testId = _ref.testId,
41
42
  testId = _ref$testId === void 0 ? 'smart-element-media' : _ref$testId,
42
43
  type = _ref.type,
@@ -48,6 +49,7 @@ var Media = function Media(_ref) {
48
49
 
49
50
  return (0, _core.jsx)("div", {
50
51
  css: [styles, overrideCss],
52
+ "data-smart-element": name,
51
53
  "data-smart-element-media": true,
52
54
  "data-testid": testId
53
55
  }, (0, _core.jsx)(_imageIcon.default, {
@@ -35,6 +35,7 @@ var Text = function Text(_ref) {
35
35
  _ref$maxLines = _ref.maxLines,
36
36
  maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
37
37
  message = _ref.message,
38
+ name = _ref.name,
38
39
  overrideCss = _ref.overrideCss,
39
40
  _ref$testId = _ref.testId,
40
41
  testId = _ref$testId === void 0 ? 'smart-element-text' : _ref$testId;
@@ -46,6 +47,7 @@ var Text = function Text(_ref) {
46
47
  return (0, _core.jsx)("span", {
47
48
  css: [getStyles(maxLines), overrideCss],
48
49
  "data-separator": true,
50
+ "data-smart-element": name,
49
51
  "data-smart-element-text": true,
50
52
  "data-testid": testId
51
53
  }, (0, _utils.getFormattedMessage)(message) || content);
@@ -76,10 +76,19 @@ var elementMappings = (_elementMappings = {}, (0, _defineProperty2.default)(_ele
76
76
  }
77
77
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.CreatedBy, {
78
78
  component: _text.default
79
+ }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.CreatedOn, {
80
+ component: _dateTime.default
81
+ }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.LatestCommit, {
82
+ component: _badge.default,
83
+ props: {
84
+ icon: _constants.IconType.Commit
85
+ }
79
86
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.LinkIcon, {
80
87
  component: _icon.default
81
88
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.ModifiedBy, {
82
89
  component: _text.default
90
+ }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.ModifiedOn, {
91
+ component: _dateTime.default
83
92
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.Preview, {
84
93
  component: _media.default
85
94
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.Priority, {
@@ -89,12 +98,16 @@ var elementMappings = (_elementMappings = {}, (0, _defineProperty2.default)(_ele
89
98
  props: {
90
99
  icon: _constants.IconType.ProgrammingLanguage
91
100
  }
101
+ }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.Provider, {
102
+ component: _badge.default
92
103
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.Snippet, {
93
104
  component: _text.default,
94
105
  props: {
95
106
  maxLines: SNIPPET_DEFAULT_MAX_LINES,
96
107
  overrideCss: (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n "])), _token.tokens.snippet)
97
108
  }
109
+ }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.SourceBranch, {
110
+ component: _text.default
98
111
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.State, {
99
112
  component: _lozenge.default
100
113
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.SubscriberCount, {
@@ -102,19 +115,10 @@ var elementMappings = (_elementMappings = {}, (0, _defineProperty2.default)(_ele
102
115
  props: {
103
116
  icon: _constants.IconType.Subscriber
104
117
  }
118
+ }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.TargetBranch, {
119
+ component: _text.default
105
120
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.Title, {
106
121
  component: _link.default
107
- }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.CreatedOn, {
108
- component: _dateTime.default
109
- }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.ModifiedOn, {
110
- component: _dateTime.default
111
- }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.Provider, {
112
- component: _badge.default
113
- }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.LatestCommit, {
114
- component: _badge.default,
115
- props: {
116
- icon: _constants.IconType.Commit
117
- }
118
122
  }), _elementMappings);
119
123
 
120
124
  var getContextKey = function getContextKey(name) {
@@ -157,6 +161,8 @@ var getData = function getData(elementName, contextKey, context) {
157
161
  return toDateTimeProps('modified', context.modifiedOn);
158
162
 
159
163
  case _constants.ElementName.Snippet:
164
+ case _constants.ElementName.SourceBranch:
165
+ case _constants.ElementName.TargetBranch:
160
166
  return toTextProps(data);
161
167
 
162
168
  case _constants.ElementName.Title:
@@ -224,7 +230,9 @@ var createElement = function createElement(name) {
224
230
  return function (overrides) {
225
231
  var context = (0, _react.useContext)(_flexibleUiContext.FlexibleUiContext);
226
232
  var data = getData(name, contextKey, context);
227
- return data ? /*#__PURE__*/_react.default.createElement(BaseElement, (0, _extends2.default)({}, props, data, overrides)) : null;
233
+ return data ? /*#__PURE__*/_react.default.createElement(BaseElement, (0, _extends2.default)({}, props, data, overrides, {
234
+ name: name
235
+ })) : null;
228
236
  };
229
237
  };
230
238
 
@@ -31,6 +31,8 @@ var _helpers = require("../../../state/helpers");
31
31
 
32
32
  var _styled = require("../styled");
33
33
 
34
+ var _extractType = require("../../../extractors/common/primitives/extractType");
35
+
34
36
  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); }
35
37
 
36
38
  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; }
@@ -99,13 +101,16 @@ var HoverCardContent = function HoverCardContent(_ref) {
99
101
  }, [url, analytics]);
100
102
  var footerActions = (0, _react.useMemo)(function () {
101
103
  return toFooterActions(cardActions);
102
- }, [cardActions]); //TODO: EDM-3224 deleted simulated and use real JsonLd
104
+ }, [cardActions]);
105
+ var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
106
+ var types = data ? (0, _extractType.extractType)(data) : undefined; //TODO: EDM-3224 deleted simulated and use real JsonLd
103
107
 
104
- var _extractMetadata = (0, _extractMetadata2.extractMetadata)((0, _utils.getSimulatedMetadata)(extensionKey)),
108
+ var _extractMetadata = (0, _extractMetadata2.extractMetadata)((0, _utils.getSimulatedMetadata)(extensionKey, types)),
105
109
  primary = _extractMetadata.primary,
106
- secondary = _extractMetadata.secondary;
110
+ secondary = _extractMetadata.secondary,
111
+ subtitle = _extractMetadata.subtitle;
107
112
 
108
- var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
113
+ var titleMaxLines = subtitle && subtitle.length > 0 ? 1 : 2;
109
114
  var body = data && (0, _extractPreview.default)(data) ? /*#__PURE__*/_react.default.createElement(_blocks.PreviewBlock, null) : /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, null);
110
115
  return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, {
111
116
  cardState: cardState,
@@ -116,9 +121,11 @@ var HoverCardContent = function HoverCardContent(_ref) {
116
121
  url: url
117
122
  }, /*#__PURE__*/_react.default.createElement(_blocks.TitleBlock, {
118
123
  actions: titleActions,
124
+ maxLines: titleMaxLines,
119
125
  overrideCss: _styled.titleBlockCss,
120
126
  size: _constants.SmartLinkSize.Large,
121
- position: _constants.SmartLinkPosition.Center
127
+ position: _constants.SmartLinkPosition.Center,
128
+ subtitle: subtitle
122
129
  }), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
123
130
  primary: primary,
124
131
  secondary: secondary,
@@ -127,7 +127,7 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
127
127
  onMouseLeave: initHideCard
128
128
  }), children);
129
129
  },
130
- zIndex: 501 // Temporary fix for Confluence inline comment on editor mod has z-index of 500
130
+ zIndex: 511 // Temporary fix for Confluence inline comment on editor mod has z-index of 500, Jira issue view has z-index of 510
131
131
 
132
132
  });
133
133
  };
@@ -13,13 +13,16 @@ var _core = require("@emotion/core");
13
13
 
14
14
  var _index = require("../../index");
15
15
 
16
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
16
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
17
17
 
18
- var HoverCardContainer = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background: none;\n border-width: 0;\n box-sizing: border-box;\n width: 24rem;\n padding: 1rem;\n\n .", " {\n display: none;\n }\n"])), _index.loadingPlaceholderClassName);
18
+ var blockGap = '0.5rem';
19
+ var elementGap = '0.5rem';
20
+ var separatorCss = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n [data-separator] + [data-separator]:before {\n margin-right: ", ";\n }\n"])), elementGap);
21
+ var HoverCardContainer = (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n background: none;\n border-width: 0;\n box-sizing: border-box;\n width: 24rem;\n padding: 1rem;\n\n .", " {\n display: none;\n }\n"])), _index.loadingPlaceholderClassName);
19
22
  exports.HoverCardContainer = HoverCardContainer;
20
- var titleBlockCss = (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n gap: 0.5rem;\n"])));
23
+ var titleBlockCss = (0, _core.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\n /* subtitle element group */\n > [data-smart-element-group] {\n > span {\n margin-right: ", ";\n }\n }\n }\n"])), blockGap, separatorCss, elementGap);
21
24
  exports.titleBlockCss = titleBlockCss;
22
- var metadataBlockCss = (0, _core.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n gap: 0px;\n\n /* primary element group */\n [data-smart-element-group]:first-of-type {\n flex-grow: 7;\n /* horizontal spacing between elements in group */\n > span {\n margin-right: 0.5rem;\n }\n }\n /* secondary element group */\n [data-smart-element-group]:last-of-type {\n flex-grow: 3;\n /* horizontal spacing between elements in group */\n > span {\n margin-left: 0.5rem;\n }\n }\n"])));
25
+ var metadataBlockCss = (0, _core.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n gap: 0px;\n\n /* primary element group */\n [data-smart-element-group]:nth-of-type(1) {\n flex-grow: 7;\n\n // a separator between text-based element\n ", "\n\n /* horizontal spacing between elements in group */\n > span {\n margin-right: ", ";\n }\n }\n /* secondary element group */\n [data-smart-element-group]:nth-of-type(2) {\n flex-grow: 3;\n /* horizontal spacing between elements in group */\n > span {\n margin-left: ", ";\n }\n }\n"])), separatorCss, elementGap, elementGap);
23
26
  exports.metadataBlockCss = metadataBlockCss;
24
- var footerBlockCss = (0, _core.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n padding-top: 0.25rem;\n"])));
27
+ var footerBlockCss = (0, _core.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n padding-top: 0.25rem;\n"])));
25
28
  exports.footerBlockCss = footerBlockCss;
@@ -12,13 +12,35 @@ exports.HOVER_CARD_ANALYTICS_DISPLAY = HOVER_CARD_ANALYTICS_DISPLAY;
12
12
 
13
13
  var getSimulatedMetadata = function getSimulatedMetadata() {
14
14
  var extensionKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
15
+ var types = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
15
16
 
16
17
  switch (extensionKey) {
18
+ case 'bitbucket-object-provider':
19
+ case 'native-bitbucket-object-provider':
20
+ if (types.includes('atlassian:SourceCodePullRequest')) {
21
+ return {
22
+ metadata: {
23
+ primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.ModifiedOn, _constants.ElementName.SubscriberCount, _constants.ElementName.State],
24
+ secondary: [],
25
+ subtitle: [_constants.ElementName.SourceBranch, _constants.ElementName.TargetBranch]
26
+ }
27
+ };
28
+ }
29
+
30
+ return {
31
+ metadata: {
32
+ primary: [_constants.ElementName.ModifiedOn, _constants.ElementName.CreatedBy],
33
+ secondary: [],
34
+ subtitle: []
35
+ }
36
+ };
37
+
17
38
  case 'confluence-object-provider':
18
39
  return {
19
40
  metadata: {
20
41
  primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.CreatedBy],
21
- secondary: [_constants.ElementName.CommentCount, _constants.ElementName.ReactCount]
42
+ secondary: [_constants.ElementName.CommentCount, _constants.ElementName.ReactCount],
43
+ subtitle: []
22
44
  }
23
45
  };
24
46
 
@@ -26,7 +48,8 @@ var getSimulatedMetadata = function getSimulatedMetadata() {
26
48
  return {
27
49
  metadata: {
28
50
  primary: [_constants.ElementName.AuthorGroup, _constants.ElementName.State, _constants.ElementName.Priority],
29
- secondary: []
51
+ secondary: [],
52
+ subtitle: []
30
53
  }
31
54
  };
32
55
 
@@ -34,7 +57,8 @@ var getSimulatedMetadata = function getSimulatedMetadata() {
34
57
  return {
35
58
  metadata: {
36
59
  primary: [_constants.ElementName.ModifiedOn, _constants.ElementName.CreatedBy],
37
- secondary: []
60
+ secondary: [],
61
+ subtitle: []
38
62
  }
39
63
  };
40
64
  }
@@ -83,7 +83,7 @@ export let SmartLinkWidth;
83
83
  * When adding an element...
84
84
  * 1) Create base element if it doesn't already exist.
85
85
  * Base element are inside src/view/FlexibleCard/components/elements.
86
- * E.g. Badge,DateTime, Icon, Lozenge, etc.
86
+ * E.g. Badge, DateTime, Icon, Lozenge, etc.
87
87
  * 2) Update FlexibleUiContext with the new prop for data representing
88
88
  * the element, preferably with the same name as the element itself.
89
89
  * (src/state/flexible-ui-context/types.ts)
@@ -120,8 +120,10 @@ export let ElementName;
120
120
  ElementName["Provider"] = "Provider";
121
121
  ElementName["ReactCount"] = "ReactCount";
122
122
  ElementName["Snippet"] = "Snippet";
123
+ ElementName["SourceBranch"] = "SourceBranch";
123
124
  ElementName["State"] = "State";
124
125
  ElementName["SubscriberCount"] = "SubscriberCount";
126
+ ElementName["TargetBranch"] = "TargetBranch";
125
127
  ElementName["Title"] = "Title";
126
128
  ElementName["ViewCount"] = "ViewCount";
127
129
  ElementName["VoteCount"] = "VoteCount";