@atlaskit/smart-card 26.41.3 → 26.42.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 +6 -0
- package/dist/cjs/utils/analytics/analytics.js +1 -1
- package/dist/cjs/view/FlexibleCard/components/blocks/related-urls-block/analytics.js +30 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/related-urls-block/index.js +19 -8
- package/dist/cjs/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/index.js +11 -16
- package/dist/cjs/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/related-url-item/index.js +9 -1
- package/dist/cjs/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/analytics.js +51 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/index.js +54 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/related-urls-block/types.js +5 -0
- package/dist/cjs/view/LinkUrl/index.js +1 -1
- package/dist/es2019/utils/analytics/analytics.js +1 -1
- package/dist/es2019/view/FlexibleCard/components/blocks/related-urls-block/analytics.js +19 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/related-urls-block/index.js +14 -1
- package/dist/es2019/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/index.js +12 -15
- package/dist/es2019/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/related-url-item/index.js +11 -2
- package/dist/es2019/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/analytics.js +42 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/index.js +44 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/related-urls-block/types.js +1 -0
- package/dist/es2019/view/LinkUrl/index.js +1 -1
- package/dist/esm/utils/analytics/analytics.js +1 -1
- package/dist/esm/view/FlexibleCard/components/blocks/related-urls-block/analytics.js +23 -0
- package/dist/esm/view/FlexibleCard/components/blocks/related-urls-block/index.js +19 -8
- package/dist/esm/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/index.js +12 -17
- package/dist/esm/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/related-url-item/index.js +10 -2
- package/dist/esm/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/analytics.js +44 -0
- package/dist/esm/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/index.js +44 -0
- package/dist/esm/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/blocks/related-urls-block/types.js +1 -0
- package/dist/esm/view/LinkUrl/index.js +1 -1
- package/dist/types/utils/types.d.ts +2 -2
- package/dist/types/view/FlexibleCard/components/blocks/related-urls-block/analytics.d.ts +3 -0
- package/dist/types/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/analytics.d.ts +11 -0
- package/dist/types/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/index.d.ts +4 -0
- package/dist/types/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/types.d.ts +10 -0
- package/dist/types/view/FlexibleCard/components/blocks/related-urls-block/types.d.ts +3 -0
- package/dist/types-ts4.5/utils/types.d.ts +2 -2
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/related-urls-block/analytics.d.ts +3 -0
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/analytics.d.ts +11 -0
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/index.d.ts +4 -0
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/related-urls-block/resolved/related-url-list/resolved-result-stack/types.d.ts +10 -0
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/related-urls-block/types.d.ts +3 -0
- package/package.json +2 -2
- package/report.api.md +2 -0
- package/tmp/api-report-tmp.d.ts +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 26.42.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#42696](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/42696) [`6191f76a929`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6191f76a929) - Adds analytics for related links
|
|
8
|
+
|
|
3
9
|
## 26.41.3
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -22,7 +22,7 @@ var ANALYTICS_CHANNEL = exports.ANALYTICS_CHANNEL = 'media';
|
|
|
22
22
|
var context = exports.context = {
|
|
23
23
|
componentName: 'smart-cards',
|
|
24
24
|
packageName: "@atlaskit/smart-card",
|
|
25
|
-
packageVersion: "26.
|
|
25
|
+
packageVersion: "26.42.0"
|
|
26
26
|
};
|
|
27
27
|
var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
28
28
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.fireRelatedLinksLoadedEvent = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _analytics = require("../../../../../utils/analytics");
|
|
10
|
+
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; }
|
|
11
|
+
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; }
|
|
12
|
+
var createTrackRelatedLinksLoadedEventPayload = function createTrackRelatedLinksLoadedEventPayload(_ref) {
|
|
13
|
+
var relatedLinksCount = _ref.relatedLinksCount;
|
|
14
|
+
return {
|
|
15
|
+
action: 'loaded',
|
|
16
|
+
actionSubject: 'relatedLinks',
|
|
17
|
+
eventType: 'track',
|
|
18
|
+
attributes: {
|
|
19
|
+
relatedLinksCount: relatedLinksCount
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
var fireRelatedLinksLoadedEvent = exports.fireRelatedLinksLoadedEvent = function fireRelatedLinksLoadedEvent(createAnalyticsEvent) {
|
|
24
|
+
return function (attributes) {
|
|
25
|
+
var payload = createTrackRelatedLinksLoadedEventPayload(attributes);
|
|
26
|
+
if (payload) {
|
|
27
|
+
createAnalyticsEvent(_objectSpread({}, payload)).fire(_analytics.ANALYTICS_CHANNEL);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
};
|
|
@@ -15,10 +15,12 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
|
|
|
15
15
|
var _react = _interopRequireWildcard(require("react"));
|
|
16
16
|
var _reactMagneticDi = require("react-magnetic-di");
|
|
17
17
|
var _react2 = require("@emotion/react");
|
|
18
|
+
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
18
19
|
var _useRelatedUrls = _interopRequireDefault(require("../../../../../state/hooks/use-related-urls"));
|
|
19
20
|
var _errored = require("./errored");
|
|
20
21
|
var _resolved = require("./resolved");
|
|
21
22
|
var _resolving = require("./resolving");
|
|
23
|
+
var _analytics = require("./analytics");
|
|
22
24
|
var _templateObject;
|
|
23
25
|
var _excluded = ["testId", "url", "renderers"];
|
|
24
26
|
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); }
|
|
@@ -32,6 +34,8 @@ var RelatedUrlsBlock = function RelatedUrlsBlock(_ref) {
|
|
|
32
34
|
url = _ref.url,
|
|
33
35
|
renderers = _ref.renderers,
|
|
34
36
|
blockProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
37
|
+
var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
|
|
38
|
+
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
35
39
|
var _useState = (0, _react.useState)(true),
|
|
36
40
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
37
41
|
loadingRelatedUrls = _useState2[0],
|
|
@@ -48,7 +52,7 @@ var RelatedUrlsBlock = function RelatedUrlsBlock(_ref) {
|
|
|
48
52
|
(0, _react.useEffect)(function () {
|
|
49
53
|
var fetchRelatedUrls = /*#__PURE__*/function () {
|
|
50
54
|
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
51
|
-
var relUrls;
|
|
55
|
+
var _relUrls$resolvedResu, _relUrls$resolvedResu2, relUrls;
|
|
52
56
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
53
57
|
while (1) switch (_context.prev = _context.next) {
|
|
54
58
|
case 0:
|
|
@@ -58,26 +62,33 @@ var RelatedUrlsBlock = function RelatedUrlsBlock(_ref) {
|
|
|
58
62
|
case 3:
|
|
59
63
|
relUrls = _context.sent;
|
|
60
64
|
setRelatedUrls(relUrls);
|
|
61
|
-
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Fire TrackRelatedLinksLoadedEvent
|
|
68
|
+
*/
|
|
69
|
+
(0, _analytics.fireRelatedLinksLoadedEvent)(createAnalyticsEvent)({
|
|
70
|
+
relatedLinksCount: (_relUrls$resolvedResu = (_relUrls$resolvedResu2 = relUrls.resolvedResults) === null || _relUrls$resolvedResu2 === void 0 ? void 0 : _relUrls$resolvedResu2.length) !== null && _relUrls$resolvedResu !== void 0 ? _relUrls$resolvedResu : 0
|
|
71
|
+
});
|
|
72
|
+
_context.next = 11;
|
|
62
73
|
break;
|
|
63
|
-
case
|
|
64
|
-
_context.prev =
|
|
74
|
+
case 8:
|
|
75
|
+
_context.prev = 8;
|
|
65
76
|
_context.t0 = _context["catch"](0);
|
|
66
77
|
setErr(_context.t0);
|
|
67
|
-
case 10:
|
|
68
|
-
setLoadingRelatedUrls(false);
|
|
69
78
|
case 11:
|
|
79
|
+
setLoadingRelatedUrls(false);
|
|
80
|
+
case 12:
|
|
70
81
|
case "end":
|
|
71
82
|
return _context.stop();
|
|
72
83
|
}
|
|
73
|
-
}, _callee, null, [[0,
|
|
84
|
+
}, _callee, null, [[0, 8]]);
|
|
74
85
|
}));
|
|
75
86
|
return function fetchRelatedUrls() {
|
|
76
87
|
return _ref2.apply(this, arguments);
|
|
77
88
|
};
|
|
78
89
|
}();
|
|
79
90
|
fetchRelatedUrls();
|
|
80
|
-
}, [getRelatedUrls, url]);
|
|
91
|
+
}, [createAnalyticsEvent, getRelatedUrls, url]);
|
|
81
92
|
if (loadingRelatedUrls) {
|
|
82
93
|
return /*#__PURE__*/_react.default.createElement(_resolving.RelatedUrlsBlockResolvingView, (0, _extends2.default)({
|
|
83
94
|
testId: "".concat(testId, "-resolving-view")
|
|
@@ -17,7 +17,7 @@ var _react2 = require("@emotion/react");
|
|
|
17
17
|
var _messages = require("../../../../../../../messages");
|
|
18
18
|
var _utils = require("../../../../../components/utils");
|
|
19
19
|
var _text = _interopRequireDefault(require("../../../../elements/text"));
|
|
20
|
-
var
|
|
20
|
+
var _resolvedResultStack = _interopRequireDefault(require("./resolved-result-stack"));
|
|
21
21
|
var _templateObject;
|
|
22
22
|
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
23
|
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; }
|
|
@@ -36,19 +36,6 @@ var RelatedUrlList = function RelatedUrlList(_ref) {
|
|
|
36
36
|
}, [isOpen]);
|
|
37
37
|
var ChevronComponent = isOpen ? _chevronUp.default : _chevronDown.default;
|
|
38
38
|
var intl = (0, _reactIntlNext.useIntl)();
|
|
39
|
-
var resolvedResultsStack = (0, _react.useMemo)(function () {
|
|
40
|
-
return /*#__PURE__*/_react.default.createElement(_primitives.Stack, {
|
|
41
|
-
space: "space.050",
|
|
42
|
-
testId: "".concat(testId, "-items-wrapper")
|
|
43
|
-
}, resolvedResults.map(function (resolvedResults, idx) {
|
|
44
|
-
return /*#__PURE__*/_react.default.createElement(_relatedUrlItem.default, {
|
|
45
|
-
testId: "".concat(testId, "-item"),
|
|
46
|
-
key: idx,
|
|
47
|
-
results: resolvedResults,
|
|
48
|
-
renderers: renderers
|
|
49
|
-
});
|
|
50
|
-
}));
|
|
51
|
-
}, [renderers, resolvedResults, testId]);
|
|
52
39
|
return resolvedResults.length > 0 ? /*#__PURE__*/_react.default.createElement(_primitives.Stack, {
|
|
53
40
|
testId: testId,
|
|
54
41
|
xcss: (0, _primitives.xcss)({
|
|
@@ -56,7 +43,11 @@ var RelatedUrlList = function RelatedUrlList(_ref) {
|
|
|
56
43
|
})
|
|
57
44
|
}, /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
58
45
|
onClick: chevronClickHandler,
|
|
59
|
-
testId: "".concat(testId, "-expand-title")
|
|
46
|
+
testId: "".concat(testId, "-expand-title"),
|
|
47
|
+
as: "button",
|
|
48
|
+
backgroundColor: "color.background.neutral.subtle",
|
|
49
|
+
"aria-expanded": !!isOpen,
|
|
50
|
+
padding: "space.0"
|
|
60
51
|
}, /*#__PURE__*/_react.default.createElement(_primitives.Inline, {
|
|
61
52
|
alignBlock: "center",
|
|
62
53
|
spread: "space-between"
|
|
@@ -68,7 +59,11 @@ var RelatedUrlList = function RelatedUrlList(_ref) {
|
|
|
68
59
|
}), /*#__PURE__*/_react.default.createElement(ChevronComponent, {
|
|
69
60
|
label: (0, _utils.getFormattedMessageAsString)(intl, title),
|
|
70
61
|
size: 'medium'
|
|
71
|
-
}))), isOpen &&
|
|
62
|
+
}))), isOpen && /*#__PURE__*/_react.default.createElement(_resolvedResultStack.default, {
|
|
63
|
+
resolvedResults: resolvedResults,
|
|
64
|
+
testId: testId,
|
|
65
|
+
renderers: renderers
|
|
66
|
+
})) : /*#__PURE__*/_react.default.createElement(_text.default, {
|
|
72
67
|
testId: testId,
|
|
73
68
|
message: {
|
|
74
69
|
descriptor: _messages.messages.related_work_items_not_found
|
|
@@ -9,22 +9,29 @@ exports.default = void 0;
|
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
10
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
11
|
var _primitives = require("@atlaskit/primitives");
|
|
12
|
+
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
12
13
|
var _constants = require("../../../../../../../../constants");
|
|
13
14
|
var _flexible = _interopRequireDefault(require("../../../../../../../../extractors/flexible"));
|
|
14
15
|
var _icon = _interopRequireDefault(require("../../../../../elements/icon"));
|
|
15
16
|
var _link = _interopRequireDefault(require("../../../../../elements/link"));
|
|
17
|
+
var _click = require("../../../../../../../../utils/analytics/click");
|
|
16
18
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
19
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
20
|
var RelatedUrlItem = function RelatedUrlItem(_ref) {
|
|
19
21
|
var results = _ref.results,
|
|
20
22
|
renderers = _ref.renderers,
|
|
21
23
|
testId = _ref.testId;
|
|
24
|
+
var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
|
|
25
|
+
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
22
26
|
var flexibleDataContext = (0, _react.useMemo)(function () {
|
|
23
27
|
return (0, _flexible.default)({
|
|
24
28
|
response: results,
|
|
25
29
|
renderers: renderers
|
|
26
30
|
});
|
|
27
31
|
}, [renderers, results]);
|
|
32
|
+
var onClick = (0, _react.useCallback)(function (event) {
|
|
33
|
+
(0, _click.fireLinkClickedEvent)(createAnalyticsEvent)(event);
|
|
34
|
+
}, [createAnalyticsEvent]);
|
|
28
35
|
return /*#__PURE__*/_react.default.createElement(_primitives.Inline, {
|
|
29
36
|
alignBlock: "center",
|
|
30
37
|
space: "space.050",
|
|
@@ -37,7 +44,8 @@ var RelatedUrlItem = function RelatedUrlItem(_ref) {
|
|
|
37
44
|
text: flexibleDataContext === null || flexibleDataContext === void 0 ? void 0 : flexibleDataContext.title,
|
|
38
45
|
url: flexibleDataContext === null || flexibleDataContext === void 0 ? void 0 : flexibleDataContext.url,
|
|
39
46
|
size: _constants.SmartLinkSize.Small,
|
|
40
|
-
maxLines: 1
|
|
47
|
+
maxLines: 1,
|
|
48
|
+
onClick: onClick
|
|
41
49
|
}));
|
|
42
50
|
};
|
|
43
51
|
var _default = exports.default = RelatedUrlItem;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.fireRelatedLinksViewedEvent = exports.RelatedUrlItemAnalyticsContext = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
11
|
+
var _resolvedAttributes = require("@atlaskit/link-analytics/resolved-attributes");
|
|
12
|
+
var _analytics = require("../../../../../../../../utils/analytics");
|
|
13
|
+
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; }
|
|
14
|
+
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; }
|
|
15
|
+
var createUiRelatedLinksViewedEventPayload = function createUiRelatedLinksViewedEventPayload(_ref) {
|
|
16
|
+
var relatedLinksCount = _ref.relatedLinksCount;
|
|
17
|
+
return {
|
|
18
|
+
action: 'viewed',
|
|
19
|
+
actionSubject: 'relatedLinks',
|
|
20
|
+
eventType: 'ui',
|
|
21
|
+
attributes: {
|
|
22
|
+
relatedLinksCount: relatedLinksCount
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
var fireRelatedLinksViewedEvent = exports.fireRelatedLinksViewedEvent = function fireRelatedLinksViewedEvent(createAnalyticsEvent) {
|
|
27
|
+
return function (attributes) {
|
|
28
|
+
var payload = createUiRelatedLinksViewedEventPayload(attributes);
|
|
29
|
+
if (payload) {
|
|
30
|
+
createAnalyticsEvent(_objectSpread({}, payload)).fire(_analytics.ANALYTICS_CHANNEL);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
var RelatedUrlItemAnalyticsContext = exports.RelatedUrlItemAnalyticsContext = function RelatedUrlItemAnalyticsContext(props) {
|
|
35
|
+
var children = props.children,
|
|
36
|
+
details = props.details;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* We don't really need the `url` to get the attributes here so set
|
|
40
|
+
* it to an empty string to just make typescript happy
|
|
41
|
+
*/
|
|
42
|
+
var attributes = (0, _resolvedAttributes.getResolvedAttributes)({
|
|
43
|
+
url: ''
|
|
44
|
+
}, details);
|
|
45
|
+
return /*#__PURE__*/_react.default.createElement(_analyticsNext.AnalyticsContext, {
|
|
46
|
+
data: {
|
|
47
|
+
attributes: attributes,
|
|
48
|
+
component: 'relatedLink'
|
|
49
|
+
}
|
|
50
|
+
}, children);
|
|
51
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
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 _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _primitives = require("@atlaskit/primitives");
|
|
11
|
+
var _analyticsNext = require("@atlaskit/analytics-next");
|
|
12
|
+
var _relatedUrlItem = _interopRequireDefault(require("../related-url-item"));
|
|
13
|
+
var _analytics = require("./analytics");
|
|
14
|
+
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); }
|
|
15
|
+
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; }
|
|
16
|
+
var ResolvedResultsStack = function ResolvedResultsStack(_ref) {
|
|
17
|
+
var resolvedResults = _ref.resolvedResults,
|
|
18
|
+
testId = _ref.testId,
|
|
19
|
+
renderers = _ref.renderers;
|
|
20
|
+
var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
|
|
21
|
+
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
22
|
+
(0, _react.useEffect)(function () {
|
|
23
|
+
// This event will fire each time the component is loaded
|
|
24
|
+
(0, _analytics.fireRelatedLinksViewedEvent)(createAnalyticsEvent)({
|
|
25
|
+
relatedLinksCount: resolvedResults.length
|
|
26
|
+
});
|
|
27
|
+
}, [resolvedResults.length, createAnalyticsEvent]);
|
|
28
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.Stack, {
|
|
29
|
+
space: "space.050",
|
|
30
|
+
testId: "".concat(testId, "-items-wrapper"),
|
|
31
|
+
as: "ul",
|
|
32
|
+
xcss: (0, _primitives.xcss)({
|
|
33
|
+
paddingLeft: '0px',
|
|
34
|
+
marginTop: '0px'
|
|
35
|
+
})
|
|
36
|
+
}, resolvedResults.map(function (resolvedResults, idx) {
|
|
37
|
+
return /*#__PURE__*/_react.default.createElement(_analytics.RelatedUrlItemAnalyticsContext, {
|
|
38
|
+
details: resolvedResults,
|
|
39
|
+
key: idx
|
|
40
|
+
}, /*#__PURE__*/_react.default.createElement(_relatedUrlItem.default, {
|
|
41
|
+
testId: "".concat(testId, "-item"),
|
|
42
|
+
results: resolvedResults,
|
|
43
|
+
renderers: renderers
|
|
44
|
+
}));
|
|
45
|
+
}));
|
|
46
|
+
};
|
|
47
|
+
var ResolvedResultsStackWithAnalytics = function ResolvedResultsStackWithAnalytics(props) {
|
|
48
|
+
return /*#__PURE__*/_react.default.createElement(_analyticsNext.AnalyticsContext, {
|
|
49
|
+
data: {
|
|
50
|
+
component: 'relatedLinksSection'
|
|
51
|
+
}
|
|
52
|
+
}, /*#__PURE__*/_react.default.createElement(ResolvedResultsStack, props));
|
|
53
|
+
};
|
|
54
|
+
var _default = exports.default = ResolvedResultsStackWithAnalytics;
|
|
@@ -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.42.0",
|
|
22
22
|
componentName: 'linkUrl'
|
|
23
23
|
};
|
|
24
24
|
var Link = (0, _click.withLinkClickedEvent)('a');
|
|
@@ -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.42.0"
|
|
8
8
|
};
|
|
9
9
|
export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
10
10
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ANALYTICS_CHANNEL } from '../../../../../utils/analytics';
|
|
2
|
+
const createTrackRelatedLinksLoadedEventPayload = ({
|
|
3
|
+
relatedLinksCount
|
|
4
|
+
}) => ({
|
|
5
|
+
action: 'loaded',
|
|
6
|
+
actionSubject: 'relatedLinks',
|
|
7
|
+
eventType: 'track',
|
|
8
|
+
attributes: {
|
|
9
|
+
relatedLinksCount
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
export const fireRelatedLinksLoadedEvent = createAnalyticsEvent => attributes => {
|
|
13
|
+
const payload = createTrackRelatedLinksLoadedEventPayload(attributes);
|
|
14
|
+
if (payload) {
|
|
15
|
+
createAnalyticsEvent({
|
|
16
|
+
...payload
|
|
17
|
+
}).fire(ANALYTICS_CHANNEL);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
@@ -2,10 +2,12 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
2
2
|
import React, { useEffect, useState } from 'react';
|
|
3
3
|
import { di } from 'react-magnetic-di';
|
|
4
4
|
import { css } from '@emotion/react';
|
|
5
|
+
import { useAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
5
6
|
import useRelatedUrls from '../../../../../state/hooks/use-related-urls';
|
|
6
7
|
import { RelatedUrlsBlockErroredView } from './errored';
|
|
7
8
|
import { RelatedUrlsResolvedView } from './resolved';
|
|
8
9
|
import { RelatedUrlsBlockResolvingView } from './resolving';
|
|
10
|
+
import { fireRelatedLinksLoadedEvent } from './analytics';
|
|
9
11
|
/**
|
|
10
12
|
* Represents a block to display related resources of a url
|
|
11
13
|
*/
|
|
@@ -15,6 +17,9 @@ const RelatedUrlsBlock = ({
|
|
|
15
17
|
renderers,
|
|
16
18
|
...blockProps
|
|
17
19
|
}) => {
|
|
20
|
+
const {
|
|
21
|
+
createAnalyticsEvent
|
|
22
|
+
} = useAnalyticsEvents();
|
|
18
23
|
const [loadingRelatedUrls, setLoadingRelatedUrls] = useState(true);
|
|
19
24
|
const [err, setErr] = useState();
|
|
20
25
|
const [relatedUrls, setRelatedUrls] = useState();
|
|
@@ -22,15 +27,23 @@ const RelatedUrlsBlock = ({
|
|
|
22
27
|
useEffect(() => {
|
|
23
28
|
const fetchRelatedUrls = async () => {
|
|
24
29
|
try {
|
|
30
|
+
var _relUrls$resolvedResu, _relUrls$resolvedResu2;
|
|
25
31
|
const relUrls = await getRelatedUrls(url);
|
|
26
32
|
setRelatedUrls(relUrls);
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Fire TrackRelatedLinksLoadedEvent
|
|
36
|
+
*/
|
|
37
|
+
fireRelatedLinksLoadedEvent(createAnalyticsEvent)({
|
|
38
|
+
relatedLinksCount: (_relUrls$resolvedResu = (_relUrls$resolvedResu2 = relUrls.resolvedResults) === null || _relUrls$resolvedResu2 === void 0 ? void 0 : _relUrls$resolvedResu2.length) !== null && _relUrls$resolvedResu !== void 0 ? _relUrls$resolvedResu : 0
|
|
39
|
+
});
|
|
27
40
|
} catch (error) {
|
|
28
41
|
setErr(error);
|
|
29
42
|
}
|
|
30
43
|
setLoadingRelatedUrls(false);
|
|
31
44
|
};
|
|
32
45
|
fetchRelatedUrls();
|
|
33
|
-
}, [getRelatedUrls, url]);
|
|
46
|
+
}, [createAnalyticsEvent, getRelatedUrls, url]);
|
|
34
47
|
if (loadingRelatedUrls) {
|
|
35
48
|
return /*#__PURE__*/React.createElement(RelatedUrlsBlockResolvingView, _extends({
|
|
36
49
|
testId: `${testId}-resolving-view`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useCallback,
|
|
1
|
+
import React, { useCallback, useState } from 'react';
|
|
2
2
|
import { useIntl } from 'react-intl-next';
|
|
3
3
|
import ChevronDownIcon from '@atlaskit/icon/glyph/chevron-down';
|
|
4
4
|
import ChevronUpIcon from '@atlaskit/icon/glyph/chevron-up';
|
|
@@ -7,7 +7,7 @@ import { css } from '@emotion/react';
|
|
|
7
7
|
import { messages } from '../../../../../../../messages';
|
|
8
8
|
import { getFormattedMessageAsString } from '../../../../../components/utils';
|
|
9
9
|
import Text from '../../../../elements/text';
|
|
10
|
-
import
|
|
10
|
+
import ResolvedResultsStack from './resolved-result-stack';
|
|
11
11
|
const RelatedUrlList = ({
|
|
12
12
|
resolvedResults,
|
|
13
13
|
title,
|
|
@@ -19,17 +19,6 @@ const RelatedUrlList = ({
|
|
|
19
19
|
const chevronClickHandler = useCallback(() => setIsOpen(!isOpen), [isOpen]);
|
|
20
20
|
const ChevronComponent = isOpen ? ChevronUpIcon : ChevronDownIcon;
|
|
21
21
|
const intl = useIntl();
|
|
22
|
-
const resolvedResultsStack = useMemo(() => {
|
|
23
|
-
return /*#__PURE__*/React.createElement(Stack, {
|
|
24
|
-
space: "space.050",
|
|
25
|
-
testId: `${testId}-items-wrapper`
|
|
26
|
-
}, resolvedResults.map((resolvedResults, idx) => /*#__PURE__*/React.createElement(RelatedUrlItem, {
|
|
27
|
-
testId: `${testId}-item`,
|
|
28
|
-
key: idx,
|
|
29
|
-
results: resolvedResults,
|
|
30
|
-
renderers: renderers
|
|
31
|
-
})));
|
|
32
|
-
}, [renderers, resolvedResults, testId]);
|
|
33
22
|
return resolvedResults.length > 0 ? /*#__PURE__*/React.createElement(Stack, {
|
|
34
23
|
testId: testId,
|
|
35
24
|
xcss: xcss({
|
|
@@ -37,7 +26,11 @@ const RelatedUrlList = ({
|
|
|
37
26
|
})
|
|
38
27
|
}, /*#__PURE__*/React.createElement(Box, {
|
|
39
28
|
onClick: chevronClickHandler,
|
|
40
|
-
testId: `${testId}-expand-title
|
|
29
|
+
testId: `${testId}-expand-title`,
|
|
30
|
+
as: "button",
|
|
31
|
+
backgroundColor: "color.background.neutral.subtle",
|
|
32
|
+
"aria-expanded": !!isOpen,
|
|
33
|
+
padding: "space.0"
|
|
41
34
|
}, /*#__PURE__*/React.createElement(Inline, {
|
|
42
35
|
alignBlock: "center",
|
|
43
36
|
spread: "space-between"
|
|
@@ -51,7 +44,11 @@ const RelatedUrlList = ({
|
|
|
51
44
|
}), /*#__PURE__*/React.createElement(ChevronComponent, {
|
|
52
45
|
label: getFormattedMessageAsString(intl, title),
|
|
53
46
|
size: 'medium'
|
|
54
|
-
}))), isOpen &&
|
|
47
|
+
}))), isOpen && /*#__PURE__*/React.createElement(ResolvedResultsStack, {
|
|
48
|
+
resolvedResults: resolvedResults,
|
|
49
|
+
testId: testId,
|
|
50
|
+
renderers: renderers
|
|
51
|
+
})) : /*#__PURE__*/React.createElement(Text, {
|
|
55
52
|
testId: testId,
|
|
56
53
|
message: {
|
|
57
54
|
descriptor: messages.related_work_items_not_found
|
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import React, { useMemo } from 'react';
|
|
2
|
+
import React, { useCallback, useMemo } from 'react';
|
|
3
3
|
import { Inline } from '@atlaskit/primitives';
|
|
4
|
+
import { useAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
4
5
|
import { SmartLinkSize } from '../../../../../../../../constants';
|
|
5
6
|
import extractFlexibleUiContext from '../../../../../../../../extractors/flexible';
|
|
6
7
|
import Icon from '../../../../../elements/icon';
|
|
7
8
|
import Link from '../../../../../elements/link';
|
|
9
|
+
import { fireLinkClickedEvent } from '../../../../../../../../utils/analytics/click';
|
|
8
10
|
const RelatedUrlItem = ({
|
|
9
11
|
results,
|
|
10
12
|
renderers,
|
|
11
13
|
testId
|
|
12
14
|
}) => {
|
|
15
|
+
const {
|
|
16
|
+
createAnalyticsEvent
|
|
17
|
+
} = useAnalyticsEvents();
|
|
13
18
|
const flexibleDataContext = useMemo(() => extractFlexibleUiContext({
|
|
14
19
|
response: results,
|
|
15
20
|
renderers
|
|
16
21
|
}), [renderers, results]);
|
|
22
|
+
const onClick = useCallback(event => {
|
|
23
|
+
fireLinkClickedEvent(createAnalyticsEvent)(event);
|
|
24
|
+
}, [createAnalyticsEvent]);
|
|
17
25
|
return /*#__PURE__*/React.createElement(Inline, {
|
|
18
26
|
alignBlock: "center",
|
|
19
27
|
space: "space.050",
|
|
@@ -26,7 +34,8 @@ const RelatedUrlItem = ({
|
|
|
26
34
|
text: flexibleDataContext === null || flexibleDataContext === void 0 ? void 0 : flexibleDataContext.title,
|
|
27
35
|
url: flexibleDataContext === null || flexibleDataContext === void 0 ? void 0 : flexibleDataContext.url,
|
|
28
36
|
size: SmartLinkSize.Small,
|
|
29
|
-
maxLines: 1
|
|
37
|
+
maxLines: 1,
|
|
38
|
+
onClick: onClick
|
|
30
39
|
}));
|
|
31
40
|
};
|
|
32
41
|
export default RelatedUrlItem;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AnalyticsContext } from '@atlaskit/analytics-next';
|
|
3
|
+
import { getResolvedAttributes } from '@atlaskit/link-analytics/resolved-attributes';
|
|
4
|
+
import { ANALYTICS_CHANNEL } from '../../../../../../../../utils/analytics';
|
|
5
|
+
const createUiRelatedLinksViewedEventPayload = ({
|
|
6
|
+
relatedLinksCount
|
|
7
|
+
}) => ({
|
|
8
|
+
action: 'viewed',
|
|
9
|
+
actionSubject: 'relatedLinks',
|
|
10
|
+
eventType: 'ui',
|
|
11
|
+
attributes: {
|
|
12
|
+
relatedLinksCount
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
export const fireRelatedLinksViewedEvent = createAnalyticsEvent => attributes => {
|
|
16
|
+
const payload = createUiRelatedLinksViewedEventPayload(attributes);
|
|
17
|
+
if (payload) {
|
|
18
|
+
createAnalyticsEvent({
|
|
19
|
+
...payload
|
|
20
|
+
}).fire(ANALYTICS_CHANNEL);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
export const RelatedUrlItemAnalyticsContext = props => {
|
|
24
|
+
const {
|
|
25
|
+
children,
|
|
26
|
+
details
|
|
27
|
+
} = props;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* We don't really need the `url` to get the attributes here so set
|
|
31
|
+
* it to an empty string to just make typescript happy
|
|
32
|
+
*/
|
|
33
|
+
const attributes = getResolvedAttributes({
|
|
34
|
+
url: ''
|
|
35
|
+
}, details);
|
|
36
|
+
return /*#__PURE__*/React.createElement(AnalyticsContext, {
|
|
37
|
+
data: {
|
|
38
|
+
attributes,
|
|
39
|
+
component: 'relatedLink'
|
|
40
|
+
}
|
|
41
|
+
}, children);
|
|
42
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import { Stack, xcss } from '@atlaskit/primitives';
|
|
3
|
+
import { AnalyticsContext, useAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
4
|
+
import RelatedUrlItem from '../related-url-item';
|
|
5
|
+
import { RelatedUrlItemAnalyticsContext, fireRelatedLinksViewedEvent } from './analytics';
|
|
6
|
+
const ResolvedResultsStack = ({
|
|
7
|
+
resolvedResults,
|
|
8
|
+
testId,
|
|
9
|
+
renderers
|
|
10
|
+
}) => {
|
|
11
|
+
const {
|
|
12
|
+
createAnalyticsEvent
|
|
13
|
+
} = useAnalyticsEvents();
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
// This event will fire each time the component is loaded
|
|
16
|
+
fireRelatedLinksViewedEvent(createAnalyticsEvent)({
|
|
17
|
+
relatedLinksCount: resolvedResults.length
|
|
18
|
+
});
|
|
19
|
+
}, [resolvedResults.length, createAnalyticsEvent]);
|
|
20
|
+
return /*#__PURE__*/React.createElement(Stack, {
|
|
21
|
+
space: "space.050",
|
|
22
|
+
testId: `${testId}-items-wrapper`,
|
|
23
|
+
as: "ul",
|
|
24
|
+
xcss: xcss({
|
|
25
|
+
paddingLeft: '0px',
|
|
26
|
+
marginTop: '0px'
|
|
27
|
+
})
|
|
28
|
+
}, resolvedResults.map((resolvedResults, idx) => /*#__PURE__*/React.createElement(RelatedUrlItemAnalyticsContext, {
|
|
29
|
+
details: resolvedResults,
|
|
30
|
+
key: idx
|
|
31
|
+
}, /*#__PURE__*/React.createElement(RelatedUrlItem, {
|
|
32
|
+
testId: `${testId}-item`,
|
|
33
|
+
results: resolvedResults,
|
|
34
|
+
renderers: renderers
|
|
35
|
+
}))));
|
|
36
|
+
};
|
|
37
|
+
const ResolvedResultsStackWithAnalytics = props => {
|
|
38
|
+
return /*#__PURE__*/React.createElement(AnalyticsContext, {
|
|
39
|
+
data: {
|
|
40
|
+
component: 'relatedLinksSection'
|
|
41
|
+
}
|
|
42
|
+
}, /*#__PURE__*/React.createElement(ResolvedResultsStack, props));
|
|
43
|
+
};
|
|
44
|
+
export default ResolvedResultsStackWithAnalytics;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -8,7 +8,7 @@ import LinkWarningModal from './LinkWarningModal';
|
|
|
8
8
|
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
9
9
|
const PACKAGE_DATA = {
|
|
10
10
|
packageName: "@atlaskit/smart-card",
|
|
11
|
-
packageVersion: "26.
|
|
11
|
+
packageVersion: "26.42.0",
|
|
12
12
|
componentName: 'linkUrl'
|
|
13
13
|
};
|
|
14
14
|
const Link = withLinkClickedEvent('a');
|
|
@@ -15,7 +15,7 @@ export var ANALYTICS_CHANNEL = 'media';
|
|
|
15
15
|
export var context = {
|
|
16
16
|
componentName: 'smart-cards',
|
|
17
17
|
packageName: "@atlaskit/smart-card",
|
|
18
|
-
packageVersion: "26.
|
|
18
|
+
packageVersion: "26.42.0"
|
|
19
19
|
};
|
|
20
20
|
export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
21
21
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
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 { ANALYTICS_CHANNEL } from '../../../../../utils/analytics';
|
|
5
|
+
var createTrackRelatedLinksLoadedEventPayload = function createTrackRelatedLinksLoadedEventPayload(_ref) {
|
|
6
|
+
var relatedLinksCount = _ref.relatedLinksCount;
|
|
7
|
+
return {
|
|
8
|
+
action: 'loaded',
|
|
9
|
+
actionSubject: 'relatedLinks',
|
|
10
|
+
eventType: 'track',
|
|
11
|
+
attributes: {
|
|
12
|
+
relatedLinksCount: relatedLinksCount
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export var fireRelatedLinksLoadedEvent = function fireRelatedLinksLoadedEvent(createAnalyticsEvent) {
|
|
17
|
+
return function (attributes) {
|
|
18
|
+
var payload = createTrackRelatedLinksLoadedEventPayload(attributes);
|
|
19
|
+
if (payload) {
|
|
20
|
+
createAnalyticsEvent(_objectSpread({}, payload)).fire(ANALYTICS_CHANNEL);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
};
|
|
@@ -9,10 +9,12 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
|
9
9
|
import React, { useEffect, useState } from 'react';
|
|
10
10
|
import { di } from 'react-magnetic-di';
|
|
11
11
|
import { css } from '@emotion/react';
|
|
12
|
+
import { useAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
12
13
|
import useRelatedUrls from '../../../../../state/hooks/use-related-urls';
|
|
13
14
|
import { RelatedUrlsBlockErroredView } from './errored';
|
|
14
15
|
import { RelatedUrlsResolvedView } from './resolved';
|
|
15
16
|
import { RelatedUrlsBlockResolvingView } from './resolving';
|
|
17
|
+
import { fireRelatedLinksLoadedEvent } from './analytics';
|
|
16
18
|
/**
|
|
17
19
|
* Represents a block to display related resources of a url
|
|
18
20
|
*/
|
|
@@ -22,6 +24,8 @@ var RelatedUrlsBlock = function RelatedUrlsBlock(_ref) {
|
|
|
22
24
|
url = _ref.url,
|
|
23
25
|
renderers = _ref.renderers,
|
|
24
26
|
blockProps = _objectWithoutProperties(_ref, _excluded);
|
|
27
|
+
var _useAnalyticsEvents = useAnalyticsEvents(),
|
|
28
|
+
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
25
29
|
var _useState = useState(true),
|
|
26
30
|
_useState2 = _slicedToArray(_useState, 2),
|
|
27
31
|
loadingRelatedUrls = _useState2[0],
|
|
@@ -38,7 +42,7 @@ var RelatedUrlsBlock = function RelatedUrlsBlock(_ref) {
|
|
|
38
42
|
useEffect(function () {
|
|
39
43
|
var fetchRelatedUrls = /*#__PURE__*/function () {
|
|
40
44
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
41
|
-
var relUrls;
|
|
45
|
+
var _relUrls$resolvedResu, _relUrls$resolvedResu2, relUrls;
|
|
42
46
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
43
47
|
while (1) switch (_context.prev = _context.next) {
|
|
44
48
|
case 0:
|
|
@@ -48,26 +52,33 @@ var RelatedUrlsBlock = function RelatedUrlsBlock(_ref) {
|
|
|
48
52
|
case 3:
|
|
49
53
|
relUrls = _context.sent;
|
|
50
54
|
setRelatedUrls(relUrls);
|
|
51
|
-
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Fire TrackRelatedLinksLoadedEvent
|
|
58
|
+
*/
|
|
59
|
+
fireRelatedLinksLoadedEvent(createAnalyticsEvent)({
|
|
60
|
+
relatedLinksCount: (_relUrls$resolvedResu = (_relUrls$resolvedResu2 = relUrls.resolvedResults) === null || _relUrls$resolvedResu2 === void 0 ? void 0 : _relUrls$resolvedResu2.length) !== null && _relUrls$resolvedResu !== void 0 ? _relUrls$resolvedResu : 0
|
|
61
|
+
});
|
|
62
|
+
_context.next = 11;
|
|
52
63
|
break;
|
|
53
|
-
case
|
|
54
|
-
_context.prev =
|
|
64
|
+
case 8:
|
|
65
|
+
_context.prev = 8;
|
|
55
66
|
_context.t0 = _context["catch"](0);
|
|
56
67
|
setErr(_context.t0);
|
|
57
|
-
case 10:
|
|
58
|
-
setLoadingRelatedUrls(false);
|
|
59
68
|
case 11:
|
|
69
|
+
setLoadingRelatedUrls(false);
|
|
70
|
+
case 12:
|
|
60
71
|
case "end":
|
|
61
72
|
return _context.stop();
|
|
62
73
|
}
|
|
63
|
-
}, _callee, null, [[0,
|
|
74
|
+
}, _callee, null, [[0, 8]]);
|
|
64
75
|
}));
|
|
65
76
|
return function fetchRelatedUrls() {
|
|
66
77
|
return _ref2.apply(this, arguments);
|
|
67
78
|
};
|
|
68
79
|
}();
|
|
69
80
|
fetchRelatedUrls();
|
|
70
|
-
}, [getRelatedUrls, url]);
|
|
81
|
+
}, [createAnalyticsEvent, getRelatedUrls, url]);
|
|
71
82
|
if (loadingRelatedUrls) {
|
|
72
83
|
return /*#__PURE__*/React.createElement(RelatedUrlsBlockResolvingView, _extends({
|
|
73
84
|
testId: "".concat(testId, "-resolving-view")
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
var _templateObject;
|
|
4
|
-
import React, { useCallback,
|
|
4
|
+
import React, { useCallback, useState } from 'react';
|
|
5
5
|
import { useIntl } from 'react-intl-next';
|
|
6
6
|
import ChevronDownIcon from '@atlaskit/icon/glyph/chevron-down';
|
|
7
7
|
import ChevronUpIcon from '@atlaskit/icon/glyph/chevron-up';
|
|
@@ -10,7 +10,7 @@ import { css } from '@emotion/react';
|
|
|
10
10
|
import { messages } from '../../../../../../../messages';
|
|
11
11
|
import { getFormattedMessageAsString } from '../../../../../components/utils';
|
|
12
12
|
import Text from '../../../../elements/text';
|
|
13
|
-
import
|
|
13
|
+
import ResolvedResultsStack from './resolved-result-stack';
|
|
14
14
|
var RelatedUrlList = function RelatedUrlList(_ref) {
|
|
15
15
|
var resolvedResults = _ref.resolvedResults,
|
|
16
16
|
title = _ref.title,
|
|
@@ -26,19 +26,6 @@ var RelatedUrlList = function RelatedUrlList(_ref) {
|
|
|
26
26
|
}, [isOpen]);
|
|
27
27
|
var ChevronComponent = isOpen ? ChevronUpIcon : ChevronDownIcon;
|
|
28
28
|
var intl = useIntl();
|
|
29
|
-
var resolvedResultsStack = useMemo(function () {
|
|
30
|
-
return /*#__PURE__*/React.createElement(Stack, {
|
|
31
|
-
space: "space.050",
|
|
32
|
-
testId: "".concat(testId, "-items-wrapper")
|
|
33
|
-
}, resolvedResults.map(function (resolvedResults, idx) {
|
|
34
|
-
return /*#__PURE__*/React.createElement(RelatedUrlItem, {
|
|
35
|
-
testId: "".concat(testId, "-item"),
|
|
36
|
-
key: idx,
|
|
37
|
-
results: resolvedResults,
|
|
38
|
-
renderers: renderers
|
|
39
|
-
});
|
|
40
|
-
}));
|
|
41
|
-
}, [renderers, resolvedResults, testId]);
|
|
42
29
|
return resolvedResults.length > 0 ? /*#__PURE__*/React.createElement(Stack, {
|
|
43
30
|
testId: testId,
|
|
44
31
|
xcss: xcss({
|
|
@@ -46,7 +33,11 @@ var RelatedUrlList = function RelatedUrlList(_ref) {
|
|
|
46
33
|
})
|
|
47
34
|
}, /*#__PURE__*/React.createElement(Box, {
|
|
48
35
|
onClick: chevronClickHandler,
|
|
49
|
-
testId: "".concat(testId, "-expand-title")
|
|
36
|
+
testId: "".concat(testId, "-expand-title"),
|
|
37
|
+
as: "button",
|
|
38
|
+
backgroundColor: "color.background.neutral.subtle",
|
|
39
|
+
"aria-expanded": !!isOpen,
|
|
40
|
+
padding: "space.0"
|
|
50
41
|
}, /*#__PURE__*/React.createElement(Inline, {
|
|
51
42
|
alignBlock: "center",
|
|
52
43
|
spread: "space-between"
|
|
@@ -58,7 +49,11 @@ var RelatedUrlList = function RelatedUrlList(_ref) {
|
|
|
58
49
|
}), /*#__PURE__*/React.createElement(ChevronComponent, {
|
|
59
50
|
label: getFormattedMessageAsString(intl, title),
|
|
60
51
|
size: 'medium'
|
|
61
|
-
}))), isOpen &&
|
|
52
|
+
}))), isOpen && /*#__PURE__*/React.createElement(ResolvedResultsStack, {
|
|
53
|
+
resolvedResults: resolvedResults,
|
|
54
|
+
testId: testId,
|
|
55
|
+
renderers: renderers
|
|
56
|
+
})) : /*#__PURE__*/React.createElement(Text, {
|
|
62
57
|
testId: testId,
|
|
63
58
|
message: {
|
|
64
59
|
descriptor: messages.related_work_items_not_found
|
|
@@ -1,20 +1,27 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import React, { useMemo } from 'react';
|
|
2
|
+
import React, { useCallback, useMemo } from 'react';
|
|
3
3
|
import { Inline } from '@atlaskit/primitives';
|
|
4
|
+
import { useAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
4
5
|
import { SmartLinkSize } from '../../../../../../../../constants';
|
|
5
6
|
import extractFlexibleUiContext from '../../../../../../../../extractors/flexible';
|
|
6
7
|
import Icon from '../../../../../elements/icon';
|
|
7
8
|
import Link from '../../../../../elements/link';
|
|
9
|
+
import { fireLinkClickedEvent } from '../../../../../../../../utils/analytics/click';
|
|
8
10
|
var RelatedUrlItem = function RelatedUrlItem(_ref) {
|
|
9
11
|
var results = _ref.results,
|
|
10
12
|
renderers = _ref.renderers,
|
|
11
13
|
testId = _ref.testId;
|
|
14
|
+
var _useAnalyticsEvents = useAnalyticsEvents(),
|
|
15
|
+
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
12
16
|
var flexibleDataContext = useMemo(function () {
|
|
13
17
|
return extractFlexibleUiContext({
|
|
14
18
|
response: results,
|
|
15
19
|
renderers: renderers
|
|
16
20
|
});
|
|
17
21
|
}, [renderers, results]);
|
|
22
|
+
var onClick = useCallback(function (event) {
|
|
23
|
+
fireLinkClickedEvent(createAnalyticsEvent)(event);
|
|
24
|
+
}, [createAnalyticsEvent]);
|
|
18
25
|
return /*#__PURE__*/React.createElement(Inline, {
|
|
19
26
|
alignBlock: "center",
|
|
20
27
|
space: "space.050",
|
|
@@ -27,7 +34,8 @@ var RelatedUrlItem = function RelatedUrlItem(_ref) {
|
|
|
27
34
|
text: flexibleDataContext === null || flexibleDataContext === void 0 ? void 0 : flexibleDataContext.title,
|
|
28
35
|
url: flexibleDataContext === null || flexibleDataContext === void 0 ? void 0 : flexibleDataContext.url,
|
|
29
36
|
size: SmartLinkSize.Small,
|
|
30
|
-
maxLines: 1
|
|
37
|
+
maxLines: 1,
|
|
38
|
+
onClick: onClick
|
|
31
39
|
}));
|
|
32
40
|
};
|
|
33
41
|
export default RelatedUrlItem;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
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 React from 'react';
|
|
5
|
+
import { AnalyticsContext } from '@atlaskit/analytics-next';
|
|
6
|
+
import { getResolvedAttributes } from '@atlaskit/link-analytics/resolved-attributes';
|
|
7
|
+
import { ANALYTICS_CHANNEL } from '../../../../../../../../utils/analytics';
|
|
8
|
+
var createUiRelatedLinksViewedEventPayload = function createUiRelatedLinksViewedEventPayload(_ref) {
|
|
9
|
+
var relatedLinksCount = _ref.relatedLinksCount;
|
|
10
|
+
return {
|
|
11
|
+
action: 'viewed',
|
|
12
|
+
actionSubject: 'relatedLinks',
|
|
13
|
+
eventType: 'ui',
|
|
14
|
+
attributes: {
|
|
15
|
+
relatedLinksCount: relatedLinksCount
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export var fireRelatedLinksViewedEvent = function fireRelatedLinksViewedEvent(createAnalyticsEvent) {
|
|
20
|
+
return function (attributes) {
|
|
21
|
+
var payload = createUiRelatedLinksViewedEventPayload(attributes);
|
|
22
|
+
if (payload) {
|
|
23
|
+
createAnalyticsEvent(_objectSpread({}, payload)).fire(ANALYTICS_CHANNEL);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export var RelatedUrlItemAnalyticsContext = function RelatedUrlItemAnalyticsContext(props) {
|
|
28
|
+
var children = props.children,
|
|
29
|
+
details = props.details;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* We don't really need the `url` to get the attributes here so set
|
|
33
|
+
* it to an empty string to just make typescript happy
|
|
34
|
+
*/
|
|
35
|
+
var attributes = getResolvedAttributes({
|
|
36
|
+
url: ''
|
|
37
|
+
}, details);
|
|
38
|
+
return /*#__PURE__*/React.createElement(AnalyticsContext, {
|
|
39
|
+
data: {
|
|
40
|
+
attributes: attributes,
|
|
41
|
+
component: 'relatedLink'
|
|
42
|
+
}
|
|
43
|
+
}, children);
|
|
44
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import { Stack, xcss } from '@atlaskit/primitives';
|
|
3
|
+
import { AnalyticsContext, useAnalyticsEvents } from '@atlaskit/analytics-next';
|
|
4
|
+
import RelatedUrlItem from '../related-url-item';
|
|
5
|
+
import { RelatedUrlItemAnalyticsContext, fireRelatedLinksViewedEvent } from './analytics';
|
|
6
|
+
var ResolvedResultsStack = function ResolvedResultsStack(_ref) {
|
|
7
|
+
var resolvedResults = _ref.resolvedResults,
|
|
8
|
+
testId = _ref.testId,
|
|
9
|
+
renderers = _ref.renderers;
|
|
10
|
+
var _useAnalyticsEvents = useAnalyticsEvents(),
|
|
11
|
+
createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
|
|
12
|
+
useEffect(function () {
|
|
13
|
+
// This event will fire each time the component is loaded
|
|
14
|
+
fireRelatedLinksViewedEvent(createAnalyticsEvent)({
|
|
15
|
+
relatedLinksCount: resolvedResults.length
|
|
16
|
+
});
|
|
17
|
+
}, [resolvedResults.length, createAnalyticsEvent]);
|
|
18
|
+
return /*#__PURE__*/React.createElement(Stack, {
|
|
19
|
+
space: "space.050",
|
|
20
|
+
testId: "".concat(testId, "-items-wrapper"),
|
|
21
|
+
as: "ul",
|
|
22
|
+
xcss: xcss({
|
|
23
|
+
paddingLeft: '0px',
|
|
24
|
+
marginTop: '0px'
|
|
25
|
+
})
|
|
26
|
+
}, resolvedResults.map(function (resolvedResults, idx) {
|
|
27
|
+
return /*#__PURE__*/React.createElement(RelatedUrlItemAnalyticsContext, {
|
|
28
|
+
details: resolvedResults,
|
|
29
|
+
key: idx
|
|
30
|
+
}, /*#__PURE__*/React.createElement(RelatedUrlItem, {
|
|
31
|
+
testId: "".concat(testId, "-item"),
|
|
32
|
+
results: resolvedResults,
|
|
33
|
+
renderers: renderers
|
|
34
|
+
}));
|
|
35
|
+
}));
|
|
36
|
+
};
|
|
37
|
+
var ResolvedResultsStackWithAnalytics = function ResolvedResultsStackWithAnalytics(props) {
|
|
38
|
+
return /*#__PURE__*/React.createElement(AnalyticsContext, {
|
|
39
|
+
data: {
|
|
40
|
+
component: 'relatedLinksSection'
|
|
41
|
+
}
|
|
42
|
+
}, /*#__PURE__*/React.createElement(ResolvedResultsStack, props));
|
|
43
|
+
};
|
|
44
|
+
export default ResolvedResultsStackWithAnalytics;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -11,7 +11,7 @@ import LinkWarningModal from './LinkWarningModal';
|
|
|
11
11
|
import { getBooleanFF } from '@atlaskit/platform-feature-flags';
|
|
12
12
|
var PACKAGE_DATA = {
|
|
13
13
|
packageName: "@atlaskit/smart-card",
|
|
14
|
-
packageVersion: "26.
|
|
14
|
+
packageVersion: "26.42.0",
|
|
15
15
|
componentName: 'linkUrl'
|
|
16
16
|
};
|
|
17
17
|
var Link = withLinkClickedEvent('a');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GasPayload } from '@atlaskit/analytics-gas-types';
|
|
2
2
|
import { CardInnerAppearance } from '../view/Card/types';
|
|
3
|
-
export type AnalyticsAction = 'authStarted' | 'clicked' | 'closed' | 'connected' | 'connectFailed' | 'connectSucceeded' | 'created' | 'dismissed' | 'inserted' | 'renderFailed' | 'renderSuccess' | 'renderWithStatus' | 'resolved' | 'viewed' | 'unresolved' | 'updated' | 'chunkLoadFailed' | 'dwelled' | 'focused' | 'started' | 'success' | 'failed';
|
|
4
|
-
export type AnalyticsActionSubject = 'smartLink' | 'smartLinkAction' | 'applicationAccount' | 'button' | 'consentModal' | 'hoverCard' | 'modal' | 'embedPreviewModal' | 'smartLinkIframe' | 'link' | 'smartLinkQuickAction';
|
|
3
|
+
export type AnalyticsAction = 'authStarted' | 'clicked' | 'closed' | 'connected' | 'connectFailed' | 'connectSucceeded' | 'created' | 'dismissed' | 'inserted' | 'renderFailed' | 'renderSuccess' | 'renderWithStatus' | 'resolved' | 'viewed' | 'unresolved' | 'updated' | 'chunkLoadFailed' | 'dwelled' | 'focused' | 'started' | 'success' | 'failed' | 'loaded';
|
|
4
|
+
export type AnalyticsActionSubject = 'smartLink' | 'smartLinkAction' | 'applicationAccount' | 'button' | 'consentModal' | 'hoverCard' | 'modal' | 'embedPreviewModal' | 'smartLinkIframe' | 'link' | 'smartLinkQuickAction' | 'relatedLinks';
|
|
5
5
|
export type AnalyticsName = 'embedPreviewModal';
|
|
6
6
|
export type AnalyticsOrigin = 'smartLinkCard' | 'smartLinkEmbed' | 'smartLinkInline' | 'smartLinkPreviewHoverCard';
|
|
7
7
|
export type AnalyticsPayload = GasPayload & {
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AnalyticsEventPayload, UIAnalyticsEvent } from '@atlaskit/analytics-next';
|
|
2
|
+
import { TrackRelatedLinksLoadedEventProps } from './types';
|
|
3
|
+
export declare const fireRelatedLinksLoadedEvent: (createAnalyticsEvent: (payload: AnalyticsEventPayload) => UIAnalyticsEvent) => (attributes: TrackRelatedLinksLoadedEventProps) => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AnalyticsEventPayload, UIAnalyticsEvent } from '@atlaskit/analytics-next';
|
|
3
|
+
import { JsonLd } from 'json-ld-types';
|
|
4
|
+
import { UiRelatedLinksViewedEventProps } from './types';
|
|
5
|
+
export declare const fireRelatedLinksViewedEvent: (createAnalyticsEvent: (payload: AnalyticsEventPayload) => UIAnalyticsEvent) => (attributes: UiRelatedLinksViewedEventProps) => void;
|
|
6
|
+
type RelatedUrlItemAnalyticsContextProps = {
|
|
7
|
+
details: JsonLd.Response;
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
};
|
|
10
|
+
export declare const RelatedUrlItemAnalyticsContext: (props: RelatedUrlItemAnalyticsContextProps) => JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JsonLd } from 'json-ld-types';
|
|
2
|
+
import { CardProviderRenderers } from '@atlaskit/link-provider';
|
|
3
|
+
export interface ResolvedResultsStackProps {
|
|
4
|
+
testId: string;
|
|
5
|
+
resolvedResults: JsonLd.Response[];
|
|
6
|
+
renderers?: CardProviderRenderers;
|
|
7
|
+
}
|
|
8
|
+
export type UiRelatedLinksViewedEventProps = {
|
|
9
|
+
relatedLinksCount: number;
|
|
10
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GasPayload } from '@atlaskit/analytics-gas-types';
|
|
2
2
|
import { CardInnerAppearance } from '../view/Card/types';
|
|
3
|
-
export type AnalyticsAction = 'authStarted' | 'clicked' | 'closed' | 'connected' | 'connectFailed' | 'connectSucceeded' | 'created' | 'dismissed' | 'inserted' | 'renderFailed' | 'renderSuccess' | 'renderWithStatus' | 'resolved' | 'viewed' | 'unresolved' | 'updated' | 'chunkLoadFailed' | 'dwelled' | 'focused' | 'started' | 'success' | 'failed';
|
|
4
|
-
export type AnalyticsActionSubject = 'smartLink' | 'smartLinkAction' | 'applicationAccount' | 'button' | 'consentModal' | 'hoverCard' | 'modal' | 'embedPreviewModal' | 'smartLinkIframe' | 'link' | 'smartLinkQuickAction';
|
|
3
|
+
export type AnalyticsAction = 'authStarted' | 'clicked' | 'closed' | 'connected' | 'connectFailed' | 'connectSucceeded' | 'created' | 'dismissed' | 'inserted' | 'renderFailed' | 'renderSuccess' | 'renderWithStatus' | 'resolved' | 'viewed' | 'unresolved' | 'updated' | 'chunkLoadFailed' | 'dwelled' | 'focused' | 'started' | 'success' | 'failed' | 'loaded';
|
|
4
|
+
export type AnalyticsActionSubject = 'smartLink' | 'smartLinkAction' | 'applicationAccount' | 'button' | 'consentModal' | 'hoverCard' | 'modal' | 'embedPreviewModal' | 'smartLinkIframe' | 'link' | 'smartLinkQuickAction' | 'relatedLinks';
|
|
5
5
|
export type AnalyticsName = 'embedPreviewModal';
|
|
6
6
|
export type AnalyticsOrigin = 'smartLinkCard' | 'smartLinkEmbed' | 'smartLinkInline' | 'smartLinkPreviewHoverCard';
|
|
7
7
|
export type AnalyticsPayload = GasPayload & {
|
package/dist/types-ts4.5/view/FlexibleCard/components/blocks/related-urls-block/analytics.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { AnalyticsEventPayload, UIAnalyticsEvent } from '@atlaskit/analytics-next';
|
|
2
|
+
import { TrackRelatedLinksLoadedEventProps } from './types';
|
|
3
|
+
export declare const fireRelatedLinksLoadedEvent: (createAnalyticsEvent: (payload: AnalyticsEventPayload) => UIAnalyticsEvent) => (attributes: TrackRelatedLinksLoadedEventProps) => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AnalyticsEventPayload, UIAnalyticsEvent } from '@atlaskit/analytics-next';
|
|
3
|
+
import { JsonLd } from 'json-ld-types';
|
|
4
|
+
import { UiRelatedLinksViewedEventProps } from './types';
|
|
5
|
+
export declare const fireRelatedLinksViewedEvent: (createAnalyticsEvent: (payload: AnalyticsEventPayload) => UIAnalyticsEvent) => (attributes: UiRelatedLinksViewedEventProps) => void;
|
|
6
|
+
type RelatedUrlItemAnalyticsContextProps = {
|
|
7
|
+
details: JsonLd.Response;
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
};
|
|
10
|
+
export declare const RelatedUrlItemAnalyticsContext: (props: RelatedUrlItemAnalyticsContextProps) => JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { JsonLd } from 'json-ld-types';
|
|
2
|
+
import { CardProviderRenderers } from '@atlaskit/link-provider';
|
|
3
|
+
export interface ResolvedResultsStackProps {
|
|
4
|
+
testId: string;
|
|
5
|
+
resolvedResults: JsonLd.Response[];
|
|
6
|
+
renderers?: CardProviderRenderers;
|
|
7
|
+
}
|
|
8
|
+
export type UiRelatedLinksViewedEventProps = {
|
|
9
|
+
relatedLinksCount: number;
|
|
10
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/smart-card",
|
|
3
|
-
"version": "26.
|
|
3
|
+
"version": "26.42.0",
|
|
4
4
|
"description": "Smart card component",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@atlaskit/link-analytics": "^8.3.0",
|
|
39
39
|
"@atlaskit/link-client-extension": "^1.8.0",
|
|
40
40
|
"@atlaskit/link-extractors": "^1.2.0",
|
|
41
|
-
"@atlaskit/linking-common": "^4.
|
|
41
|
+
"@atlaskit/linking-common": "^4.16.0",
|
|
42
42
|
"@atlaskit/linking-types": "^8.4.0",
|
|
43
43
|
"@atlaskit/logo": "^13.14.0",
|
|
44
44
|
"@atlaskit/lozenge": "^11.4.0",
|
package/report.api.md
CHANGED
|
@@ -104,6 +104,7 @@ export type AnalyticsAction =
|
|
|
104
104
|
| 'failed'
|
|
105
105
|
| 'focused'
|
|
106
106
|
| 'inserted'
|
|
107
|
+
| 'loaded'
|
|
107
108
|
| 'renderFailed'
|
|
108
109
|
| 'renderSuccess'
|
|
109
110
|
| 'renderWithStatus'
|
|
@@ -123,6 +124,7 @@ export type AnalyticsActionSubject =
|
|
|
123
124
|
| 'hoverCard'
|
|
124
125
|
| 'link'
|
|
125
126
|
| 'modal'
|
|
127
|
+
| 'relatedLinks'
|
|
126
128
|
| 'smartLink'
|
|
127
129
|
| 'smartLinkAction'
|
|
128
130
|
| 'smartLinkIframe'
|
package/tmp/api-report-tmp.d.ts
CHANGED
|
@@ -76,10 +76,10 @@ type ActionProps = {
|
|
|
76
76
|
};
|
|
77
77
|
|
|
78
78
|
// @public (undocumented)
|
|
79
|
-
export type AnalyticsAction = 'authStarted' | 'chunkLoadFailed' | 'clicked' | 'closed' | 'connectFailed' | 'connectSucceeded' | 'connected' | 'created' | 'dismissed' | 'dwelled' | 'failed' | 'focused' | 'inserted' | 'renderFailed' | 'renderSuccess' | 'renderWithStatus' | 'resolved' | 'started' | 'success' | 'unresolved' | 'updated' | 'viewed';
|
|
79
|
+
export type AnalyticsAction = 'authStarted' | 'chunkLoadFailed' | 'clicked' | 'closed' | 'connectFailed' | 'connectSucceeded' | 'connected' | 'created' | 'dismissed' | 'dwelled' | 'failed' | 'focused' | 'inserted' | 'loaded' | 'renderFailed' | 'renderSuccess' | 'renderWithStatus' | 'resolved' | 'started' | 'success' | 'unresolved' | 'updated' | 'viewed';
|
|
80
80
|
|
|
81
81
|
// @public (undocumented)
|
|
82
|
-
export type AnalyticsActionSubject = 'applicationAccount' | 'button' | 'consentModal' | 'embedPreviewModal' | 'hoverCard' | 'link' | 'modal' | 'smartLink' | 'smartLinkAction' | 'smartLinkIframe' | 'smartLinkQuickAction';
|
|
82
|
+
export type AnalyticsActionSubject = 'applicationAccount' | 'button' | 'consentModal' | 'embedPreviewModal' | 'hoverCard' | 'link' | 'modal' | 'relatedLinks' | 'smartLink' | 'smartLinkAction' | 'smartLinkIframe' | 'smartLinkQuickAction';
|
|
83
83
|
|
|
84
84
|
// @public (undocumented)
|
|
85
85
|
type AnalyticsFacade = ReturnType<typeof useSmartLinkAnalytics>;
|