@atlaskit/smart-card 26.27.1 → 26.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +6 -2
- package/dist/cjs/state/helpers.js +11 -2
- package/dist/cjs/utils/analytics/analytics.js +5 -3
- package/dist/cjs/utils/mocks.js +53 -71
- package/dist/cjs/view/CardWithUrl/component.js +4 -2
- package/dist/cjs/view/FlexibleCard/components/blocks/preview-block/index.js +5 -3
- package/dist/cjs/view/FlexibleCard/components/blocks/preview-block/resolved/index.js +4 -2
- package/dist/cjs/view/FlexibleCard/components/elements/index.js +10 -3
- package/dist/cjs/view/FlexibleCard/components/elements/preview/index.js +35 -0
- package/dist/cjs/view/FlexibleCard/components/elements/preview/types.js +5 -0
- package/dist/cjs/view/HoverCard/components/views/resolved/index.js +5 -2
- package/dist/cjs/view/LinkUrl/index.js +1 -1
- package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +5 -2
- package/dist/es2019/state/helpers.js +5 -0
- package/dist/es2019/utils/analytics/analytics.js +5 -3
- package/dist/es2019/utils/mocks.js +51 -71
- package/dist/es2019/view/CardWithUrl/component.js +5 -3
- package/dist/es2019/view/FlexibleCard/components/blocks/preview-block/index.js +4 -2
- package/dist/es2019/view/FlexibleCard/components/blocks/preview-block/resolved/index.js +3 -1
- package/dist/es2019/view/FlexibleCard/components/elements/index.js +1 -1
- package/dist/es2019/view/FlexibleCard/components/elements/preview/index.js +23 -0
- package/dist/es2019/view/FlexibleCard/components/elements/preview/types.js +1 -0
- package/dist/es2019/view/HoverCard/components/views/resolved/index.js +5 -2
- package/dist/es2019/view/LinkUrl/index.js +1 -1
- package/dist/esm/state/analytics/useSmartLinkAnalytics.js +6 -2
- package/dist/esm/state/helpers.js +7 -0
- package/dist/esm/utils/analytics/analytics.js +5 -3
- package/dist/esm/utils/mocks.js +53 -71
- package/dist/esm/view/CardWithUrl/component.js +5 -3
- package/dist/esm/view/FlexibleCard/components/blocks/preview-block/index.js +5 -3
- package/dist/esm/view/FlexibleCard/components/blocks/preview-block/resolved/index.js +4 -2
- package/dist/esm/view/FlexibleCard/components/elements/index.js +1 -1
- package/dist/esm/view/FlexibleCard/components/elements/preview/index.js +24 -0
- package/dist/esm/view/FlexibleCard/components/elements/preview/types.js +1 -0
- package/dist/esm/view/HoverCard/components/views/resolved/index.js +5 -2
- package/dist/esm/view/LinkUrl/index.js +1 -1
- package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +2 -1
- package/dist/types/state/helpers.d.ts +3 -0
- package/dist/types/state/hooks/useSmartLink.d.ts +1 -1
- package/dist/types/utils/analytics/analytics.d.ts +1 -1
- package/dist/types/utils/analytics/types.d.ts +1 -0
- package/dist/types/utils/mocks.d.ts +42 -1
- package/dist/types/view/FlexibleCard/components/blocks/preview-block/index.d.ts +1 -1
- package/dist/types/view/FlexibleCard/components/blocks/preview-block/types.d.ts +4 -0
- package/dist/types/view/FlexibleCard/components/elements/index.d.ts +1 -2
- package/dist/types/view/FlexibleCard/components/elements/preview/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/elements/preview/types.d.ts +13 -0
- package/dist/types-ts4.5/state/analytics/useSmartLinkAnalytics.d.ts +2 -1
- package/dist/types-ts4.5/state/helpers.d.ts +3 -0
- package/dist/types-ts4.5/state/hooks/useSmartLink.d.ts +1 -1
- package/dist/types-ts4.5/utils/analytics/analytics.d.ts +1 -1
- package/dist/types-ts4.5/utils/analytics/types.d.ts +1 -0
- package/dist/types-ts4.5/utils/mocks.d.ts +42 -1
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/preview-block/index.d.ts +1 -1
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/preview-block/types.d.ts +4 -0
- package/dist/types-ts4.5/view/FlexibleCard/components/elements/index.d.ts +1 -2
- package/dist/types-ts4.5/view/FlexibleCard/components/elements/preview/index.d.ts +5 -0
- package/dist/types-ts4.5/view/FlexibleCard/components/elements/preview/types.d.ts +13 -0
- package/package.json +5 -5
- package/report.api.md +3 -0
- package/tmp/api-report-tmp.d.ts +3 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 26.28.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`46afccdf430`](https://bitbucket.org/atlassian/atlassian-frontend/commits/46afccdf430) - Flexible-UI: Add url override option to preview block
|
|
8
|
+
|
|
9
|
+
## 26.27.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`cecab8d279d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cecab8d279d) - Added an attribute 'canBeDatasource' to 'smartLink renderSuccess' event to indicate which smart links can be converted to datasources
|
|
14
|
+
|
|
3
15
|
## 26.27.1
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -353,6 +353,7 @@ var useSmartLinkAnalytics = function useSmartLinkAnalytics(url, _dispatchAnalyti
|
|
|
353
353
|
* @param id The unique ID for this Smart Link.
|
|
354
354
|
* @param definitionId The definitionId of the Smart Link resolver invoked.
|
|
355
355
|
* @param extensionKey The extensionKey of the Smart Link resovler invoked.
|
|
356
|
+
* @param canBeDatasource An indicator that shows that a smart link can be converted to a datasource
|
|
356
357
|
*/
|
|
357
358
|
renderSuccessEvent: function renderSuccessEvent(_ref9) {
|
|
358
359
|
var display = _ref9.display,
|
|
@@ -363,7 +364,9 @@ var useSmartLinkAnalytics = function useSmartLinkAnalytics(url, _dispatchAnalyti
|
|
|
363
364
|
resourceType = _ref9.resourceType,
|
|
364
365
|
destinationProduct = _ref9.destinationProduct,
|
|
365
366
|
destinationSubproduct = _ref9.destinationSubproduct,
|
|
366
|
-
location = _ref9.location
|
|
367
|
+
location = _ref9.location,
|
|
368
|
+
_ref9$canBeDatasource = _ref9.canBeDatasource,
|
|
369
|
+
canBeDatasource = _ref9$canBeDatasource === void 0 ? false : _ref9$canBeDatasource;
|
|
367
370
|
var experienceId = id ? id : defaultId;
|
|
368
371
|
(0, _ufoExperiences.succeedUfoExperience)('smart-link-rendered', experienceId, {
|
|
369
372
|
extensionKey: extensionKey,
|
|
@@ -382,7 +385,8 @@ var useSmartLinkAnalytics = function useSmartLinkAnalytics(url, _dispatchAnalyti
|
|
|
382
385
|
resourceType: resourceType,
|
|
383
386
|
destinationProduct: destinationProduct,
|
|
384
387
|
destinationSubproduct: destinationSubproduct,
|
|
385
|
-
location: location
|
|
388
|
+
location: location,
|
|
389
|
+
canBeDatasource: canBeDatasource
|
|
386
390
|
}), commonAttributes));
|
|
387
391
|
},
|
|
388
392
|
/**
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.isVisible = exports.isFinalState = exports.isAccessible = exports.hasResolved = exports.getSubproduct = exports.getStatusDetails = exports.getServices = exports.getResourceType = exports.getProduct = exports.getExtensionKey = exports.getDefinitionId = exports.getClickUrl = exports.getByDefinitionId = void 0;
|
|
6
|
+
exports.isVisible = exports.isFinalState = exports.isAccessible = exports.hasResolved = exports.getSubproduct = exports.getStatusDetails = exports.getServices = exports.getResourceType = exports.getProduct = exports.getExtensionKey = exports.getDefinitionId = exports.getDatasources = exports.getClickUrl = exports.getCanBeDatasource = exports.getByDefinitionId = void 0;
|
|
7
7
|
var _extractVisitUrl = require("../extractors/common/primitives/extractVisitUrl");
|
|
8
8
|
var getByDefinitionId = function getByDefinitionId(definitionId, store) {
|
|
9
9
|
var urls = Object.keys(store);
|
|
@@ -74,4 +74,13 @@ exports.getStatusDetails = getStatusDetails;
|
|
|
74
74
|
var isFinalState = function isFinalState(status) {
|
|
75
75
|
return ['unauthorized', 'forbidden', 'errored', 'resolved', 'not_found'].indexOf(status) > -1;
|
|
76
76
|
};
|
|
77
|
-
exports.isFinalState = isFinalState;
|
|
77
|
+
exports.isFinalState = isFinalState;
|
|
78
|
+
var getDatasources = function getDatasources(details) {
|
|
79
|
+
return details === null || details === void 0 ? void 0 : details.datasources;
|
|
80
|
+
};
|
|
81
|
+
exports.getDatasources = getDatasources;
|
|
82
|
+
var getCanBeDatasource = function getCanBeDatasource(details) {
|
|
83
|
+
var datasources = getDatasources(details);
|
|
84
|
+
return !!datasources && datasources.length > 0;
|
|
85
|
+
};
|
|
86
|
+
exports.getCanBeDatasource = getCanBeDatasource;
|
|
@@ -23,7 +23,7 @@ exports.ANALYTICS_CHANNEL = ANALYTICS_CHANNEL;
|
|
|
23
23
|
var context = {
|
|
24
24
|
componentName: 'smart-cards',
|
|
25
25
|
packageName: "@atlaskit/smart-card",
|
|
26
|
-
packageVersion: "26.
|
|
26
|
+
packageVersion: "26.28.0"
|
|
27
27
|
};
|
|
28
28
|
exports.context = context;
|
|
29
29
|
var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
@@ -522,7 +522,8 @@ var uiRenderSuccessEvent = function uiRenderSuccessEvent(_ref20) {
|
|
|
522
522
|
definitionId = _ref20.definitionId,
|
|
523
523
|
destinationProduct = _ref20.destinationProduct,
|
|
524
524
|
destinationSubproduct = _ref20.destinationSubproduct,
|
|
525
|
-
location = _ref20.location
|
|
525
|
+
location = _ref20.location,
|
|
526
|
+
canBeDatasource = _ref20.canBeDatasource;
|
|
526
527
|
return {
|
|
527
528
|
action: 'renderSuccess',
|
|
528
529
|
actionSubject: 'smartLink',
|
|
@@ -534,7 +535,8 @@ var uiRenderSuccessEvent = function uiRenderSuccessEvent(_ref20) {
|
|
|
534
535
|
destinationProduct: destinationProduct,
|
|
535
536
|
destinationSubproduct: destinationSubproduct,
|
|
536
537
|
location: location,
|
|
537
|
-
display: display
|
|
538
|
+
display: display,
|
|
539
|
+
canBeDatasource: canBeDatasource
|
|
538
540
|
})
|
|
539
541
|
};
|
|
540
542
|
};
|
package/dist/cjs/utils/mocks.js
CHANGED
|
@@ -12,9 +12,12 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
|
|
|
12
12
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
13
13
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
14
14
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
15
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
16
|
var _linkProvider = require("@atlaskit/link-provider");
|
|
16
17
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
17
18
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
19
|
+
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; }
|
|
20
|
+
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; }
|
|
18
21
|
var mockContext = {
|
|
19
22
|
'@vocab': 'https://www.w3.org/ns/activitystreams#',
|
|
20
23
|
atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
|
|
@@ -53,6 +56,29 @@ var mockByUrl = function mockByUrl(url) {
|
|
|
53
56
|
};
|
|
54
57
|
};
|
|
55
58
|
exports.mockByUrl = mockByUrl;
|
|
59
|
+
var errorResponseData = {
|
|
60
|
+
'@context': {
|
|
61
|
+
'@vocab': 'https://www.w3.org/ns/activitystreams#',
|
|
62
|
+
atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
|
|
63
|
+
schema: 'http://schema.org/'
|
|
64
|
+
},
|
|
65
|
+
'@type': 'Object',
|
|
66
|
+
name: 'I love cheese',
|
|
67
|
+
url: 'https://some.url'
|
|
68
|
+
};
|
|
69
|
+
var successfulResponseData = _objectSpread(_objectSpread({}, errorResponseData), {}, {
|
|
70
|
+
summary: 'Here is your serving of cheese: 🧀',
|
|
71
|
+
'schema:potentialAction': {
|
|
72
|
+
'@id': 'download',
|
|
73
|
+
'@type': 'DownloadAction',
|
|
74
|
+
identifier: 'object-provider',
|
|
75
|
+
name: 'Download'
|
|
76
|
+
},
|
|
77
|
+
'atlassian:downloadUrl': 'https://some-download.url',
|
|
78
|
+
preview: {
|
|
79
|
+
href: 'https://www.ilovecheese.com'
|
|
80
|
+
}
|
|
81
|
+
});
|
|
56
82
|
var mocks = {
|
|
57
83
|
success: {
|
|
58
84
|
meta: {
|
|
@@ -62,27 +88,7 @@ var mocks = {
|
|
|
62
88
|
definitionId: 'd1',
|
|
63
89
|
key: 'object-provider'
|
|
64
90
|
},
|
|
65
|
-
data:
|
|
66
|
-
'@context': {
|
|
67
|
-
'@vocab': 'https://www.w3.org/ns/activitystreams#',
|
|
68
|
-
atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
|
|
69
|
-
schema: 'http://schema.org/'
|
|
70
|
-
},
|
|
71
|
-
'@type': 'Object',
|
|
72
|
-
name: 'I love cheese',
|
|
73
|
-
summary: 'Here is your serving of cheese: 🧀',
|
|
74
|
-
'schema:potentialAction': {
|
|
75
|
-
'@id': 'download',
|
|
76
|
-
'@type': 'DownloadAction',
|
|
77
|
-
identifier: 'object-provider',
|
|
78
|
-
name: 'Download'
|
|
79
|
-
},
|
|
80
|
-
'atlassian:downloadUrl': 'https://some-download.url',
|
|
81
|
-
preview: {
|
|
82
|
-
href: 'https://www.ilovecheese.com'
|
|
83
|
-
},
|
|
84
|
-
url: 'https://some.url'
|
|
85
|
-
}
|
|
91
|
+
data: successfulResponseData
|
|
86
92
|
},
|
|
87
93
|
notFound: {
|
|
88
94
|
meta: {
|
|
@@ -92,16 +98,7 @@ var mocks = {
|
|
|
92
98
|
definitionId: 'd1',
|
|
93
99
|
key: 'object-provider'
|
|
94
100
|
},
|
|
95
|
-
data:
|
|
96
|
-
'@context': {
|
|
97
|
-
'@vocab': 'https://www.w3.org/ns/activitystreams#',
|
|
98
|
-
atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
|
|
99
|
-
schema: 'http://schema.org/'
|
|
100
|
-
},
|
|
101
|
-
'@type': 'Object',
|
|
102
|
-
name: 'I love cheese',
|
|
103
|
-
url: 'https://some.url'
|
|
104
|
-
}
|
|
101
|
+
data: errorResponseData
|
|
105
102
|
},
|
|
106
103
|
forbidden: {
|
|
107
104
|
meta: {
|
|
@@ -115,16 +112,7 @@ var mocks = {
|
|
|
115
112
|
definitionId: 'd1',
|
|
116
113
|
key: 'object-provider'
|
|
117
114
|
},
|
|
118
|
-
data:
|
|
119
|
-
'@context': {
|
|
120
|
-
'@vocab': 'https://www.w3.org/ns/activitystreams#',
|
|
121
|
-
atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
|
|
122
|
-
schema: 'http://schema.org/'
|
|
123
|
-
},
|
|
124
|
-
'@type': 'Object',
|
|
125
|
-
name: 'I love cheese',
|
|
126
|
-
url: 'https://some.url'
|
|
127
|
-
}
|
|
115
|
+
data: errorResponseData
|
|
128
116
|
},
|
|
129
117
|
forbiddenWithNoAuth: {
|
|
130
118
|
meta: {
|
|
@@ -134,16 +122,7 @@ var mocks = {
|
|
|
134
122
|
definitionId: 'd1',
|
|
135
123
|
key: 'object-provider'
|
|
136
124
|
},
|
|
137
|
-
data:
|
|
138
|
-
'@context': {
|
|
139
|
-
'@vocab': 'https://www.w3.org/ns/activitystreams#',
|
|
140
|
-
atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
|
|
141
|
-
schema: 'http://schema.org/'
|
|
142
|
-
},
|
|
143
|
-
'@type': 'Object',
|
|
144
|
-
name: 'I love cheese',
|
|
145
|
-
url: 'https://some.url'
|
|
146
|
-
}
|
|
125
|
+
data: errorResponseData
|
|
147
126
|
},
|
|
148
127
|
unauthorized: {
|
|
149
128
|
meta: {
|
|
@@ -157,16 +136,7 @@ var mocks = {
|
|
|
157
136
|
definitionId: 'd1',
|
|
158
137
|
key: 'object-provider'
|
|
159
138
|
},
|
|
160
|
-
data:
|
|
161
|
-
'@context': {
|
|
162
|
-
'@vocab': 'https://www.w3.org/ns/activitystreams#',
|
|
163
|
-
atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
|
|
164
|
-
schema: 'http://schema.org/'
|
|
165
|
-
},
|
|
166
|
-
'@type': 'Object',
|
|
167
|
-
name: 'I love cheese',
|
|
168
|
-
url: 'https://some.url'
|
|
169
|
-
}
|
|
139
|
+
data: errorResponseData
|
|
170
140
|
},
|
|
171
141
|
unauthorizedWithNoAuth: {
|
|
172
142
|
meta: {
|
|
@@ -176,16 +146,7 @@ var mocks = {
|
|
|
176
146
|
definitionId: 'd1',
|
|
177
147
|
key: 'object-provider'
|
|
178
148
|
},
|
|
179
|
-
data:
|
|
180
|
-
'@context': {
|
|
181
|
-
'@vocab': 'https://www.w3.org/ns/activitystreams#',
|
|
182
|
-
atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
|
|
183
|
-
schema: 'http://schema.org/'
|
|
184
|
-
},
|
|
185
|
-
'@type': 'Object',
|
|
186
|
-
name: 'I love cheese',
|
|
187
|
-
url: 'https://some.url'
|
|
188
|
-
}
|
|
149
|
+
data: errorResponseData
|
|
189
150
|
},
|
|
190
151
|
actionSuccess: {
|
|
191
152
|
meta: {
|
|
@@ -209,6 +170,27 @@ var mocks = {
|
|
|
209
170
|
product: 'spaghetti-product'
|
|
210
171
|
}
|
|
211
172
|
}
|
|
173
|
+
},
|
|
174
|
+
withDatasource: {
|
|
175
|
+
meta: {
|
|
176
|
+
visibility: 'public',
|
|
177
|
+
access: 'granted',
|
|
178
|
+
auth: [],
|
|
179
|
+
definitionId: 'd1',
|
|
180
|
+
key: 'object-provider'
|
|
181
|
+
},
|
|
182
|
+
data: successfulResponseData,
|
|
183
|
+
datasources: [{
|
|
184
|
+
key: 'datasource-jira-issues',
|
|
185
|
+
parameters: {
|
|
186
|
+
jql: '(text ~ "test*" OR summary ~ "test*") order by created DESC',
|
|
187
|
+
cloudId: '16f8b71e'
|
|
188
|
+
},
|
|
189
|
+
id: '1234-test-id-321',
|
|
190
|
+
ari: 'ari:cloud:linking-platform::datasource/1234-test-id-321',
|
|
191
|
+
description: 'For extracting a list of Jira issues using JQL',
|
|
192
|
+
name: 'Jira issues'
|
|
193
|
+
}]
|
|
212
194
|
}
|
|
213
195
|
};
|
|
214
196
|
exports.mocks = mocks;
|
|
@@ -67,6 +67,7 @@ function Component(_ref) {
|
|
|
67
67
|
var product = (0, _helpers.getProduct)(state.details);
|
|
68
68
|
var subproduct = (0, _helpers.getSubproduct)(state.details);
|
|
69
69
|
var services = (0, _helpers.getServices)(state.details);
|
|
70
|
+
var canBeDatasource = (0, _helpers.getCanBeDatasource)(state.details);
|
|
70
71
|
var isFlexibleUi = (0, _react.useMemo)(function () {
|
|
71
72
|
return (0, _flexible.isFlexibleUiCard)(children);
|
|
72
73
|
}, [children]);
|
|
@@ -144,10 +145,11 @@ function Component(_ref) {
|
|
|
144
145
|
status: state.status,
|
|
145
146
|
id: id,
|
|
146
147
|
definitionId: definitionId,
|
|
147
|
-
extensionKey: extensionKey
|
|
148
|
+
extensionKey: extensionKey,
|
|
149
|
+
canBeDatasource: canBeDatasource
|
|
148
150
|
});
|
|
149
151
|
}
|
|
150
|
-
}, [isFlexibleUi, appearance, state.status, url, definitionId, extensionKey, analytics.ui, id]);
|
|
152
|
+
}, [isFlexibleUi, appearance, state.status, url, definitionId, extensionKey, analytics.ui, id, canBeDatasource]);
|
|
151
153
|
var onIframeDwell = (0, _react.useCallback)(function (dwellTime, dwellPercentVisible) {
|
|
152
154
|
analytics.ui.iframeDwelledEvent({
|
|
153
155
|
id: id,
|
|
@@ -11,12 +11,12 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
11
11
|
var _react2 = require("@emotion/react");
|
|
12
12
|
var _constants = require("../../../../../constants");
|
|
13
13
|
var _resolved = _interopRequireDefault(require("./resolved"));
|
|
14
|
-
var _excluded = ["status", "testId"];
|
|
14
|
+
var _excluded = ["status", "testId", "overrideUrl"];
|
|
15
15
|
/** @jsx jsx */
|
|
16
16
|
/**
|
|
17
17
|
* Represents a PreviewBlock, which typically contains media or other large format content.
|
|
18
18
|
* @public
|
|
19
|
-
* @param {
|
|
19
|
+
* @param {PreviewBlockProps} PreviewBlock
|
|
20
20
|
* @see Block
|
|
21
21
|
*/
|
|
22
22
|
var PreviewBlock = function PreviewBlock(_ref) {
|
|
@@ -24,12 +24,14 @@ var PreviewBlock = function PreviewBlock(_ref) {
|
|
|
24
24
|
status = _ref$status === void 0 ? _constants.SmartLinkStatus.Fallback : _ref$status,
|
|
25
25
|
_ref$testId = _ref.testId,
|
|
26
26
|
testId = _ref$testId === void 0 ? 'smart-block-preview' : _ref$testId,
|
|
27
|
+
overrideUrl = _ref.overrideUrl,
|
|
27
28
|
blockProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
28
29
|
if (status !== _constants.SmartLinkStatus.Resolved) {
|
|
29
30
|
return null;
|
|
30
31
|
}
|
|
31
32
|
return (0, _react2.jsx)(_resolved.default, (0, _extends2.default)({}, blockProps, {
|
|
32
|
-
testId: testId
|
|
33
|
+
testId: testId,
|
|
34
|
+
overrideUrl: overrideUrl
|
|
33
35
|
}));
|
|
34
36
|
};
|
|
35
37
|
var _default = PreviewBlock;
|
|
@@ -15,7 +15,7 @@ var _react2 = require("@emotion/react");
|
|
|
15
15
|
var _constants = require("../../../../../../constants");
|
|
16
16
|
var _block = _interopRequireDefault(require("../../block"));
|
|
17
17
|
var _elements = require("../../../elements");
|
|
18
|
-
var _excluded = ["ignoreContainerPadding", "onError", "overrideCss", "placement", "testId"];
|
|
18
|
+
var _excluded = ["ignoreContainerPadding", "onError", "overrideCss", "placement", "testId", "overrideUrl"];
|
|
19
19
|
var _templateObject, _templateObject2, _templateObject3;
|
|
20
20
|
/** @jsx jsx */
|
|
21
21
|
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); }
|
|
@@ -58,6 +58,7 @@ var PreviewBlockResolvedView = function PreviewBlockResolvedView(_ref) {
|
|
|
58
58
|
overrideCss = _ref.overrideCss,
|
|
59
59
|
placement = _ref.placement,
|
|
60
60
|
testId = _ref.testId,
|
|
61
|
+
overrideUrl = _ref.overrideUrl,
|
|
61
62
|
blockProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
62
63
|
var _useState = (0, _react.useState)(overrideCss),
|
|
63
64
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
@@ -82,7 +83,8 @@ var PreviewBlockResolvedView = function PreviewBlockResolvedView(_ref) {
|
|
|
82
83
|
testId: "".concat(testId, "-resolved-view")
|
|
83
84
|
}), (0, _react2.jsx)(_elements.Preview, {
|
|
84
85
|
onError: handleOnError,
|
|
85
|
-
onLoad: handleOnLoad
|
|
86
|
+
onLoad: handleOnLoad,
|
|
87
|
+
overrideUrl: overrideUrl
|
|
86
88
|
}));
|
|
87
89
|
};
|
|
88
90
|
var _default = PreviewBlockResolvedView;
|
|
@@ -1,11 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
|
-
exports.
|
|
7
|
+
exports.OwnedByGroup = exports.OwnedBy = exports.ModifiedOn = exports.ModifiedBy = exports.Location = exports.LinkIcon = exports.LatestCommit = exports.DueOn = exports.CreatedOn = exports.CreatedBy = exports.CommentCount = exports.CollaboratorGroup = exports.ChecklistProgress = exports.AuthorGroup = exports.AttachmentCount = exports.AssignedToGroup = exports.AssignedTo = void 0;
|
|
8
|
+
Object.defineProperty(exports, "Preview", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _preview.default;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
exports.VoteCount = exports.ViewCount = exports.Title = exports.TargetBranch = exports.SubscriberCount = exports.SubTasksProgress = exports.StoryPoints = exports.State = exports.SourceBranch = exports.Snippet = exports.SentOn = exports.ReadTime = exports.ReactCount = exports.Provider = exports.ProgrammingLanguage = exports.Priority = void 0;
|
|
7
15
|
var _utils = require("./utils");
|
|
8
16
|
var _constants = require("../../../../constants");
|
|
17
|
+
var _preview = _interopRequireDefault(require("./preview"));
|
|
9
18
|
// Attention: Keep the export name and element name the same.
|
|
10
19
|
// This will help reducing the code for mapping elements inside
|
|
11
20
|
// createElement and renderElementItems
|
|
@@ -115,12 +124,10 @@ var OwnedByGroup = (0, _utils.createElement)(_constants.ElementName.OwnedByGroup
|
|
|
115
124
|
* @see Preview
|
|
116
125
|
*/
|
|
117
126
|
exports.OwnedByGroup = OwnedByGroup;
|
|
118
|
-
var Preview = (0, _utils.createElement)(_constants.ElementName.Preview);
|
|
119
127
|
/**
|
|
120
128
|
* Creates a Priority Badge element using the data from Priority in the Flexible UI Context.
|
|
121
129
|
* @see Badge
|
|
122
130
|
*/
|
|
123
|
-
exports.Preview = Preview;
|
|
124
131
|
var Priority = (0, _utils.createElement)(_constants.ElementName.Priority);
|
|
125
132
|
/**
|
|
126
133
|
* Creates a ProgrammingLanguage Badge element using the data from ProgrammingLanguage in the Flexible UI Context.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _react2 = require("@emotion/react");
|
|
13
|
+
var _flexibleUiContext = require("../../../../../state/flexible-ui-context");
|
|
14
|
+
var _constants = require("../../../../../constants");
|
|
15
|
+
var _media = _interopRequireDefault(require("../media"));
|
|
16
|
+
var _excluded = ["overrideUrl"];
|
|
17
|
+
/** @jsx jsx */
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
|
+
var Preview = function Preview(props) {
|
|
21
|
+
var _ref = props !== null && props !== void 0 ? props : {},
|
|
22
|
+
overrideUrl = _ref.overrideUrl,
|
|
23
|
+
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
24
|
+
var context = (0, _react.useContext)(_flexibleUiContext.FlexibleUiContext);
|
|
25
|
+
var data = overrideUrl ? {
|
|
26
|
+
url: overrideUrl,
|
|
27
|
+
type: _constants.MediaType.Image
|
|
28
|
+
} : context === null || context === void 0 ? void 0 : context.preview;
|
|
29
|
+
if (!data) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
return (0, _react2.jsx)(_media.default, (0, _extends2.default)({}, rest, data));
|
|
33
|
+
};
|
|
34
|
+
var _default = Preview;
|
|
35
|
+
exports.default = _default;
|
|
@@ -19,6 +19,7 @@ var _extractMetadata = require("../../../../../extractors/hover/extractMetadata"
|
|
|
19
19
|
var _messages = require("../../../../../messages");
|
|
20
20
|
var _reactIntlNext = require("react-intl-next");
|
|
21
21
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
22
|
+
var _helpers = require("../../../../../state/helpers");
|
|
22
23
|
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); }
|
|
23
24
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
24
25
|
var toFooterActions = function toFooterActions(cardActions, onActionClick) {
|
|
@@ -69,14 +70,16 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
|
|
|
69
70
|
cardActions = _ref$cardActions === void 0 ? [] : _ref$cardActions,
|
|
70
71
|
onActionClick = _ref.onActionClick,
|
|
71
72
|
extensionKey = _ref.extensionKey;
|
|
73
|
+
var canBeDatasource = (0, _helpers.getCanBeDatasource)(cardState.details);
|
|
72
74
|
(0, _react.useEffect)(function () {
|
|
73
75
|
// Since this hover view is only rendered on resolved status,
|
|
74
76
|
// there is no need to check for statuses.
|
|
75
77
|
analytics.ui.renderSuccessEvent({
|
|
76
78
|
display: _constants.CardDisplay.HoverCardPreview,
|
|
77
|
-
status: cardState.status
|
|
79
|
+
status: cardState.status,
|
|
80
|
+
canBeDatasource: canBeDatasource
|
|
78
81
|
});
|
|
79
|
-
}, [analytics.ui, cardState.status]);
|
|
82
|
+
}, [analytics.ui, cardState.status, canBeDatasource]);
|
|
80
83
|
var footerActions = (0, _react.useMemo)(function () {
|
|
81
84
|
return toFooterActions(cardActions, onActionClick);
|
|
82
85
|
}, [cardActions, onActionClick]);
|
|
@@ -18,7 +18,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId"],
|
|
|
18
18
|
_excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
|
|
19
19
|
var PACKAGE_DATA = {
|
|
20
20
|
packageName: "@atlaskit/smart-card",
|
|
21
|
-
packageVersion: "26.
|
|
21
|
+
packageVersion: "26.28.0",
|
|
22
22
|
componentName: 'linkUrl'
|
|
23
23
|
};
|
|
24
24
|
var Link = (0, _click.withLinkClickedEvent)('a');
|
|
@@ -336,6 +336,7 @@ export const useSmartLinkAnalytics = (url, _dispatchAnalytics, id, defaultLocati
|
|
|
336
336
|
* @param id The unique ID for this Smart Link.
|
|
337
337
|
* @param definitionId The definitionId of the Smart Link resolver invoked.
|
|
338
338
|
* @param extensionKey The extensionKey of the Smart Link resovler invoked.
|
|
339
|
+
* @param canBeDatasource An indicator that shows that a smart link can be converted to a datasource
|
|
339
340
|
*/
|
|
340
341
|
renderSuccessEvent: ({
|
|
341
342
|
display,
|
|
@@ -346,7 +347,8 @@ export const useSmartLinkAnalytics = (url, _dispatchAnalytics, id, defaultLocati
|
|
|
346
347
|
resourceType,
|
|
347
348
|
destinationProduct,
|
|
348
349
|
destinationSubproduct,
|
|
349
|
-
location
|
|
350
|
+
location,
|
|
351
|
+
canBeDatasource = false
|
|
350
352
|
}) => {
|
|
351
353
|
const experienceId = id ? id : defaultId;
|
|
352
354
|
succeedUfoExperience('smart-link-rendered', experienceId, {
|
|
@@ -366,7 +368,8 @@ export const useSmartLinkAnalytics = (url, _dispatchAnalytics, id, defaultLocati
|
|
|
366
368
|
resourceType,
|
|
367
369
|
destinationProduct,
|
|
368
370
|
destinationSubproduct,
|
|
369
|
-
location
|
|
371
|
+
location,
|
|
372
|
+
canBeDatasource
|
|
370
373
|
}), commonAttributes));
|
|
371
374
|
},
|
|
372
375
|
/**
|
|
@@ -55,4 +55,9 @@ export const getStatusDetails = details => {
|
|
|
55
55
|
};
|
|
56
56
|
export const isFinalState = status => {
|
|
57
57
|
return ['unauthorized', 'forbidden', 'errored', 'resolved', 'not_found'].indexOf(status) > -1;
|
|
58
|
+
};
|
|
59
|
+
export const getDatasources = details => details === null || details === void 0 ? void 0 : details.datasources;
|
|
60
|
+
export const getCanBeDatasource = details => {
|
|
61
|
+
const datasources = getDatasources(details);
|
|
62
|
+
return !!datasources && datasources.length > 0;
|
|
58
63
|
};
|
|
@@ -4,7 +4,7 @@ export const ANALYTICS_CHANNEL = 'media';
|
|
|
4
4
|
export const context = {
|
|
5
5
|
componentName: 'smart-cards',
|
|
6
6
|
packageName: "@atlaskit/smart-card",
|
|
7
|
-
packageVersion: "26.
|
|
7
|
+
packageVersion: "26.28.0"
|
|
8
8
|
};
|
|
9
9
|
export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
10
10
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -496,7 +496,8 @@ export const uiRenderSuccessEvent = ({
|
|
|
496
496
|
definitionId,
|
|
497
497
|
destinationProduct,
|
|
498
498
|
destinationSubproduct,
|
|
499
|
-
location
|
|
499
|
+
location,
|
|
500
|
+
canBeDatasource
|
|
500
501
|
}) => ({
|
|
501
502
|
action: 'renderSuccess',
|
|
502
503
|
actionSubject: 'smartLink',
|
|
@@ -509,7 +510,8 @@ export const uiRenderSuccessEvent = ({
|
|
|
509
510
|
destinationProduct,
|
|
510
511
|
destinationSubproduct,
|
|
511
512
|
location,
|
|
512
|
-
display
|
|
513
|
+
display,
|
|
514
|
+
canBeDatasource
|
|
513
515
|
}
|
|
514
516
|
});
|
|
515
517
|
export const uiRenderFailedEvent = ({
|