@atlaskit/smart-card 40.10.4 → 40.10.6
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 +20 -0
- package/analytics.spec.yaml +4 -0
- package/dist/cjs/extractors/action/extract-invoke-copy-link-action.js +1 -3
- package/dist/cjs/extractors/action/extract-invoke-download-action.js +1 -3
- package/dist/cjs/extractors/action/extract-invoke-preview-action.js +5 -7
- package/dist/cjs/extractors/common/primitives/extractSummary.js +3 -6
- package/dist/cjs/extractors/embed/index.js +1 -14
- package/dist/cjs/extractors/flexible/actions/extract-view-related-links-action.js +1 -2
- package/dist/cjs/extractors/flexible/extract-preview.js +0 -5
- package/dist/cjs/state/helpers.js +22 -49
- package/dist/cjs/utils/analytics/analytics.js +1 -1
- package/dist/cjs/view/BlockCard/views/utils/index.js +21 -0
- package/dist/cjs/view/CardWithUrl/component.js +3 -2
- package/dist/cjs/view/LinkUrl/index.js +1 -1
- package/dist/es2019/extractors/action/extract-invoke-copy-link-action.js +2 -4
- package/dist/es2019/extractors/action/extract-invoke-download-action.js +1 -3
- package/dist/es2019/extractors/action/extract-invoke-preview-action.js +6 -8
- package/dist/es2019/extractors/common/primitives/extractSummary.js +3 -7
- package/dist/es2019/extractors/embed/index.js +2 -12
- package/dist/es2019/extractors/flexible/actions/extract-view-related-links-action.js +2 -3
- package/dist/es2019/extractors/flexible/extract-preview.js +1 -6
- package/dist/es2019/state/helpers.js +22 -49
- package/dist/es2019/utils/analytics/analytics.js +1 -1
- package/dist/es2019/view/BlockCard/views/utils/index.js +21 -0
- package/dist/es2019/view/CardWithUrl/component.js +3 -2
- package/dist/es2019/view/LinkUrl/index.js +1 -1
- package/dist/esm/extractors/action/extract-invoke-copy-link-action.js +2 -4
- package/dist/esm/extractors/action/extract-invoke-download-action.js +1 -3
- package/dist/esm/extractors/action/extract-invoke-preview-action.js +6 -8
- package/dist/esm/extractors/common/primitives/extractSummary.js +3 -7
- package/dist/esm/extractors/embed/index.js +2 -14
- package/dist/esm/extractors/flexible/actions/extract-view-related-links-action.js +2 -3
- package/dist/esm/extractors/flexible/extract-preview.js +1 -6
- package/dist/esm/state/helpers.js +22 -49
- package/dist/esm/utils/analytics/analytics.js +1 -1
- package/dist/esm/view/BlockCard/views/utils/index.js +21 -0
- package/dist/esm/view/CardWithUrl/component.js +3 -2
- package/dist/esm/view/LinkUrl/index.js +1 -1
- package/dist/types/common/analytics/generated/analytics.types.d.ts +2 -1
- package/dist/types-ts4.5/common/analytics/generated/analytics.types.d.ts +2 -1
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 40.10.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`1d8918dd67a21`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/1d8918dd67a21) -
|
|
8
|
+
Update smartLinkClickedSmartLinkClickAnalyticsWorkflowsAttributesType to include clickedAt field
|
|
9
|
+
in yaml file and codegen'd file as well as update component to pass it along as
|
|
10
|
+
Date.now().toString()
|
|
11
|
+
|
|
12
|
+
## 40.10.5
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- [`2a46c52a9d189`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/2a46c52a9d189) -
|
|
17
|
+
NAVX-1307 cleaning up smart-links-noun-support
|
|
18
|
+
- [`f72b5d8c897b8`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/f72b5d8c897b8) -
|
|
19
|
+
[ux] Add ownedBy support for passionfruit-object-provider smart-link resolver under
|
|
20
|
+
`passionfruit_ask_smart_links_enabled` feature-gate
|
|
21
|
+
- Updated dependencies
|
|
22
|
+
|
|
3
23
|
## 40.10.4
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/analytics.spec.yaml
CHANGED
|
@@ -771,3 +771,7 @@ events:
|
|
|
771
771
|
A null-capable field representing the Confluence content ID, Confluence page ID, or Jira
|
|
772
772
|
issue key. This can be null if it is a value for an unsupported 1P provider (eg,
|
|
773
773
|
Bitbucket, Loom), and will be prefixed by an identifier based on the source product.
|
|
774
|
+
clickedAt:
|
|
775
|
+
required: true
|
|
776
|
+
type: string
|
|
777
|
+
description: The timestamp when the event was clicked
|
|
@@ -8,7 +8,6 @@ exports.extractInvokeCopyLinkAction = void 0;
|
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _linkExtractors = require("@atlaskit/link-extractors");
|
|
11
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
12
11
|
var _index = require("../../index");
|
|
13
12
|
var _helpers = require("../../state/helpers");
|
|
14
13
|
var _canShowAction = require("../../utils/actions/can-show-action");
|
|
@@ -20,8 +19,7 @@ var extractInvokeCopyLinkAction = exports.extractInvokeCopyLinkAction = function
|
|
|
20
19
|
if (!(0, _canShowAction.canShowAction)(_index.CardAction.CopyLinkAction, actionOptions)) {
|
|
21
20
|
return;
|
|
22
21
|
}
|
|
23
|
-
var
|
|
24
|
-
var url = (0, _platformFeatureFlags.fg)('smart_links_noun_support') ? (0, _linkExtractors.extractSmartLinkUrl)(response) : (0, _linkExtractors.extractLink)(data);
|
|
22
|
+
var url = (0, _linkExtractors.extractSmartLinkUrl)(response);
|
|
25
23
|
if (!url) {
|
|
26
24
|
return;
|
|
27
25
|
}
|
|
@@ -8,13 +8,11 @@ exports.extractInvokeDownloadAction = void 0;
|
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _linkExtractors = require("@atlaskit/link-extractors");
|
|
11
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
12
11
|
var _index = require("../../index");
|
|
13
12
|
var _helpers = require("../../state/helpers");
|
|
14
13
|
var _utils = require("../../utils");
|
|
15
14
|
var _canShowAction = require("../../utils/actions/can-show-action");
|
|
16
15
|
var _extractActions = require("../common/actions/extractActions");
|
|
17
|
-
var _extractDownloadUrl = require("../common/download/extractDownloadUrl");
|
|
18
16
|
var extractInvokeDownloadAction = exports.extractInvokeDownloadAction = function extractInvokeDownloadAction(_ref) {
|
|
19
17
|
var actionOptions = _ref.actionOptions,
|
|
20
18
|
appearance = _ref.appearance,
|
|
@@ -28,7 +26,7 @@ var extractInvokeDownloadAction = exports.extractInvokeDownloadAction = function
|
|
|
28
26
|
return action['@type'] === 'DownloadAction';
|
|
29
27
|
});
|
|
30
28
|
if (downloadActionExists) {
|
|
31
|
-
var downloadUrl = (0,
|
|
29
|
+
var downloadUrl = (0, _linkExtractors.extractSmartLinkDownloadUrl)(response);
|
|
32
30
|
return {
|
|
33
31
|
actionFn: function () {
|
|
34
32
|
var _actionFn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
@@ -8,7 +8,6 @@ exports.extractInvokePreviewAction = void 0;
|
|
|
8
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
10
|
var _linkExtractors = require("@atlaskit/link-extractors");
|
|
11
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
12
11
|
var _index = require("../../index");
|
|
13
12
|
var _helpers = require("../../state/helpers");
|
|
14
13
|
var _canShowAction = require("../../utils/actions/can-show-action");
|
|
@@ -34,12 +33,11 @@ var extractInvokePreviewAction = exports.extractInvokePreviewAction = function e
|
|
|
34
33
|
var meta = response.meta;
|
|
35
34
|
var src = (_extractPreviewData = (0, _linkExtractors.extractPreview)(data, 'web')) === null || _extractPreviewData === void 0 ? void 0 : _extractPreviewData.src;
|
|
36
35
|
if (src) {
|
|
37
|
-
var url = (0, _linkExtractors.extractLink)(data);
|
|
38
36
|
var extensionKey = (0, _helpers.getExtensionKey)(response);
|
|
39
37
|
return {
|
|
40
38
|
actionFn: function () {
|
|
41
39
|
var _actionFn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
42
|
-
var _extractSmartLinkProv,
|
|
40
|
+
var _extractSmartLinkProv, _extractSmartLinkEmbe;
|
|
43
41
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
44
42
|
while (1) switch (_context.prev = _context.next) {
|
|
45
43
|
case 0:
|
|
@@ -52,12 +50,12 @@ var extractInvokePreviewAction = exports.extractInvokePreviewAction = function e
|
|
|
52
50
|
isSupportTheming: (0, _extractIsSupportTheming.extractIsSupportTheming)(meta),
|
|
53
51
|
isTrusted: (0, _extractIsTrusted.extractIsTrusted)(meta),
|
|
54
52
|
linkIcon: (0, _icon.extractLinkIcon)(response),
|
|
55
|
-
providerName: (
|
|
53
|
+
providerName: (_extractSmartLinkProv = (0, _linkExtractors.extractSmartLinkProvider)(response)) === null || _extractSmartLinkProv === void 0 ? void 0 : _extractSmartLinkProv.text,
|
|
56
54
|
onClose: onClose,
|
|
57
55
|
origin: origin,
|
|
58
|
-
src: (
|
|
59
|
-
title: (0,
|
|
60
|
-
url: (0,
|
|
56
|
+
src: (_extractSmartLinkEmbe = (0, _linkExtractors.extractSmartLinkEmbed)(response)) === null || _extractSmartLinkEmbe === void 0 ? void 0 : _extractSmartLinkEmbe.src,
|
|
57
|
+
title: (0, _linkExtractors.extractSmartLinkTitle)(response),
|
|
58
|
+
url: (0, _linkExtractors.extractSmartLinkUrl)(response)
|
|
61
59
|
}));
|
|
62
60
|
case 1:
|
|
63
61
|
case "end":
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.extractSummary = exports.extractSmartLinkSummary = void 0;
|
|
7
7
|
var _linkExtractors = require("@atlaskit/link-extractors");
|
|
8
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
9
8
|
/**
|
|
10
9
|
* Return link summary
|
|
11
10
|
*/
|
|
@@ -20,11 +19,9 @@ var extractSummary = exports.extractSummary = function extractSummary(jsonLd) {
|
|
|
20
19
|
* Return link summary
|
|
21
20
|
*/
|
|
22
21
|
var extractSmartLinkSummary = exports.extractSmartLinkSummary = function extractSmartLinkSummary(response) {
|
|
23
|
-
if ((0,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return (_extractEntity = (0, _linkExtractors.extractEntity)(response)) === null || _extractEntity === void 0 ? void 0 : _extractEntity.description;
|
|
27
|
-
}
|
|
22
|
+
if ((0, _linkExtractors.isEntityPresent)(response)) {
|
|
23
|
+
var _extractEntity;
|
|
24
|
+
return (_extractEntity = (0, _linkExtractors.extractEntity)(response)) === null || _extractEntity === void 0 ? void 0 : _extractEntity.description;
|
|
28
25
|
}
|
|
29
26
|
return (response === null || response === void 0 ? void 0 : response.data) && extractSummary(response.data);
|
|
30
27
|
};
|
|
@@ -1,27 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.extractEmbedProps = void 0;
|
|
8
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
7
|
var _linkExtractors = require("@atlaskit/link-extractors");
|
|
10
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
11
8
|
var _jsonld = require("../../utils/jsonld");
|
|
12
9
|
var _context = require("../common/context");
|
|
13
10
|
var _extractIsSupportTheming = require("../common/meta/extractIsSupportTheming");
|
|
14
11
|
var _extractIsTrusted = require("../common/meta/extractIsTrusted");
|
|
15
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
|
-
var extractEmbedPreview = function extractEmbedPreview(jsonLd, platform, iframeUrlType) {
|
|
18
|
-
var preview = (0, _linkExtractors.extractPreview)(jsonLd, platform, iframeUrlType);
|
|
19
|
-
if (preview && preview.src) {
|
|
20
|
-
return _objectSpread(_objectSpread({}, preview), {}, {
|
|
21
|
-
src: preview.src
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
12
|
var extractEmbedProps = exports.extractEmbedProps = function extractEmbedProps(response, platform, iframeUrlType) {
|
|
26
13
|
var meta = response === null || response === void 0 ? void 0 : response.meta;
|
|
27
14
|
var jsonLd = (response === null || response === void 0 ? void 0 : response.data) || (0, _jsonld.getEmptyJsonLd)();
|
|
@@ -29,7 +16,7 @@ var extractEmbedProps = exports.extractEmbedProps = function extractEmbedProps(r
|
|
|
29
16
|
link: (0, _linkExtractors.extractSmartLinkUrl)(response) || '',
|
|
30
17
|
title: (0, _linkExtractors.extractSmartLinkTitle)(response),
|
|
31
18
|
context: (0, _context.extractSmartLinkContext)(response),
|
|
32
|
-
preview: (0,
|
|
19
|
+
preview: (0, _linkExtractors.extractSmartLinkEmbed)(response, iframeUrlType),
|
|
33
20
|
isTrusted: (0, _extractIsTrusted.extractIsTrusted)(meta),
|
|
34
21
|
isSupportTheming: (0, _extractIsSupportTheming.extractIsSupportTheming)(meta),
|
|
35
22
|
type: (0, _linkExtractors.extractType)(jsonLd)
|
|
@@ -5,13 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.extractViewRelatedLinksAction = void 0;
|
|
7
7
|
var _linkExtractors = require("@atlaskit/link-extractors");
|
|
8
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
9
8
|
var extractViewRelatedLinksAction = exports.extractViewRelatedLinksAction = function extractViewRelatedLinksAction(response) {
|
|
10
9
|
var _response$meta;
|
|
11
10
|
if (!(response !== null && response !== void 0 && (_response$meta = response.meta) !== null && _response$meta !== void 0 && (_response$meta = _response$meta.supportedFeature) !== null && _response$meta !== void 0 && _response$meta.includes('RelatedLinks'))) {
|
|
12
11
|
return;
|
|
13
12
|
}
|
|
14
|
-
var ari = (0,
|
|
13
|
+
var ari = (0, _linkExtractors.extractSmartLinkAri)(response);
|
|
15
14
|
if (!ari) {
|
|
16
15
|
return;
|
|
17
16
|
}
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.extractSmartLinkPreviewImage = exports.default = void 0;
|
|
7
7
|
var _linkExtractors = require("@atlaskit/link-extractors");
|
|
8
|
-
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
9
8
|
var _constants = require("../../constants");
|
|
10
9
|
var extractPreview = function extractPreview(data) {
|
|
11
10
|
if (!data) {
|
|
@@ -29,10 +28,6 @@ var extractSmartLinkPreviewImage = exports.extractSmartLinkPreviewImage = functi
|
|
|
29
28
|
var _entity$thumbnail;
|
|
30
29
|
var entity = (0, _linkExtractors.extractEntity)(response);
|
|
31
30
|
var url = entity === null || entity === void 0 || (_entity$thumbnail = entity.thumbnail) === null || _entity$thumbnail === void 0 ? void 0 : _entity$thumbnail.externalUrl;
|
|
32
|
-
if (!url && !(0, _platformFeatureFlags.fg)('smart_links_noun_support')) {
|
|
33
|
-
var provider = (0, _linkExtractors.extractEntityProvider)(response);
|
|
34
|
-
url = provider === null || provider === void 0 ? void 0 : provider.image;
|
|
35
|
-
}
|
|
36
31
|
return url ? {
|
|
37
32
|
type: _constants.MediaType.Image,
|
|
38
33
|
url: url
|
|
@@ -50,9 +50,11 @@ var getFirstPartyIdentifier = exports.getFirstPartyIdentifier = function getFirs
|
|
|
50
50
|
var product = getProductFromWindowURL();
|
|
51
51
|
var currentURL = window.location.href;
|
|
52
52
|
if (product === 'confluence') {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
if (currentURL.includes('content.id')) {
|
|
54
|
+
var contentId = extractContentIdFromURL(currentURL);
|
|
55
|
+
if (contentId) {
|
|
56
|
+
return "ConfluenceContentId:".concat(contentId);
|
|
57
|
+
}
|
|
56
58
|
}
|
|
57
59
|
var pageId = extractPageIdFromURL(currentURL);
|
|
58
60
|
if (pageId) {
|
|
@@ -63,9 +65,8 @@ var getFirstPartyIdentifier = exports.getFirstPartyIdentifier = function getFirs
|
|
|
63
65
|
if (issueKey) {
|
|
64
66
|
return "JiraIssueKey:".concat(issueKey);
|
|
65
67
|
}
|
|
66
|
-
} else {
|
|
67
|
-
return undefined;
|
|
68
68
|
}
|
|
69
|
+
return undefined;
|
|
69
70
|
};
|
|
70
71
|
var getObjectName = exports.getObjectName = function getObjectName(details) {
|
|
71
72
|
return (details === null || details === void 0 ? void 0 : details.data) && 'name' in details.data && details.data.name || undefined;
|
|
@@ -125,40 +126,34 @@ var hasAuthScopeOverrides = exports.hasAuthScopeOverrides = function hasAuthScop
|
|
|
125
126
|
// Helper function to extract page ID from standard Confluence page URLs
|
|
126
127
|
var extractPageIdFromURL = function extractPageIdFromURL(url) {
|
|
127
128
|
try {
|
|
128
|
-
var urlObj = new URL(url);
|
|
129
|
-
|
|
130
129
|
// Following this pattern for confluence URL -> /wiki/spaces/{space}/pages/{pageId}/{title}
|
|
131
|
-
var pagesMatch =
|
|
132
|
-
if (pagesMatch && pagesMatch[
|
|
133
|
-
return pagesMatch[
|
|
130
|
+
var pagesMatch = url.match(/(?!pages)(\d+)/);
|
|
131
|
+
if (pagesMatch && pagesMatch[0]) {
|
|
132
|
+
return pagesMatch[0];
|
|
134
133
|
}
|
|
135
134
|
|
|
136
135
|
// Following this pattern for confluence URL -> /wiki/pages/viewpage.action?pageId={pageId}
|
|
137
|
-
var pageIdParam =
|
|
138
|
-
if (pageIdParam) {
|
|
139
|
-
return pageIdParam;
|
|
136
|
+
var pageIdParam = url.match(/(?!pageId=)(\d+)/);
|
|
137
|
+
if (pageIdParam && pageIdParam[0]) {
|
|
138
|
+
return pageIdParam[0];
|
|
140
139
|
}
|
|
141
140
|
|
|
142
141
|
// Following this pattern for confluence URL -> /wiki/display/{space}/{pageId}
|
|
143
|
-
var displayMatch =
|
|
144
|
-
if (displayMatch && displayMatch[
|
|
145
|
-
return displayMatch[
|
|
142
|
+
var displayMatch = url.match(/(?!display\/)(\d+)/);
|
|
143
|
+
if (displayMatch && displayMatch[0]) {
|
|
144
|
+
return displayMatch[0];
|
|
146
145
|
}
|
|
147
146
|
} catch (_unused) {
|
|
148
147
|
return undefined;
|
|
149
148
|
}
|
|
150
149
|
return undefined;
|
|
151
150
|
};
|
|
152
|
-
|
|
153
|
-
// Helper function to extract content ID from app connector URLs
|
|
154
151
|
var extractContentIdFromURL = function extractContentIdFromURL(url) {
|
|
155
152
|
try {
|
|
156
|
-
var
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
if (contentId) {
|
|
161
|
-
return contentId;
|
|
153
|
+
var contentId = url.match(/content\.id=(\d+)/);
|
|
154
|
+
if (contentId && contentId[1]) {
|
|
155
|
+
// contentId[1] contains just the number
|
|
156
|
+
return contentId[1];
|
|
162
157
|
}
|
|
163
158
|
} catch (_unused2) {
|
|
164
159
|
return undefined;
|
|
@@ -167,31 +162,9 @@ var extractContentIdFromURL = function extractContentIdFromURL(url) {
|
|
|
167
162
|
};
|
|
168
163
|
var extractJiraIssueIdFromURL = function extractJiraIssueIdFromURL(url) {
|
|
169
164
|
try {
|
|
170
|
-
var
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
// Example: https://product-fabric.atlassian.net/browse/AI3W-1064
|
|
174
|
-
var browseMatch = urlObj.pathname.match(/\/browse\/([A-Z]+-\d+)/);
|
|
175
|
-
if (browseMatch && browseMatch[1]) {
|
|
176
|
-
return browseMatch[1];
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
// Following this pattern for jira URL -> /jira/browse/{issueKey} (for some installations)
|
|
180
|
-
var jiraBrowseMatch = urlObj.pathname.match(/\/jira\/browse\/([A-Z]+-\d+)/);
|
|
181
|
-
if (jiraBrowseMatch && jiraBrowseMatch[1]) {
|
|
182
|
-
return jiraBrowseMatch[1];
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
// Following this pattern for jira URL -> Query parameter ?selectedIssue={issueKey}
|
|
186
|
-
var selectedIssue = urlObj.searchParams.get('selectedIssue');
|
|
187
|
-
if (selectedIssue && /^[A-Z]+-\d+$/.test(selectedIssue)) {
|
|
188
|
-
return selectedIssue;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
// Following this pattern for jira URL -> Query parameter ?issueKey={issueKey}
|
|
192
|
-
var issueKeyParam = urlObj.searchParams.get('issueKey');
|
|
193
|
-
if (issueKeyParam && /^[A-Z]+-\d+$/.test(issueKeyParam)) {
|
|
194
|
-
return issueKeyParam;
|
|
165
|
+
var browseMatch = url.match(/[A-Z0-9]+-\d+/);
|
|
166
|
+
if (browseMatch && browseMatch[0]) {
|
|
167
|
+
return browseMatch[0];
|
|
195
168
|
}
|
|
196
169
|
} catch (_unused3) {
|
|
197
170
|
return undefined;
|
|
@@ -11,7 +11,7 @@ var ANALYTICS_CHANNEL = exports.ANALYTICS_CHANNEL = 'media';
|
|
|
11
11
|
var context = exports.context = {
|
|
12
12
|
componentName: 'smart-cards',
|
|
13
13
|
packageName: "@atlaskit/smart-card",
|
|
14
|
-
packageVersion: "40.10.
|
|
14
|
+
packageVersion: "40.10.5"
|
|
15
15
|
};
|
|
16
16
|
var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
17
17
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.titleBlockOptions = exports.getSimulatedBetterMetadata = exports.PreviewBlockOptions = exports.FlexibleCardUiOptions = void 0;
|
|
7
|
+
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
7
8
|
var _constants = require("../../../../constants");
|
|
8
9
|
var _utils = require("../../../../extractors/flexible/utils");
|
|
9
10
|
var _helpers = require("../../../../state/helpers");
|
|
@@ -73,6 +74,26 @@ var getSimulatedBetterMetadata = exports.getSimulatedBetterMetadata = function g
|
|
|
73
74
|
name: _constants.ElementName.AppliedToComponentsCount
|
|
74
75
|
}].concat(baseBottomMetaData)
|
|
75
76
|
};
|
|
77
|
+
case 'passionfruit-object-provider':
|
|
78
|
+
if ((0, _platformFeatureFlags.fg)('passionfruit_ask_smart_links_enabled')) {
|
|
79
|
+
return {
|
|
80
|
+
titleMetadata: defaultTitleMetadata,
|
|
81
|
+
topMetadata: (0, _utils.extractOwnedBy)(data) ? [{
|
|
82
|
+
name: _constants.ElementName.OwnedByGroup
|
|
83
|
+
}, {
|
|
84
|
+
name: _constants.ElementName.OwnedBy
|
|
85
|
+
}].concat(baseTopMetadata) : defaultTopMetadata,
|
|
86
|
+
bottomMetadata: [{
|
|
87
|
+
name: _constants.ElementName.AppliedToComponentsCount
|
|
88
|
+
}].concat(baseBottomMetaData)
|
|
89
|
+
};
|
|
90
|
+
} else {
|
|
91
|
+
return {
|
|
92
|
+
titleMetadata: defaultTitleMetadata,
|
|
93
|
+
topMetadata: defaultTopMetadata,
|
|
94
|
+
bottomMetadata: defaultBottomMetadata
|
|
95
|
+
};
|
|
96
|
+
}
|
|
76
97
|
case 'confluence-object-provider':
|
|
77
98
|
return {
|
|
78
99
|
titleMetadata: defaultTitleMetadata,
|
|
@@ -102,10 +102,11 @@ function Component(_ref) {
|
|
|
102
102
|
action: 'clicked',
|
|
103
103
|
actionSubject: 'smartLink',
|
|
104
104
|
actionSubjectId: 'smartlinkClickAnalyticsWorkflows',
|
|
105
|
-
eventType: '
|
|
105
|
+
eventType: 'screen',
|
|
106
106
|
attributes: {
|
|
107
107
|
eventName: 'smartLinkClickAnalyticsThirdPartyWorkflows',
|
|
108
|
-
firstPartyIdentifier: firstPartyIdentifier
|
|
108
|
+
firstPartyIdentifier: firstPartyIdentifier,
|
|
109
|
+
clickedAt: Date.now().toString()
|
|
109
110
|
},
|
|
110
111
|
nonPrivacySafeAttributes: {
|
|
111
112
|
thirdPartyARI: thirdPartyARI
|
|
@@ -19,7 +19,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId", "isLink
|
|
|
19
19
|
_excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
|
|
20
20
|
var PACKAGE_DATA = {
|
|
21
21
|
packageName: "@atlaskit/smart-card",
|
|
22
|
-
packageVersion: "40.10.
|
|
22
|
+
packageVersion: "40.10.5",
|
|
23
23
|
componentName: 'linkUrl'
|
|
24
24
|
};
|
|
25
25
|
var Anchor = (0, _click.withLinkClickedEvent)('a');
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
|
+
import { extractSmartLinkUrl } from '@atlaskit/link-extractors';
|
|
3
2
|
import { ActionName, CardAction } from '../../index';
|
|
4
3
|
import { getDefinitionId, getExtensionKey, getResourceType } from '../../state/helpers';
|
|
5
4
|
import { canShowAction } from '../../utils/actions/can-show-action';
|
|
@@ -12,8 +11,7 @@ export const extractInvokeCopyLinkAction = ({
|
|
|
12
11
|
if (!canShowAction(CardAction.CopyLinkAction, actionOptions)) {
|
|
13
12
|
return;
|
|
14
13
|
}
|
|
15
|
-
const
|
|
16
|
-
const url = fg('smart_links_noun_support') ? extractSmartLinkUrl(response) : extractLink(data);
|
|
14
|
+
const url = extractSmartLinkUrl(response);
|
|
17
15
|
if (!url) {
|
|
18
16
|
return;
|
|
19
17
|
}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { extractSmartLinkDownloadUrl } from '@atlaskit/link-extractors';
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
2
|
import { ActionName, CardAction } from '../../index';
|
|
4
3
|
import { getDefinitionId, getExtensionKey, getResourceType } from '../../state/helpers';
|
|
5
4
|
import { downloadUrl as download } from '../../utils';
|
|
6
5
|
import { canShowAction } from '../../utils/actions/can-show-action';
|
|
7
6
|
import { getActionsFromJsonLd } from '../common/actions/extractActions';
|
|
8
|
-
import { extractDownloadUrl } from '../common/download/extractDownloadUrl';
|
|
9
7
|
export const extractInvokeDownloadAction = ({
|
|
10
8
|
actionOptions,
|
|
11
9
|
appearance,
|
|
@@ -18,7 +16,7 @@ export const extractInvokeDownloadAction = ({
|
|
|
18
16
|
const data = response.data;
|
|
19
17
|
const downloadActionExists = getActionsFromJsonLd(data).find(action => action['@type'] === 'DownloadAction');
|
|
20
18
|
if (downloadActionExists) {
|
|
21
|
-
const downloadUrl =
|
|
19
|
+
const downloadUrl = extractSmartLinkDownloadUrl(response);
|
|
22
20
|
return {
|
|
23
21
|
actionFn: async () => download(downloadUrl),
|
|
24
22
|
actionSubjectId: 'downloadDocument',
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
|
+
import { extractPreview as extractPreviewData, extractSmartLinkEmbed, extractSmartLinkProvider, extractSmartLinkTitle, extractSmartLinkUrl } from '@atlaskit/link-extractors';
|
|
3
2
|
import { ActionName, CardAction } from '../../index';
|
|
4
3
|
import { getExtensionKey } from '../../state/helpers';
|
|
5
4
|
import { canShowAction } from '../../utils/actions/can-show-action';
|
|
@@ -27,11 +26,10 @@ export const extractInvokePreviewAction = param => {
|
|
|
27
26
|
const meta = response.meta;
|
|
28
27
|
const src = (_extractPreviewData = extractPreviewData(data, 'web')) === null || _extractPreviewData === void 0 ? void 0 : _extractPreviewData.src;
|
|
29
28
|
if (src) {
|
|
30
|
-
const url = extractLink(data);
|
|
31
29
|
const extensionKey = getExtensionKey(response);
|
|
32
30
|
return {
|
|
33
31
|
actionFn: async () => {
|
|
34
|
-
var _extractSmartLinkProv,
|
|
32
|
+
var _extractSmartLinkProv, _extractSmartLinkEmbe;
|
|
35
33
|
return openEmbedModal({
|
|
36
34
|
fireEvent,
|
|
37
35
|
extensionKey,
|
|
@@ -41,12 +39,12 @@ export const extractInvokePreviewAction = param => {
|
|
|
41
39
|
isSupportTheming: extractIsSupportTheming(meta),
|
|
42
40
|
isTrusted: extractIsTrusted(meta),
|
|
43
41
|
linkIcon: extractLinkIcon(response),
|
|
44
|
-
providerName:
|
|
42
|
+
providerName: (_extractSmartLinkProv = extractSmartLinkProvider(response)) === null || _extractSmartLinkProv === void 0 ? void 0 : _extractSmartLinkProv.text,
|
|
45
43
|
onClose,
|
|
46
44
|
origin,
|
|
47
|
-
src:
|
|
48
|
-
title:
|
|
49
|
-
url:
|
|
45
|
+
src: (_extractSmartLinkEmbe = extractSmartLinkEmbed(response)) === null || _extractSmartLinkEmbe === void 0 ? void 0 : _extractSmartLinkEmbe.src,
|
|
46
|
+
title: extractSmartLinkTitle(response),
|
|
47
|
+
url: extractSmartLinkUrl(response)
|
|
50
48
|
});
|
|
51
49
|
},
|
|
52
50
|
actionSubjectId: 'invokePreviewScreen',
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { extractEntity, isEntityPresent } from '@atlaskit/link-extractors';
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
|
-
|
|
4
2
|
/**
|
|
5
3
|
* Return link summary
|
|
6
4
|
*/
|
|
@@ -15,11 +13,9 @@ export const extractSummary = jsonLd => {
|
|
|
15
13
|
* Return link summary
|
|
16
14
|
*/
|
|
17
15
|
export const extractSmartLinkSummary = response => {
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return (_extractEntity = extractEntity(response)) === null || _extractEntity === void 0 ? void 0 : _extractEntity.description;
|
|
22
|
-
}
|
|
16
|
+
if (isEntityPresent(response)) {
|
|
17
|
+
var _extractEntity;
|
|
18
|
+
return (_extractEntity = extractEntity(response)) === null || _extractEntity === void 0 ? void 0 : _extractEntity.description;
|
|
23
19
|
}
|
|
24
20
|
return (response === null || response === void 0 ? void 0 : response.data) && extractSummary(response.data);
|
|
25
21
|
};
|
|
@@ -1,18 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
|
+
import { extractSmartLinkEmbed, extractSmartLinkTitle, extractSmartLinkUrl, extractType } from '@atlaskit/link-extractors';
|
|
3
2
|
import { getEmptyJsonLd } from '../../utils/jsonld';
|
|
4
3
|
import { extractSmartLinkContext } from '../common/context';
|
|
5
4
|
import { extractIsSupportTheming } from '../common/meta/extractIsSupportTheming';
|
|
6
5
|
import { extractIsTrusted } from '../common/meta/extractIsTrusted';
|
|
7
|
-
const extractEmbedPreview = (jsonLd, platform, iframeUrlType) => {
|
|
8
|
-
const preview = extractPreview(jsonLd, platform, iframeUrlType);
|
|
9
|
-
if (preview && preview.src) {
|
|
10
|
-
return {
|
|
11
|
-
...preview,
|
|
12
|
-
src: preview.src
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
6
|
export const extractEmbedProps = (response, platform, iframeUrlType) => {
|
|
17
7
|
const meta = response === null || response === void 0 ? void 0 : response.meta;
|
|
18
8
|
const jsonLd = (response === null || response === void 0 ? void 0 : response.data) || getEmptyJsonLd();
|
|
@@ -20,7 +10,7 @@ export const extractEmbedProps = (response, platform, iframeUrlType) => {
|
|
|
20
10
|
link: extractSmartLinkUrl(response) || '',
|
|
21
11
|
title: extractSmartLinkTitle(response),
|
|
22
12
|
context: extractSmartLinkContext(response),
|
|
23
|
-
preview:
|
|
13
|
+
preview: extractSmartLinkEmbed(response, iframeUrlType),
|
|
24
14
|
isTrusted: extractIsTrusted(meta),
|
|
25
15
|
isSupportTheming: extractIsSupportTheming(meta),
|
|
26
16
|
type: extractType(jsonLd)
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
|
+
import { extractSmartLinkAri } from '@atlaskit/link-extractors';
|
|
3
2
|
export const extractViewRelatedLinksAction = response => {
|
|
4
3
|
var _response$meta, _response$meta$suppor;
|
|
5
4
|
if (!(response !== null && response !== void 0 && (_response$meta = response.meta) !== null && _response$meta !== void 0 && (_response$meta$suppor = _response$meta.supportedFeature) !== null && _response$meta$suppor !== void 0 && _response$meta$suppor.includes('RelatedLinks'))) {
|
|
6
5
|
return;
|
|
7
6
|
}
|
|
8
|
-
const ari =
|
|
7
|
+
const ari = extractSmartLinkAri(response);
|
|
9
8
|
if (!ari) {
|
|
10
9
|
return;
|
|
11
10
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { extractEntity,
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
|
+
import { extractEntity, extractImage, isEntityPresent } from '@atlaskit/link-extractors';
|
|
3
2
|
import { MediaType } from '../../constants';
|
|
4
3
|
const extractPreview = data => {
|
|
5
4
|
if (!data) {
|
|
@@ -24,10 +23,6 @@ export const extractSmartLinkPreviewImage = response => {
|
|
|
24
23
|
var _entity$thumbnail;
|
|
25
24
|
const entity = extractEntity(response);
|
|
26
25
|
let url = entity === null || entity === void 0 ? void 0 : (_entity$thumbnail = entity.thumbnail) === null || _entity$thumbnail === void 0 ? void 0 : _entity$thumbnail.externalUrl;
|
|
27
|
-
if (!url && !fg('smart_links_noun_support')) {
|
|
28
|
-
const provider = extractEntityProvider(response);
|
|
29
|
-
url = provider === null || provider === void 0 ? void 0 : provider.image;
|
|
30
|
-
}
|
|
31
26
|
return url ? {
|
|
32
27
|
type: MediaType.Image,
|
|
33
28
|
url
|
|
@@ -42,9 +42,11 @@ export const getFirstPartyIdentifier = () => {
|
|
|
42
42
|
const product = getProductFromWindowURL();
|
|
43
43
|
const currentURL = window.location.href;
|
|
44
44
|
if (product === 'confluence') {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
if (currentURL.includes('content.id')) {
|
|
46
|
+
const contentId = extractContentIdFromURL(currentURL);
|
|
47
|
+
if (contentId) {
|
|
48
|
+
return `ConfluenceContentId:${contentId}`;
|
|
49
|
+
}
|
|
48
50
|
}
|
|
49
51
|
const pageId = extractPageIdFromURL(currentURL);
|
|
50
52
|
if (pageId) {
|
|
@@ -55,9 +57,8 @@ export const getFirstPartyIdentifier = () => {
|
|
|
55
57
|
if (issueKey) {
|
|
56
58
|
return `JiraIssueKey:${issueKey}`;
|
|
57
59
|
}
|
|
58
|
-
} else {
|
|
59
|
-
return undefined;
|
|
60
60
|
}
|
|
61
|
+
return undefined;
|
|
61
62
|
};
|
|
62
63
|
export const getObjectName = details => (details === null || details === void 0 ? void 0 : details.data) && 'name' in details.data && details.data.name || undefined;
|
|
63
64
|
export const getObjectIconUrl = details => {
|
|
@@ -109,40 +110,34 @@ export const hasAuthScopeOverrides = details => !!(details !== null && details !
|
|
|
109
110
|
// Helper function to extract page ID from standard Confluence page URLs
|
|
110
111
|
const extractPageIdFromURL = url => {
|
|
111
112
|
try {
|
|
112
|
-
const urlObj = new URL(url);
|
|
113
|
-
|
|
114
113
|
// Following this pattern for confluence URL -> /wiki/spaces/{space}/pages/{pageId}/{title}
|
|
115
|
-
const pagesMatch =
|
|
116
|
-
if (pagesMatch && pagesMatch[
|
|
117
|
-
return pagesMatch[
|
|
114
|
+
const pagesMatch = url.match(/(?!pages)(\d+)/);
|
|
115
|
+
if (pagesMatch && pagesMatch[0]) {
|
|
116
|
+
return pagesMatch[0];
|
|
118
117
|
}
|
|
119
118
|
|
|
120
119
|
// Following this pattern for confluence URL -> /wiki/pages/viewpage.action?pageId={pageId}
|
|
121
|
-
const pageIdParam =
|
|
122
|
-
if (pageIdParam) {
|
|
123
|
-
return pageIdParam;
|
|
120
|
+
const pageIdParam = url.match(/(?!pageId=)(\d+)/);
|
|
121
|
+
if (pageIdParam && pageIdParam[0]) {
|
|
122
|
+
return pageIdParam[0];
|
|
124
123
|
}
|
|
125
124
|
|
|
126
125
|
// Following this pattern for confluence URL -> /wiki/display/{space}/{pageId}
|
|
127
|
-
const displayMatch =
|
|
128
|
-
if (displayMatch && displayMatch[
|
|
129
|
-
return displayMatch[
|
|
126
|
+
const displayMatch = url.match(/(?!display\/)(\d+)/);
|
|
127
|
+
if (displayMatch && displayMatch[0]) {
|
|
128
|
+
return displayMatch[0];
|
|
130
129
|
}
|
|
131
130
|
} catch {
|
|
132
131
|
return undefined;
|
|
133
132
|
}
|
|
134
133
|
return undefined;
|
|
135
134
|
};
|
|
136
|
-
|
|
137
|
-
// Helper function to extract content ID from app connector URLs
|
|
138
135
|
const extractContentIdFromURL = url => {
|
|
139
136
|
try {
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
if (contentId) {
|
|
145
|
-
return contentId;
|
|
137
|
+
const contentId = url.match(/content\.id=(\d+)/);
|
|
138
|
+
if (contentId && contentId[1]) {
|
|
139
|
+
// contentId[1] contains just the number
|
|
140
|
+
return contentId[1];
|
|
146
141
|
}
|
|
147
142
|
} catch {
|
|
148
143
|
return undefined;
|
|
@@ -151,31 +146,9 @@ const extractContentIdFromURL = url => {
|
|
|
151
146
|
};
|
|
152
147
|
const extractJiraIssueIdFromURL = url => {
|
|
153
148
|
try {
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
// Example: https://product-fabric.atlassian.net/browse/AI3W-1064
|
|
158
|
-
const browseMatch = urlObj.pathname.match(/\/browse\/([A-Z]+-\d+)/);
|
|
159
|
-
if (browseMatch && browseMatch[1]) {
|
|
160
|
-
return browseMatch[1];
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Following this pattern for jira URL -> /jira/browse/{issueKey} (for some installations)
|
|
164
|
-
const jiraBrowseMatch = urlObj.pathname.match(/\/jira\/browse\/([A-Z]+-\d+)/);
|
|
165
|
-
if (jiraBrowseMatch && jiraBrowseMatch[1]) {
|
|
166
|
-
return jiraBrowseMatch[1];
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
// Following this pattern for jira URL -> Query parameter ?selectedIssue={issueKey}
|
|
170
|
-
const selectedIssue = urlObj.searchParams.get('selectedIssue');
|
|
171
|
-
if (selectedIssue && /^[A-Z]+-\d+$/.test(selectedIssue)) {
|
|
172
|
-
return selectedIssue;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// Following this pattern for jira URL -> Query parameter ?issueKey={issueKey}
|
|
176
|
-
const issueKeyParam = urlObj.searchParams.get('issueKey');
|
|
177
|
-
if (issueKeyParam && /^[A-Z]+-\d+$/.test(issueKeyParam)) {
|
|
178
|
-
return issueKeyParam;
|
|
149
|
+
const browseMatch = url.match(/[A-Z0-9]+-\d+/);
|
|
150
|
+
if (browseMatch && browseMatch[0]) {
|
|
151
|
+
return browseMatch[0];
|
|
179
152
|
}
|
|
180
153
|
} catch {
|
|
181
154
|
return undefined;
|
|
@@ -2,7 +2,7 @@ export const ANALYTICS_CHANNEL = 'media';
|
|
|
2
2
|
export const context = {
|
|
3
3
|
componentName: 'smart-cards',
|
|
4
4
|
packageName: "@atlaskit/smart-card",
|
|
5
|
-
packageVersion: "40.10.
|
|
5
|
+
packageVersion: "40.10.5"
|
|
6
6
|
};
|
|
7
7
|
export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
8
8
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
2
|
import { ElementName, MediaPlacement, SmartLinkPosition, SmartLinkSize } from '../../../../constants';
|
|
2
3
|
import { extractOwnedBy } from '../../../../extractors/flexible/utils';
|
|
3
4
|
import { getExtensionKey } from '../../../../state/helpers';
|
|
@@ -67,6 +68,26 @@ export const getSimulatedBetterMetadata = cardDetails => {
|
|
|
67
68
|
name: ElementName.AppliedToComponentsCount
|
|
68
69
|
}, ...baseBottomMetaData]
|
|
69
70
|
};
|
|
71
|
+
case 'passionfruit-object-provider':
|
|
72
|
+
if (fg('passionfruit_ask_smart_links_enabled')) {
|
|
73
|
+
return {
|
|
74
|
+
titleMetadata: defaultTitleMetadata,
|
|
75
|
+
topMetadata: extractOwnedBy(data) ? [{
|
|
76
|
+
name: ElementName.OwnedByGroup
|
|
77
|
+
}, {
|
|
78
|
+
name: ElementName.OwnedBy
|
|
79
|
+
}, ...baseTopMetadata] : defaultTopMetadata,
|
|
80
|
+
bottomMetadata: [{
|
|
81
|
+
name: ElementName.AppliedToComponentsCount
|
|
82
|
+
}, ...baseBottomMetaData]
|
|
83
|
+
};
|
|
84
|
+
} else {
|
|
85
|
+
return {
|
|
86
|
+
titleMetadata: defaultTitleMetadata,
|
|
87
|
+
topMetadata: defaultTopMetadata,
|
|
88
|
+
bottomMetadata: defaultBottomMetadata
|
|
89
|
+
};
|
|
90
|
+
}
|
|
70
91
|
case 'confluence-object-provider':
|
|
71
92
|
return {
|
|
72
93
|
titleMetadata: defaultTitleMetadata,
|
|
@@ -95,10 +95,11 @@ function Component({
|
|
|
95
95
|
action: 'clicked',
|
|
96
96
|
actionSubject: 'smartLink',
|
|
97
97
|
actionSubjectId: 'smartlinkClickAnalyticsWorkflows',
|
|
98
|
-
eventType: '
|
|
98
|
+
eventType: 'screen',
|
|
99
99
|
attributes: {
|
|
100
100
|
eventName: 'smartLinkClickAnalyticsThirdPartyWorkflows',
|
|
101
|
-
firstPartyIdentifier: firstPartyIdentifier
|
|
101
|
+
firstPartyIdentifier: firstPartyIdentifier,
|
|
102
|
+
clickedAt: Date.now().toString()
|
|
102
103
|
},
|
|
103
104
|
nonPrivacySafeAttributes: {
|
|
104
105
|
thirdPartyARI: thirdPartyARI
|
|
@@ -9,7 +9,7 @@ import LinkWarningModal from './LinkWarningModal';
|
|
|
9
9
|
import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
|
|
10
10
|
const PACKAGE_DATA = {
|
|
11
11
|
packageName: "@atlaskit/smart-card",
|
|
12
|
-
packageVersion: "40.10.
|
|
12
|
+
packageVersion: "40.10.5",
|
|
13
13
|
componentName: 'linkUrl'
|
|
14
14
|
};
|
|
15
15
|
const Anchor = withLinkClickedEvent('a');
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
2
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
-
import {
|
|
4
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
|
+
import { extractSmartLinkUrl } from '@atlaskit/link-extractors';
|
|
5
4
|
import { ActionName, CardAction } from '../../index';
|
|
6
5
|
import { getDefinitionId, getExtensionKey, getResourceType } from '../../state/helpers';
|
|
7
6
|
import { canShowAction } from '../../utils/actions/can-show-action';
|
|
@@ -13,8 +12,7 @@ export var extractInvokeCopyLinkAction = function extractInvokeCopyLinkAction(_r
|
|
|
13
12
|
if (!canShowAction(CardAction.CopyLinkAction, actionOptions)) {
|
|
14
13
|
return;
|
|
15
14
|
}
|
|
16
|
-
var
|
|
17
|
-
var url = fg('smart_links_noun_support') ? extractSmartLinkUrl(response) : extractLink(data);
|
|
15
|
+
var url = extractSmartLinkUrl(response);
|
|
18
16
|
if (!url) {
|
|
19
17
|
return;
|
|
20
18
|
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
2
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
3
|
import { extractSmartLinkDownloadUrl } from '@atlaskit/link-extractors';
|
|
4
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
5
4
|
import { ActionName, CardAction } from '../../index';
|
|
6
5
|
import { getDefinitionId, getExtensionKey, getResourceType } from '../../state/helpers';
|
|
7
6
|
import { downloadUrl as download } from '../../utils';
|
|
8
7
|
import { canShowAction } from '../../utils/actions/can-show-action';
|
|
9
8
|
import { getActionsFromJsonLd } from '../common/actions/extractActions';
|
|
10
|
-
import { extractDownloadUrl } from '../common/download/extractDownloadUrl';
|
|
11
9
|
export var extractInvokeDownloadAction = function extractInvokeDownloadAction(_ref) {
|
|
12
10
|
var actionOptions = _ref.actionOptions,
|
|
13
11
|
appearance = _ref.appearance,
|
|
@@ -21,7 +19,7 @@ export var extractInvokeDownloadAction = function extractInvokeDownloadAction(_r
|
|
|
21
19
|
return action['@type'] === 'DownloadAction';
|
|
22
20
|
});
|
|
23
21
|
if (downloadActionExists) {
|
|
24
|
-
var downloadUrl =
|
|
22
|
+
var downloadUrl = extractSmartLinkDownloadUrl(response);
|
|
25
23
|
return {
|
|
26
24
|
actionFn: function () {
|
|
27
25
|
var _actionFn = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
2
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
3
|
-
import {
|
|
4
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
|
+
import { extractPreview as extractPreviewData, extractSmartLinkEmbed, extractSmartLinkProvider, extractSmartLinkTitle, extractSmartLinkUrl } from '@atlaskit/link-extractors';
|
|
5
4
|
import { ActionName, CardAction } from '../../index';
|
|
6
5
|
import { getExtensionKey } from '../../state/helpers';
|
|
7
6
|
import { canShowAction } from '../../utils/actions/can-show-action';
|
|
@@ -27,12 +26,11 @@ export var extractInvokePreviewAction = function extractInvokePreviewAction(para
|
|
|
27
26
|
var meta = response.meta;
|
|
28
27
|
var src = (_extractPreviewData = extractPreviewData(data, 'web')) === null || _extractPreviewData === void 0 ? void 0 : _extractPreviewData.src;
|
|
29
28
|
if (src) {
|
|
30
|
-
var url = extractLink(data);
|
|
31
29
|
var extensionKey = getExtensionKey(response);
|
|
32
30
|
return {
|
|
33
31
|
actionFn: function () {
|
|
34
32
|
var _actionFn = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
35
|
-
var _extractSmartLinkProv,
|
|
33
|
+
var _extractSmartLinkProv, _extractSmartLinkEmbe;
|
|
36
34
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
37
35
|
while (1) switch (_context.prev = _context.next) {
|
|
38
36
|
case 0:
|
|
@@ -45,12 +43,12 @@ export var extractInvokePreviewAction = function extractInvokePreviewAction(para
|
|
|
45
43
|
isSupportTheming: extractIsSupportTheming(meta),
|
|
46
44
|
isTrusted: extractIsTrusted(meta),
|
|
47
45
|
linkIcon: extractLinkIcon(response),
|
|
48
|
-
providerName:
|
|
46
|
+
providerName: (_extractSmartLinkProv = extractSmartLinkProvider(response)) === null || _extractSmartLinkProv === void 0 ? void 0 : _extractSmartLinkProv.text,
|
|
49
47
|
onClose: onClose,
|
|
50
48
|
origin: origin,
|
|
51
|
-
src:
|
|
52
|
-
title:
|
|
53
|
-
url:
|
|
49
|
+
src: (_extractSmartLinkEmbe = extractSmartLinkEmbed(response)) === null || _extractSmartLinkEmbe === void 0 ? void 0 : _extractSmartLinkEmbe.src,
|
|
50
|
+
title: extractSmartLinkTitle(response),
|
|
51
|
+
url: extractSmartLinkUrl(response)
|
|
54
52
|
}));
|
|
55
53
|
case 1:
|
|
56
54
|
case "end":
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { extractEntity, isEntityPresent } from '@atlaskit/link-extractors';
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
3
|
-
|
|
4
2
|
/**
|
|
5
3
|
* Return link summary
|
|
6
4
|
*/
|
|
@@ -15,11 +13,9 @@ export var extractSummary = function extractSummary(jsonLd) {
|
|
|
15
13
|
* Return link summary
|
|
16
14
|
*/
|
|
17
15
|
export var extractSmartLinkSummary = function extractSmartLinkSummary(response) {
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return (_extractEntity = extractEntity(response)) === null || _extractEntity === void 0 ? void 0 : _extractEntity.description;
|
|
22
|
-
}
|
|
16
|
+
if (isEntityPresent(response)) {
|
|
17
|
+
var _extractEntity;
|
|
18
|
+
return (_extractEntity = extractEntity(response)) === null || _extractEntity === void 0 ? void 0 : _extractEntity.description;
|
|
23
19
|
}
|
|
24
20
|
return (response === null || response === void 0 ? void 0 : response.data) && extractSummary(response.data);
|
|
25
21
|
};
|
|
@@ -1,20 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
|
-
import { extractPreview, extractSmartLinkEmbed, extractSmartLinkTitle, extractSmartLinkUrl, extractType } from '@atlaskit/link-extractors';
|
|
5
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
|
+
import { extractSmartLinkEmbed, extractSmartLinkTitle, extractSmartLinkUrl, extractType } from '@atlaskit/link-extractors';
|
|
6
2
|
import { getEmptyJsonLd } from '../../utils/jsonld';
|
|
7
3
|
import { extractSmartLinkContext } from '../common/context';
|
|
8
4
|
import { extractIsSupportTheming } from '../common/meta/extractIsSupportTheming';
|
|
9
5
|
import { extractIsTrusted } from '../common/meta/extractIsTrusted';
|
|
10
|
-
var extractEmbedPreview = function extractEmbedPreview(jsonLd, platform, iframeUrlType) {
|
|
11
|
-
var preview = extractPreview(jsonLd, platform, iframeUrlType);
|
|
12
|
-
if (preview && preview.src) {
|
|
13
|
-
return _objectSpread(_objectSpread({}, preview), {}, {
|
|
14
|
-
src: preview.src
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
6
|
export var extractEmbedProps = function extractEmbedProps(response, platform, iframeUrlType) {
|
|
19
7
|
var meta = response === null || response === void 0 ? void 0 : response.meta;
|
|
20
8
|
var jsonLd = (response === null || response === void 0 ? void 0 : response.data) || getEmptyJsonLd();
|
|
@@ -22,7 +10,7 @@ export var extractEmbedProps = function extractEmbedProps(response, platform, if
|
|
|
22
10
|
link: extractSmartLinkUrl(response) || '',
|
|
23
11
|
title: extractSmartLinkTitle(response),
|
|
24
12
|
context: extractSmartLinkContext(response),
|
|
25
|
-
preview:
|
|
13
|
+
preview: extractSmartLinkEmbed(response, iframeUrlType),
|
|
26
14
|
isTrusted: extractIsTrusted(meta),
|
|
27
15
|
isSupportTheming: extractIsSupportTheming(meta),
|
|
28
16
|
type: extractType(jsonLd)
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
|
+
import { extractSmartLinkAri } from '@atlaskit/link-extractors';
|
|
3
2
|
export var extractViewRelatedLinksAction = function extractViewRelatedLinksAction(response) {
|
|
4
3
|
var _response$meta;
|
|
5
4
|
if (!(response !== null && response !== void 0 && (_response$meta = response.meta) !== null && _response$meta !== void 0 && (_response$meta = _response$meta.supportedFeature) !== null && _response$meta !== void 0 && _response$meta.includes('RelatedLinks'))) {
|
|
6
5
|
return;
|
|
7
6
|
}
|
|
8
|
-
var ari =
|
|
7
|
+
var ari = extractSmartLinkAri(response);
|
|
9
8
|
if (!ari) {
|
|
10
9
|
return;
|
|
11
10
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { extractEntity,
|
|
2
|
-
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
|
+
import { extractEntity, extractImage, isEntityPresent } from '@atlaskit/link-extractors';
|
|
3
2
|
import { MediaType } from '../../constants';
|
|
4
3
|
var extractPreview = function extractPreview(data) {
|
|
5
4
|
if (!data) {
|
|
@@ -24,10 +23,6 @@ export var extractSmartLinkPreviewImage = function extractSmartLinkPreviewImage(
|
|
|
24
23
|
var _entity$thumbnail;
|
|
25
24
|
var entity = extractEntity(response);
|
|
26
25
|
var url = entity === null || entity === void 0 || (_entity$thumbnail = entity.thumbnail) === null || _entity$thumbnail === void 0 ? void 0 : _entity$thumbnail.externalUrl;
|
|
27
|
-
if (!url && !fg('smart_links_noun_support')) {
|
|
28
|
-
var provider = extractEntityProvider(response);
|
|
29
|
-
url = provider === null || provider === void 0 ? void 0 : provider.image;
|
|
30
|
-
}
|
|
31
26
|
return url ? {
|
|
32
27
|
type: MediaType.Image,
|
|
33
28
|
url: url
|
|
@@ -43,9 +43,11 @@ export var getFirstPartyIdentifier = function getFirstPartyIdentifier() {
|
|
|
43
43
|
var product = getProductFromWindowURL();
|
|
44
44
|
var currentURL = window.location.href;
|
|
45
45
|
if (product === 'confluence') {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
if (currentURL.includes('content.id')) {
|
|
47
|
+
var contentId = extractContentIdFromURL(currentURL);
|
|
48
|
+
if (contentId) {
|
|
49
|
+
return "ConfluenceContentId:".concat(contentId);
|
|
50
|
+
}
|
|
49
51
|
}
|
|
50
52
|
var pageId = extractPageIdFromURL(currentURL);
|
|
51
53
|
if (pageId) {
|
|
@@ -56,9 +58,8 @@ export var getFirstPartyIdentifier = function getFirstPartyIdentifier() {
|
|
|
56
58
|
if (issueKey) {
|
|
57
59
|
return "JiraIssueKey:".concat(issueKey);
|
|
58
60
|
}
|
|
59
|
-
} else {
|
|
60
|
-
return undefined;
|
|
61
61
|
}
|
|
62
|
+
return undefined;
|
|
62
63
|
};
|
|
63
64
|
export var getObjectName = function getObjectName(details) {
|
|
64
65
|
return (details === null || details === void 0 ? void 0 : details.data) && 'name' in details.data && details.data.name || undefined;
|
|
@@ -118,40 +119,34 @@ export var hasAuthScopeOverrides = function hasAuthScopeOverrides(details) {
|
|
|
118
119
|
// Helper function to extract page ID from standard Confluence page URLs
|
|
119
120
|
var extractPageIdFromURL = function extractPageIdFromURL(url) {
|
|
120
121
|
try {
|
|
121
|
-
var urlObj = new URL(url);
|
|
122
|
-
|
|
123
122
|
// Following this pattern for confluence URL -> /wiki/spaces/{space}/pages/{pageId}/{title}
|
|
124
|
-
var pagesMatch =
|
|
125
|
-
if (pagesMatch && pagesMatch[
|
|
126
|
-
return pagesMatch[
|
|
123
|
+
var pagesMatch = url.match(/(?!pages)(\d+)/);
|
|
124
|
+
if (pagesMatch && pagesMatch[0]) {
|
|
125
|
+
return pagesMatch[0];
|
|
127
126
|
}
|
|
128
127
|
|
|
129
128
|
// Following this pattern for confluence URL -> /wiki/pages/viewpage.action?pageId={pageId}
|
|
130
|
-
var pageIdParam =
|
|
131
|
-
if (pageIdParam) {
|
|
132
|
-
return pageIdParam;
|
|
129
|
+
var pageIdParam = url.match(/(?!pageId=)(\d+)/);
|
|
130
|
+
if (pageIdParam && pageIdParam[0]) {
|
|
131
|
+
return pageIdParam[0];
|
|
133
132
|
}
|
|
134
133
|
|
|
135
134
|
// Following this pattern for confluence URL -> /wiki/display/{space}/{pageId}
|
|
136
|
-
var displayMatch =
|
|
137
|
-
if (displayMatch && displayMatch[
|
|
138
|
-
return displayMatch[
|
|
135
|
+
var displayMatch = url.match(/(?!display\/)(\d+)/);
|
|
136
|
+
if (displayMatch && displayMatch[0]) {
|
|
137
|
+
return displayMatch[0];
|
|
139
138
|
}
|
|
140
139
|
} catch (_unused) {
|
|
141
140
|
return undefined;
|
|
142
141
|
}
|
|
143
142
|
return undefined;
|
|
144
143
|
};
|
|
145
|
-
|
|
146
|
-
// Helper function to extract content ID from app connector URLs
|
|
147
144
|
var extractContentIdFromURL = function extractContentIdFromURL(url) {
|
|
148
145
|
try {
|
|
149
|
-
var
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
if (contentId) {
|
|
154
|
-
return contentId;
|
|
146
|
+
var contentId = url.match(/content\.id=(\d+)/);
|
|
147
|
+
if (contentId && contentId[1]) {
|
|
148
|
+
// contentId[1] contains just the number
|
|
149
|
+
return contentId[1];
|
|
155
150
|
}
|
|
156
151
|
} catch (_unused2) {
|
|
157
152
|
return undefined;
|
|
@@ -160,31 +155,9 @@ var extractContentIdFromURL = function extractContentIdFromURL(url) {
|
|
|
160
155
|
};
|
|
161
156
|
var extractJiraIssueIdFromURL = function extractJiraIssueIdFromURL(url) {
|
|
162
157
|
try {
|
|
163
|
-
var
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
// Example: https://product-fabric.atlassian.net/browse/AI3W-1064
|
|
167
|
-
var browseMatch = urlObj.pathname.match(/\/browse\/([A-Z]+-\d+)/);
|
|
168
|
-
if (browseMatch && browseMatch[1]) {
|
|
169
|
-
return browseMatch[1];
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// Following this pattern for jira URL -> /jira/browse/{issueKey} (for some installations)
|
|
173
|
-
var jiraBrowseMatch = urlObj.pathname.match(/\/jira\/browse\/([A-Z]+-\d+)/);
|
|
174
|
-
if (jiraBrowseMatch && jiraBrowseMatch[1]) {
|
|
175
|
-
return jiraBrowseMatch[1];
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
// Following this pattern for jira URL -> Query parameter ?selectedIssue={issueKey}
|
|
179
|
-
var selectedIssue = urlObj.searchParams.get('selectedIssue');
|
|
180
|
-
if (selectedIssue && /^[A-Z]+-\d+$/.test(selectedIssue)) {
|
|
181
|
-
return selectedIssue;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
// Following this pattern for jira URL -> Query parameter ?issueKey={issueKey}
|
|
185
|
-
var issueKeyParam = urlObj.searchParams.get('issueKey');
|
|
186
|
-
if (issueKeyParam && /^[A-Z]+-\d+$/.test(issueKeyParam)) {
|
|
187
|
-
return issueKeyParam;
|
|
158
|
+
var browseMatch = url.match(/[A-Z0-9]+-\d+/);
|
|
159
|
+
if (browseMatch && browseMatch[0]) {
|
|
160
|
+
return browseMatch[0];
|
|
188
161
|
}
|
|
189
162
|
} catch (_unused3) {
|
|
190
163
|
return undefined;
|
|
@@ -4,7 +4,7 @@ export var ANALYTICS_CHANNEL = 'media';
|
|
|
4
4
|
export var context = {
|
|
5
5
|
componentName: 'smart-cards',
|
|
6
6
|
packageName: "@atlaskit/smart-card",
|
|
7
|
-
packageVersion: "40.10.
|
|
7
|
+
packageVersion: "40.10.5"
|
|
8
8
|
};
|
|
9
9
|
export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
10
10
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { fg } from '@atlaskit/platform-feature-flags';
|
|
1
2
|
import { ElementName, MediaPlacement, SmartLinkPosition, SmartLinkSize } from '../../../../constants';
|
|
2
3
|
import { extractOwnedBy } from '../../../../extractors/flexible/utils';
|
|
3
4
|
import { getExtensionKey } from '../../../../state/helpers';
|
|
@@ -67,6 +68,26 @@ export var getSimulatedBetterMetadata = function getSimulatedBetterMetadata(card
|
|
|
67
68
|
name: ElementName.AppliedToComponentsCount
|
|
68
69
|
}].concat(baseBottomMetaData)
|
|
69
70
|
};
|
|
71
|
+
case 'passionfruit-object-provider':
|
|
72
|
+
if (fg('passionfruit_ask_smart_links_enabled')) {
|
|
73
|
+
return {
|
|
74
|
+
titleMetadata: defaultTitleMetadata,
|
|
75
|
+
topMetadata: extractOwnedBy(data) ? [{
|
|
76
|
+
name: ElementName.OwnedByGroup
|
|
77
|
+
}, {
|
|
78
|
+
name: ElementName.OwnedBy
|
|
79
|
+
}].concat(baseTopMetadata) : defaultTopMetadata,
|
|
80
|
+
bottomMetadata: [{
|
|
81
|
+
name: ElementName.AppliedToComponentsCount
|
|
82
|
+
}].concat(baseBottomMetaData)
|
|
83
|
+
};
|
|
84
|
+
} else {
|
|
85
|
+
return {
|
|
86
|
+
titleMetadata: defaultTitleMetadata,
|
|
87
|
+
topMetadata: defaultTopMetadata,
|
|
88
|
+
bottomMetadata: defaultBottomMetadata
|
|
89
|
+
};
|
|
90
|
+
}
|
|
70
91
|
case 'confluence-object-provider':
|
|
71
92
|
return {
|
|
72
93
|
titleMetadata: defaultTitleMetadata,
|
|
@@ -93,10 +93,11 @@ function Component(_ref) {
|
|
|
93
93
|
action: 'clicked',
|
|
94
94
|
actionSubject: 'smartLink',
|
|
95
95
|
actionSubjectId: 'smartlinkClickAnalyticsWorkflows',
|
|
96
|
-
eventType: '
|
|
96
|
+
eventType: 'screen',
|
|
97
97
|
attributes: {
|
|
98
98
|
eventName: 'smartLinkClickAnalyticsThirdPartyWorkflows',
|
|
99
|
-
firstPartyIdentifier: firstPartyIdentifier
|
|
99
|
+
firstPartyIdentifier: firstPartyIdentifier,
|
|
100
|
+
clickedAt: Date.now().toString()
|
|
100
101
|
},
|
|
101
102
|
nonPrivacySafeAttributes: {
|
|
102
103
|
thirdPartyARI: thirdPartyARI
|
|
@@ -12,7 +12,7 @@ import LinkWarningModal from './LinkWarningModal';
|
|
|
12
12
|
import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
|
|
13
13
|
var PACKAGE_DATA = {
|
|
14
14
|
packageName: "@atlaskit/smart-card",
|
|
15
|
-
packageVersion: "40.10.
|
|
15
|
+
packageVersion: "40.10.5",
|
|
16
16
|
componentName: 'linkUrl'
|
|
17
17
|
};
|
|
18
18
|
var Anchor = withLinkClickedEvent('a');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generates Typescript types for analytics events from analytics.spec.yaml
|
|
5
5
|
*
|
|
6
|
-
* @codegen <<SignedSource::
|
|
6
|
+
* @codegen <<SignedSource::8ebf07690deae06cee97fcbba4bb8eb0>>
|
|
7
7
|
* @codegenCommand yarn workspace @atlassian/analytics-tooling run analytics:codegen smart-card
|
|
8
8
|
*/
|
|
9
9
|
export type PackageMetaDataContextType = {
|
|
@@ -234,6 +234,7 @@ export type SmartLinkClickedSmartlinkClickAnalyticsWorkflowsAttributesType = {
|
|
|
234
234
|
thirdPartyARI: string;
|
|
235
235
|
eventName: string;
|
|
236
236
|
firstPartyIdentifier: string | null;
|
|
237
|
+
clickedAt: string;
|
|
237
238
|
};
|
|
238
239
|
export type AnalyticsEventAttributes = {
|
|
239
240
|
/**
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generates Typescript types for analytics events from analytics.spec.yaml
|
|
5
5
|
*
|
|
6
|
-
* @codegen <<SignedSource::
|
|
6
|
+
* @codegen <<SignedSource::8ebf07690deae06cee97fcbba4bb8eb0>>
|
|
7
7
|
* @codegenCommand yarn workspace @atlassian/analytics-tooling run analytics:codegen smart-card
|
|
8
8
|
*/
|
|
9
9
|
export type PackageMetaDataContextType = {
|
|
@@ -234,6 +234,7 @@ export type SmartLinkClickedSmartlinkClickAnalyticsWorkflowsAttributesType = {
|
|
|
234
234
|
thirdPartyARI: string;
|
|
235
235
|
eventName: string;
|
|
236
236
|
firstPartyIdentifier: string | null;
|
|
237
|
+
clickedAt: string;
|
|
237
238
|
};
|
|
238
239
|
export type AnalyticsEventAttributes = {
|
|
239
240
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/smart-card",
|
|
3
|
-
"version": "40.10.
|
|
3
|
+
"version": "40.10.6",
|
|
4
4
|
"description": "Smart card component",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"@atlaskit/avatar": "^25.1.0",
|
|
32
32
|
"@atlaskit/avatar-group": "^12.2.0",
|
|
33
33
|
"@atlaskit/badge": "^18.1.0",
|
|
34
|
-
"@atlaskit/button": "^23.
|
|
34
|
+
"@atlaskit/button": "^23.4.0",
|
|
35
35
|
"@atlaskit/checkbox": "^17.1.0",
|
|
36
36
|
"@atlaskit/css": "^0.12.0",
|
|
37
37
|
"@atlaskit/dropdown-menu": "^16.3.0",
|
|
@@ -52,9 +52,9 @@
|
|
|
52
52
|
"@atlaskit/link-client-extension": "^5.0.0",
|
|
53
53
|
"@atlaskit/link-extractors": "^2.4.0",
|
|
54
54
|
"@atlaskit/link-test-helpers": "^8.3.0",
|
|
55
|
-
"@atlaskit/linking-common": "^9.
|
|
55
|
+
"@atlaskit/linking-common": "^9.3.0",
|
|
56
56
|
"@atlaskit/linking-types": "^14.0.0",
|
|
57
|
-
"@atlaskit/logo": "^19.
|
|
57
|
+
"@atlaskit/logo": "^19.7.0",
|
|
58
58
|
"@atlaskit/lozenge": "^13.0.0",
|
|
59
59
|
"@atlaskit/menu": "^8.3.0",
|
|
60
60
|
"@atlaskit/modal-dialog": "^14.3.0",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"uuid": "^3.1.0"
|
|
87
87
|
},
|
|
88
88
|
"peerDependencies": {
|
|
89
|
-
"@atlaskit/link-provider": "^3.
|
|
89
|
+
"@atlaskit/link-provider": "^3.5.0",
|
|
90
90
|
"react": "^18.2.0",
|
|
91
91
|
"react-dom": "^18.2.0",
|
|
92
92
|
"react-intl-next": "npm:react-intl@^5.18.1"
|
|
@@ -190,9 +190,6 @@
|
|
|
190
190
|
"platform_smart_links_controlled_dsp_export_view": {
|
|
191
191
|
"type": "boolean"
|
|
192
192
|
},
|
|
193
|
-
"smart_links_noun_support": {
|
|
194
|
-
"type": "boolean"
|
|
195
|
-
},
|
|
196
193
|
"platform-linking-ai-summary-migration-to-convo-ai": {
|
|
197
194
|
"type": "boolean"
|
|
198
195
|
},
|
|
@@ -235,6 +232,9 @@
|
|
|
235
232
|
"platform_smartlink_3pclick_analytics": {
|
|
236
233
|
"type": "boolean"
|
|
237
234
|
},
|
|
235
|
+
"passionfruit_ask_smart_links_enabled": {
|
|
236
|
+
"type": "boolean"
|
|
237
|
+
},
|
|
238
238
|
"ptc-enable-embed-team-smart-links": {
|
|
239
239
|
"type": "boolean"
|
|
240
240
|
}
|