@atlaskit/smart-card 32.7.8 → 32.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/analytics.spec.yaml +31 -5
  3. package/dist/cjs/extractors/action/extract-invoke-preview-action.js +7 -6
  4. package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +5 -1
  5. package/dist/cjs/utils/analytics/LinkAnalyticsContext.js +2 -7
  6. package/dist/cjs/utils/analytics/SmartLinkAnalyticsContext.js +99 -6
  7. package/dist/cjs/utils/analytics/analytics.js +1 -1
  8. package/dist/cjs/view/CardWithUrl/component.js +0 -1
  9. package/dist/cjs/view/CardWithUrl/loader.js +14 -5
  10. package/dist/cjs/view/EmbedModal/components/analytics/index.js +88 -32
  11. package/dist/cjs/view/HoverCard/components/HoverCardComponent.js +2 -2
  12. package/dist/cjs/view/HoverCard/components/views/resolved/index.js +0 -1
  13. package/dist/cjs/view/HoverCard/index.js +15 -8
  14. package/dist/cjs/view/LinkUrl/index.js +1 -1
  15. package/dist/es2019/extractors/action/extract-invoke-preview-action.js +8 -7
  16. package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +5 -1
  17. package/dist/es2019/utils/analytics/LinkAnalyticsContext.js +0 -3
  18. package/dist/es2019/utils/analytics/SmartLinkAnalyticsContext.js +97 -2
  19. package/dist/es2019/utils/analytics/analytics.js +1 -1
  20. package/dist/es2019/view/CardWithUrl/component.js +0 -1
  21. package/dist/es2019/view/CardWithUrl/loader.js +9 -1
  22. package/dist/es2019/view/EmbedModal/components/analytics/index.js +88 -32
  23. package/dist/es2019/view/HoverCard/components/HoverCardComponent.js +1 -1
  24. package/dist/es2019/view/HoverCard/components/views/resolved/index.js +0 -1
  25. package/dist/es2019/view/HoverCard/index.js +10 -2
  26. package/dist/es2019/view/LinkUrl/index.js +1 -1
  27. package/dist/esm/extractors/action/extract-invoke-preview-action.js +8 -7
  28. package/dist/esm/state/analytics/useSmartLinkAnalytics.js +5 -1
  29. package/dist/esm/utils/analytics/LinkAnalyticsContext.js +2 -7
  30. package/dist/esm/utils/analytics/SmartLinkAnalyticsContext.js +95 -5
  31. package/dist/esm/utils/analytics/analytics.js +1 -1
  32. package/dist/esm/view/CardWithUrl/component.js +0 -1
  33. package/dist/esm/view/CardWithUrl/loader.js +14 -5
  34. package/dist/esm/view/EmbedModal/components/analytics/index.js +88 -32
  35. package/dist/esm/view/HoverCard/components/HoverCardComponent.js +1 -1
  36. package/dist/esm/view/HoverCard/components/views/resolved/index.js +0 -1
  37. package/dist/esm/view/HoverCard/index.js +14 -4
  38. package/dist/esm/view/LinkUrl/index.js +1 -1
  39. package/dist/types/common/analytics/generated/analytics.types.d.ts +16 -2
  40. package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +5 -1
  41. package/dist/types/utils/analytics/SmartLinkAnalyticsContext.d.ts +14 -0
  42. package/dist/types/view/EmbedModal/components/analytics/types.d.ts +1 -0
  43. package/dist/types/view/HoverCard/components/HoverCardComponent.d.ts +1 -0
  44. package/dist/types-ts4.5/common/analytics/generated/analytics.types.d.ts +16 -2
  45. package/dist/types-ts4.5/state/analytics/useSmartLinkAnalytics.d.ts +5 -1
  46. package/dist/types-ts4.5/utils/analytics/SmartLinkAnalyticsContext.d.ts +14 -0
  47. package/dist/types-ts4.5/view/EmbedModal/components/analytics/types.d.ts +1 -0
  48. package/dist/types-ts4.5/view/HoverCard/components/HoverCardComponent.d.ts +1 -0
  49. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 32.7.9
4
+
5
+ ### Patch Changes
6
+
7
+ - [#171388](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/171388)
8
+ [`87d9dab6e4f6d`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/87d9dab6e4f6d) -
9
+ Add definitionId and resourceType to SmartLinkAnalyticsContext and migrate EmbedModal analytics
10
+
3
11
  ## 32.7.8
4
12
 
5
13
  ### Patch Changes
@@ -381,6 +381,19 @@ events:
381
381
  required: false
382
382
  type: string
383
383
  description: The definitionId of the Smart Link resolver invoked.
384
+ - embedPreviewModal viewed:
385
+ type: screen
386
+ description: Fires an event that represents when a user view a modal.
387
+ attributes:
388
+ <<: [ *PackageMetaDataContext, *CommonContext ]
389
+ origin:
390
+ required: false
391
+ type: [ 'smartLinkCard', 'smartLinkEmbed', 'smartLinkInline', 'smartLinkPreviewHoverCard' ]
392
+ description: The origin of the event
393
+ size:
394
+ required: false
395
+ type: [ 'large', 'small' ]
396
+ description: The size of the modal
384
397
  - smartLink connectSucceeded:
385
398
  type: operational
386
399
  description:
@@ -629,6 +642,23 @@ events:
629
642
  required: false
630
643
  type: string
631
644
  description: The definitionId of the Smart Link resolver invoked.
645
+ - modal closed (embedPreview):
646
+ type: ui
647
+ description: Fires an event that represents when a user close a modal.
648
+ attributes:
649
+ <<: [ *PackageMetaDataContext, *CommonContext ]
650
+ origin:
651
+ required: false
652
+ type: [ 'smartLinkCard', 'smartLinkEmbed', 'smartLinkInline', 'smartLinkPreviewHoverCard' ]
653
+ description: The origin of the event
654
+ previewTime:
655
+ required: false
656
+ type: number
657
+ description: Duration that user spent on the preview.
658
+ size:
659
+ required: false
660
+ type: [ 'large', 'small' ]
661
+ description: The size of the modal
632
662
  - button clicked (learnMore):
633
663
  type: ui
634
664
  description:
@@ -695,15 +725,11 @@ events:
695
725
  required: true
696
726
  type: [ 'inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview' ]
697
727
  description: Whether the card was an Inline, Block, Embed or Flexible UI
698
- definitionId:
699
- required: false
700
- type: string
701
- description: The definitionId of the Smart Link resolver invoked.
702
728
  - smartLink renderFailed:
703
729
  type: ui
704
730
  description: fires an event that represents when a Smart Link renders unsuccessfully.
705
731
  attributes:
706
- <<: [ *PackageMetaDataContext, *CommonContext ]
732
+ <<: [ *PackageMetaDataContext, *CommonContext]
707
733
  display:
708
734
  required: true
709
735
  type: [ 'inline', 'block', 'embed', 'embedPreview', 'flexible', 'hoverCardPreview' ]
@@ -34,6 +34,7 @@ var extractInvokePreviewAction = exports.extractInvokePreviewAction = function e
34
34
  var src = (_extractPreviewData = (0, _linkExtractors.extractPreview)(data, 'web')) === null || _extractPreviewData === void 0 ? void 0 : _extractPreviewData.src;
35
35
  if (src) {
36
36
  var url = (0, _linkExtractors.extractLink)(data);
37
+ var extensionKey = (0, _helpers.getExtensionKey)(response);
37
38
  return {
38
39
  actionFn: function () {
39
40
  var _actionFn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
@@ -43,7 +44,10 @@ var extractInvokePreviewAction = exports.extractInvokePreviewAction = function e
43
44
  case 0:
44
45
  return _context.abrupt("return", (0, _utils.openEmbedModal)({
45
46
  fireEvent: fireEvent,
47
+ extensionKey: extensionKey,
48
+ id: id,
46
49
  invokeDownloadAction: (0, _extractInvokeDownloadAction.extractInvokeDownloadAction)(param),
50
+ invokeViewAction: (0, _extractInvokeViewAction.extractInvokeViewAction)(param, true),
47
51
  isSupportTheming: (0, _extractIsSupportTheming.extractIsSupportTheming)(meta),
48
52
  isTrusted: (0, _extractIsTrusted.extractIsTrusted)(meta),
49
53
  linkIcon: (0, _icon.extractLinkIcon)(response),
@@ -52,8 +56,7 @@ var extractInvokePreviewAction = exports.extractInvokePreviewAction = function e
52
56
  origin: origin,
53
57
  src: src,
54
58
  title: (0, _linkExtractors.extractTitle)(data),
55
- url: url,
56
- invokeViewAction: (0, _extractInvokeViewAction.extractInvokeViewAction)(param, true)
59
+ url: url
57
60
  }));
58
61
  case 1:
59
62
  case "end":
@@ -68,11 +71,9 @@ var extractInvokePreviewAction = exports.extractInvokePreviewAction = function e
68
71
  }(),
69
72
  actionSubjectId: 'invokePreviewScreen',
70
73
  actionType: _index.ActionName.PreviewAction,
71
- definitionId: (0, _helpers.getDefinitionId)(response),
72
74
  display: display,
73
- extensionKey: (0, _helpers.getExtensionKey)(response),
74
- id: id,
75
- resourceType: (0, _helpers.getResourceType)(response)
75
+ extensionKey: extensionKey,
76
+ id: id
76
77
  };
77
78
  }
78
79
  };
@@ -75,6 +75,7 @@ var useSmartLinkAnalytics = exports.useSmartLinkAnalytics = function useSmartLin
75
75
  * This fires an event that represents when a user
76
76
  * click a button.
77
77
  * @param data A partial analytics event payload
78
+ * @deprecated consider removing when cleaning up FF platform-smart-card-migrate-embed-modal-analytics
78
79
  */
79
80
  buttonClickedEvent: function buttonClickedEvent(data) {
80
81
  return dispatchAnalytics(applyCommonAttributes({
@@ -120,6 +121,7 @@ var useSmartLinkAnalytics = exports.useSmartLinkAnalytics = function useSmartLin
120
121
  /**
121
122
  * This fires an event that represents when a user close a modal.
122
123
  * @param data A partial analytics event payload
124
+ * @deprecated consider removing when cleaning up FF platform-smart-card-migrate-embed-modal-analytics
123
125
  */
124
126
  modalClosedEvent: function modalClosedEvent(data) {
125
127
  return dispatchAnalytics(applyCommonAttributes({
@@ -138,6 +140,7 @@ var useSmartLinkAnalytics = exports.useSmartLinkAnalytics = function useSmartLin
138
140
  * @param definitionId The definitionId of the Smart Link resolver invoked.
139
141
  * @param extensionKey The extensionKey of the Smart Link resovler invoked.
140
142
  * @param canBeDatasource An indicator that shows that a smart link can be converted to a datasource
143
+ * @deprecated consider removing when cleaning up FF platform-smart-card-migrate-embed-modal-analytics
141
144
  */
142
145
  renderSuccessEvent: function renderSuccessEvent(_ref2) {
143
146
  var display = _ref2.display,
@@ -179,6 +182,7 @@ var useSmartLinkAnalytics = exports.useSmartLinkAnalytics = function useSmartLin
179
182
  * @param id The unique ID for this Smart Link.
180
183
  * @param error: An error representing why the Smart Link render failed.
181
184
  * @param errorInfo: Additional details about the error including the stack trace.
185
+ * @deprecated consider removing when cleaning up FF platform-smart-card-migrate-embed-modal-analytics
182
186
  */
183
187
  renderFailedEvent: function renderFailedEvent(_ref3) {
184
188
  var display = _ref3.display,
@@ -284,7 +288,7 @@ var useSmartLinkAnalytics = exports.useSmartLinkAnalytics = function useSmartLin
284
288
  return {
285
289
  /**
286
290
  * This fires an event that represents when a user view a modal.
287
- * @param data A partial analytics event payload
291
+ * @deprecated consider removing when cleaning up FF platform-smart-card-migrate-embed-modal-analytics
288
292
  */
289
293
  modalViewedEvent: function modalViewedEvent(data) {
290
294
  return dispatchAnalytics(applyCommonAttributes({
@@ -5,13 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.LinkAnalyticsContext = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
8
  var _react = _interopRequireDefault(require("react"));
10
9
  var _analyticsNext = require("@atlaskit/analytics-next");
11
- var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
- var _analytics = require("./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
10
  /**
16
11
  * Provides an analytics context to supply attributes to events based on a URL
17
12
  */
@@ -24,11 +19,11 @@ var LinkAnalyticsContext = exports.LinkAnalyticsContext = function LinkAnalytics
24
19
  return /*#__PURE__*/_react.default.createElement(_analyticsNext.AnalyticsContext, {
25
20
  data: {
26
21
  source: source,
27
- attributes: _objectSpread(_objectSpread({}, (0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics') ? _analytics.context : {}), {}, {
22
+ attributes: {
28
23
  displayCategory: displayCategory,
29
24
  display: display,
30
25
  id: id
31
- })
26
+ }
32
27
  }
33
28
  }, children);
34
29
  };
@@ -1,27 +1,112 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
- exports.SmartLinkAnalyticsContext = void 0;
8
+ exports.useSmartLinkAnalyticsContext = exports.SmartLinkAnalyticsContext = void 0;
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _react = _interopRequireDefault(require("react"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _react = _interopRequireWildcard(require("react"));
10
12
  var _analyticsNext = require("@atlaskit/analytics-next");
11
13
  var _resolvedAttributes = require("@atlaskit/link-analytics/resolved-attributes");
14
+ var _linkProvider = require("@atlaskit/link-provider");
15
+ var _linkingCommon = require("@atlaskit/linking-common");
16
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
17
  var _store = require("../../state/store");
18
+ var _analytics = require("./analytics");
13
19
  var _LinkAnalyticsContext = require("./LinkAnalyticsContext");
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ 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; }
23
+ 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; }
24
+ var getExtendedResolvedAttributes = function getExtendedResolvedAttributes(linkDetails, details, linkStatus) {
25
+ var _details$meta$definit, _details$meta, _details$meta$resourc, _details$meta2;
26
+ return _objectSpread({
27
+ definitionId: (_details$meta$definit = details === null || details === void 0 || (_details$meta = details.meta) === null || _details$meta === void 0 ? void 0 : _details$meta.definitionId) !== null && _details$meta$definit !== void 0 ? _details$meta$definit : null,
28
+ resourceType: (_details$meta$resourc = details === null || details === void 0 || (_details$meta2 = details.meta) === null || _details$meta2 === void 0 ? void 0 : _details$meta2.resourceType) !== null && _details$meta$resourc !== void 0 ? _details$meta$resourc : null
29
+ }, (0, _resolvedAttributes.getResolvedAttributes)(linkDetails, details, linkStatus));
30
+ };
31
+ var getSmartLinkAnalyticsContext = function getSmartLinkAnalyticsContext(_ref) {
32
+ var display = _ref.display,
33
+ id = _ref.id,
34
+ response = _ref.response,
35
+ source = _ref.source,
36
+ status = _ref.status,
37
+ url = _ref.url;
38
+ var resolvedAttributes = getExtendedResolvedAttributes({
39
+ url: url
40
+ }, response, status);
41
+ return {
42
+ source: source,
43
+ attributes: _objectSpread(_objectSpread({}, _analytics.context), {}, {
44
+ display: display,
45
+ id: id
46
+ }, resolvedAttributes)
47
+ };
48
+ };
49
+ /**
50
+ * Provides an analytics context data to supply attributes to events based on a URL
51
+ * and the link state in the store
52
+ */
53
+ var useSmartLinkAnalyticsContext = exports.useSmartLinkAnalyticsContext = function useSmartLinkAnalyticsContext(_ref2) {
54
+ var display = _ref2.display,
55
+ id = _ref2.id,
56
+ source = _ref2.source,
57
+ url = _ref2.url;
58
+ var _useSmartLinkContext = (0, _linkProvider.useSmartLinkContext)(),
59
+ store = _useSmartLinkContext.store;
60
+ var state = store ? (0, _linkingCommon.getUrl)(store, url) : undefined;
61
+ return (0, _react.useMemo)(function () {
62
+ return (0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics') ? getSmartLinkAnalyticsContext({
63
+ display: display,
64
+ id: id,
65
+ response: state === null || state === void 0 ? void 0 : state.details,
66
+ source: source,
67
+ status: state === null || state === void 0 ? void 0 : state.status,
68
+ url: url
69
+ }) : {};
70
+ }, [display, id, source, state === null || state === void 0 ? void 0 : state.details, state === null || state === void 0 ? void 0 : state.status, url]);
71
+ };
72
+
14
73
  /**
15
74
  * Provides an analytics context to supply attributes to events based on a URL
16
75
  * and the link state in the store
17
76
  */
18
- var SmartLinkAnalyticsContext = exports.SmartLinkAnalyticsContext = function SmartLinkAnalyticsContext(props) {
19
- var children = props.children,
20
- url = props.url,
21
- display = props.display;
77
+ var ExtendedSmartLinkAnalyticsContext = function ExtendedSmartLinkAnalyticsContext(_ref3) {
78
+ var children = _ref3.children,
79
+ display = _ref3.display,
80
+ id = _ref3.id,
81
+ source = _ref3.source,
82
+ url = _ref3.url;
22
83
  var _useSmartLinkState = (0, _store.useSmartCardState)(url),
23
84
  details = _useSmartLinkState.details,
24
85
  status = _useSmartLinkState.status;
86
+ var data = getSmartLinkAnalyticsContext({
87
+ display: display,
88
+ id: id,
89
+ response: details,
90
+ source: source,
91
+ status: status,
92
+ url: url
93
+ });
94
+ return /*#__PURE__*/_react.default.createElement(_analyticsNext.AnalyticsContext, {
95
+ data: data
96
+ }, children);
97
+ };
98
+
99
+ /**
100
+ * Provides an analytics context to supply attributes to events based on a URL
101
+ * and the link state in the store
102
+ */
103
+ var LegacySmartLinkAnalyticsContext = function LegacySmartLinkAnalyticsContext(props) {
104
+ var children = props.children,
105
+ url = props.url,
106
+ display = props.display;
107
+ var _useSmartLinkState2 = (0, _store.useSmartCardState)(url),
108
+ details = _useSmartLinkState2.details,
109
+ status = _useSmartLinkState2.status;
25
110
  var attributes = (0, _resolvedAttributes.getResolvedAttributes)({
26
111
  url: url
27
112
  }, details, status);
@@ -32,4 +117,12 @@ var SmartLinkAnalyticsContext = exports.SmartLinkAnalyticsContext = function Sma
32
117
  attributes: attributes
33
118
  }
34
119
  }, children));
120
+ };
121
+
122
+ /**
123
+ * Provides an analytics context to supply attributes to events based on a URL
124
+ * and the link state in the store
125
+ */
126
+ var SmartLinkAnalyticsContext = exports.SmartLinkAnalyticsContext = function SmartLinkAnalyticsContext(props) {
127
+ return (0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics') ? /*#__PURE__*/_react.default.createElement(ExtendedSmartLinkAnalyticsContext, props) : /*#__PURE__*/_react.default.createElement(LegacySmartLinkAnalyticsContext, props);
35
128
  };
@@ -15,7 +15,7 @@ var ANALYTICS_CHANNEL = exports.ANALYTICS_CHANNEL = 'media';
15
15
  var context = exports.context = {
16
16
  componentName: 'smart-cards',
17
17
  packageName: "@atlaskit/smart-card",
18
- packageVersion: "32.7.8"
18
+ packageVersion: "32.7.9"
19
19
  };
20
20
  var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
21
21
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -163,7 +163,6 @@ function Component(_ref) {
163
163
  display: isFlexibleUi ? 'flexible' : appearance
164
164
  });
165
165
  fireEvent('ui.smartLink.renderSuccess', {
166
- definitionId: definitionId !== null && definitionId !== void 0 ? definitionId : null,
167
166
  display: isFlexibleUi ? 'flexible' : appearance
168
167
  });
169
168
  } else {
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.CardWithURLRenderer = CardWithURLRenderer;
8
8
  exports.LazyCardWithUrlContent = void 0;
9
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
12
  var _react = _interopRequireWildcard(require("react"));
12
13
  var _reactErrorBoundary = require("react-error-boundary");
@@ -17,9 +18,12 @@ var _useAnalyticsEvents2 = require("../../common/analytics/generated/use-analyti
17
18
  var _state = require("../../state");
18
19
  var _analytics = require("../../state/analytics");
19
20
  var _utils = require("../../utils");
21
+ var _SmartLinkAnalyticsContext = require("../../utils/analytics/SmartLinkAnalyticsContext");
20
22
  var _flexible = require("../../utils/flexible");
21
23
  var _performance = require("../../utils/performance");
22
24
  var _LoadingCardLink = require("./component-lazy/LoadingCardLink");
25
+ 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; }
26
+ 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; }
23
27
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
24
28
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != (0, _typeof2.default)(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
29
  var LazyCardWithUrlContent = exports.LazyCardWithUrlContent = /*#__PURE__*/(0, _react.lazy)(function () {
@@ -72,6 +76,11 @@ function CardWithURLRenderer(props) {
72
76
  truncateInline = props.truncateInline;
73
77
  var analytics = (0, _state.useSmartLinkAnalytics)(url !== null && url !== void 0 ? url : '', id);
74
78
  var isFlexibleUi = (0, _flexible.isFlexibleUiCard)(children);
79
+ var analyticsContext = (0, _SmartLinkAnalyticsContext.useSmartLinkAnalyticsContext)({
80
+ display: isFlexibleUi ? 'flexible' : appearance,
81
+ id: id,
82
+ url: url !== null && url !== void 0 ? url : ''
83
+ });
75
84
  var errorHandler = (0, _react.useCallback)(function (error, info) {
76
85
  var componentStack = info.componentStack;
77
86
  var errorInfo = {
@@ -83,23 +92,23 @@ function CardWithURLRenderer(props) {
83
92
  // to the reliability of the smart-card front-end components.
84
93
  // Likewise, chunk loading errors are not caused by a failure of smart-card rendering.
85
94
  if (error.name === 'ChunkLoadError') {
86
- fireEvent('operational.smartLink.chunkLoadFailed', {
95
+ fireEvent('operational.smartLink.chunkLoadFailed', _objectSpread(_objectSpread({}, analyticsContext === null || analyticsContext === void 0 ? void 0 : analyticsContext.attributes), {}, {
87
96
  display: appearance,
88
97
  error: error,
89
98
  errorInfo: errorInfo,
90
99
  definitionId: null
91
- });
100
+ }));
92
101
  } else if (error.name !== 'APIError') {
93
102
  if ((0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics')) {
94
103
  (0, _analytics.startUfoExperience)('smart-link-rendered', id || 'NULL');
95
104
  (0, _analytics.failUfoExperience)('smart-link-rendered', id || 'NULL');
96
105
  (0, _analytics.failUfoExperience)('smart-link-authenticated', id || 'NULL');
97
- fireEvent('ui.smartLink.renderFailed', {
106
+ fireEvent('ui.smartLink.renderFailed', _objectSpread(_objectSpread({}, analyticsContext === null || analyticsContext === void 0 ? void 0 : analyticsContext.attributes), {}, {
98
107
  display: isFlexibleUi ? 'flexible' : appearance,
99
108
  id: id !== null && id !== void 0 ? id : null,
100
109
  error: error,
101
110
  errorInfo: errorInfo
102
- });
111
+ }));
103
112
  } else {
104
113
  analytics.ui.renderFailedEvent({
105
114
  display: isFlexibleUi ? 'flexible' : appearance,
@@ -114,7 +123,7 @@ function CardWithURLRenderer(props) {
114
123
  url: url !== null && url !== void 0 ? url : '',
115
124
  err: error
116
125
  });
117
- }, [analytics.ui, appearance, id, onError, url, isFlexibleUi, fireEvent]);
126
+ }, [analytics.ui, analyticsContext, appearance, id, onError, url, isFlexibleUi, fireEvent]);
118
127
  if (!url) {
119
128
  throw new Error('@atlaskit/smart-card: url property is missing.');
120
129
  }
@@ -8,7 +8,9 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
12
  var _constants = require("../../../../constants");
13
+ var _analytics = require("../../../../state/analytics");
12
14
  var _types = require("../../types");
13
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
14
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -18,63 +20,117 @@ var getResizeFrom = function getResizeFrom(size) {
18
20
  var withAnalytics = function withAnalytics(Component) {
19
21
  return function (props) {
20
22
  var analytics = props.analytics,
23
+ fireEvent = props.fireEvent,
24
+ extensionKey = props.extensionKey,
25
+ id = props.id,
21
26
  onClose = props.onClose,
22
27
  onOpen = props.onOpen,
23
28
  onOpenFailed = props.onOpenFailed,
24
29
  onResize = props.onResize,
25
30
  origin = props.origin;
26
31
  var handleOnOpen = (0, _react.useCallback)(function (context) {
27
- analytics === null || analytics === void 0 || analytics.screen.modalViewedEvent({
28
- name: 'embedPreviewModal',
29
- attributes: {
30
- origin: origin,
32
+ if ((0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics')) {
33
+ fireEvent === null || fireEvent === void 0 || fireEvent('screen.embedPreviewModal.viewed', {
34
+ origin: origin !== null && origin !== void 0 ? origin : null,
31
35
  size: context.size
32
- }
33
- });
34
- analytics === null || analytics === void 0 || analytics.ui.renderSuccessEvent({
35
- status: 'resolved',
36
- display: _constants.CardDisplay.EmbedPreview
37
- });
36
+ });
37
+ } else {
38
+ analytics === null || analytics === void 0 || analytics.screen.modalViewedEvent({
39
+ name: 'embedPreviewModal',
40
+ attributes: {
41
+ origin: origin,
42
+ size: context.size
43
+ }
44
+ });
45
+ }
46
+ if ((0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics')) {
47
+ (0, _analytics.succeedUfoExperience)('smart-link-rendered', id || 'NULL', {
48
+ extensionKey: extensionKey,
49
+ display: _constants.CardDisplay.EmbedPreview
50
+ });
51
+
52
+ // UFO will disregard this if authentication experience has not yet been started
53
+ (0, _analytics.succeedUfoExperience)('smart-link-authenticated', id || 'NULL', {
54
+ display: _constants.CardDisplay.EmbedPreview
55
+ });
56
+ fireEvent === null || fireEvent === void 0 || fireEvent('ui.smartLink.renderSuccess', {
57
+ display: _constants.CardDisplay.EmbedPreview
58
+ });
59
+ } else {
60
+ analytics === null || analytics === void 0 || analytics.ui.renderSuccessEvent({
61
+ status: 'resolved',
62
+ display: _constants.CardDisplay.EmbedPreview
63
+ });
64
+ }
38
65
  if (onOpen) {
39
66
  onOpen(context);
40
67
  }
41
- }, [analytics === null || analytics === void 0 ? void 0 : analytics.screen, analytics === null || analytics === void 0 ? void 0 : analytics.ui, onOpen, origin]);
68
+ }, [analytics === null || analytics === void 0 ? void 0 : analytics.screen, analytics === null || analytics === void 0 ? void 0 : analytics.ui, fireEvent, extensionKey, id, onOpen, origin]);
42
69
  var handleOnOpenFailed = (0, _react.useCallback)(function (error, errorInfo) {
43
- analytics === null || analytics === void 0 || analytics.ui.renderFailedEvent({
44
- display: _constants.CardDisplay.EmbedPreview,
45
- error: error,
46
- errorInfo: errorInfo
47
- });
70
+ if ((0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics')) {
71
+ (0, _analytics.startUfoExperience)('smart-link-rendered', id || 'NULL');
72
+ (0, _analytics.failUfoExperience)('smart-link-rendered', id || 'NULL');
73
+ (0, _analytics.failUfoExperience)('smart-link-authenticated', id || 'NULL');
74
+ fireEvent === null || fireEvent === void 0 || fireEvent('ui.smartLink.renderFailed', {
75
+ display: _constants.CardDisplay.EmbedPreview,
76
+ error: error,
77
+ errorInfo: errorInfo,
78
+ id: id !== null && id !== void 0 ? id : null
79
+ });
80
+ } else {
81
+ analytics === null || analytics === void 0 || analytics.ui.renderFailedEvent({
82
+ display: _constants.CardDisplay.EmbedPreview,
83
+ error: error,
84
+ errorInfo: errorInfo
85
+ });
86
+ }
48
87
  if (onOpenFailed) {
49
88
  onOpenFailed(error, errorInfo);
50
89
  }
51
- }, [analytics === null || analytics === void 0 ? void 0 : analytics.ui, onOpenFailed]);
90
+ }, [analytics === null || analytics === void 0 ? void 0 : analytics.ui, fireEvent, id, onOpenFailed]);
52
91
  var handleOnClose = (0, _react.useCallback)(function (context) {
53
- analytics === null || analytics === void 0 || analytics.ui.modalClosedEvent({
54
- actionSubjectId: 'embedPreview',
55
- attributes: {
56
- origin: origin,
57
- previewTime: context.duration,
92
+ if ((0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics')) {
93
+ var _context$duration;
94
+ fireEvent === null || fireEvent === void 0 || fireEvent('ui.modal.closed.embedPreview', {
95
+ origin: origin !== null && origin !== void 0 ? origin : null,
96
+ previewTime: (_context$duration = context.duration) !== null && _context$duration !== void 0 ? _context$duration : null,
58
97
  size: context.size
59
- }
60
- });
98
+ });
99
+ } else {
100
+ analytics === null || analytics === void 0 || analytics.ui.modalClosedEvent({
101
+ actionSubjectId: 'embedPreview',
102
+ attributes: {
103
+ origin: origin,
104
+ previewTime: context.duration,
105
+ size: context.size
106
+ }
107
+ });
108
+ }
61
109
  if (onClose) {
62
110
  onClose(context);
63
111
  }
64
- }, [analytics === null || analytics === void 0 ? void 0 : analytics.ui, onClose, origin]);
112
+ }, [analytics === null || analytics === void 0 ? void 0 : analytics.ui, fireEvent, onClose, origin]);
65
113
  var handleOnResize = (0, _react.useCallback)(function (context) {
66
- analytics === null || analytics === void 0 || analytics.ui.buttonClickedEvent({
67
- actionSubjectId: 'embedPreviewResize',
68
- attributes: {
114
+ if ((0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics')) {
115
+ fireEvent === null || fireEvent === void 0 || fireEvent('ui.button.clicked.embedPreviewResize', {
69
116
  newSize: context.size,
70
- origin: origin,
117
+ origin: origin !== null && origin !== void 0 ? origin : null,
71
118
  previousSize: getResizeFrom(context.size)
72
- }
73
- });
119
+ });
120
+ } else {
121
+ analytics === null || analytics === void 0 || analytics.ui.buttonClickedEvent({
122
+ actionSubjectId: 'embedPreviewResize',
123
+ attributes: {
124
+ newSize: context.size,
125
+ origin: origin,
126
+ previousSize: getResizeFrom(context.size)
127
+ }
128
+ });
129
+ }
74
130
  if (onResize) {
75
131
  onResize(context);
76
132
  }
77
- }, [analytics === null || analytics === void 0 ? void 0 : analytics.ui, onResize, origin]);
133
+ }, [analytics === null || analytics === void 0 ? void 0 : analytics.ui, fireEvent, onResize, origin]);
78
134
  return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, props, {
79
135
  onClose: handleOnClose,
80
136
  onOpen: handleOnOpen,
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.HoverCardComponent = void 0;
8
+ exports.HoverCardComponent = exports.HOVER_CARD_SOURCE = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
@@ -29,7 +29,7 @@ var _excluded = ["aria-haspopup", "aria-expanded"];
29
29
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
30
30
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
31
31
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
32
- var HOVER_CARD_SOURCE = 'smartLinkPreviewHoverCard';
32
+ var HOVER_CARD_SOURCE = exports.HOVER_CARD_SOURCE = 'smartLinkPreviewHoverCard';
33
33
  var FADE_IN_DELAY = 500;
34
34
  var FADE_OUT_DELAY = 300;
35
35
  var RESOLVE_DELAY = 100;
@@ -52,7 +52,6 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
52
52
  display: _constants.CardDisplay.HoverCardPreview
53
53
  });
54
54
  fireEvent('ui.smartLink.renderSuccess', {
55
- definitionId: definitionId !== null && definitionId !== void 0 ? definitionId : null,
56
55
  display: _constants.CardDisplay.HoverCardPreview
57
56
  });
58
57
  } else {