@atlaskit/smart-card 26.24.0 → 26.25.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.
Files changed (68) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cjs/extractors/block/index.js +1 -1
  3. package/dist/cjs/extractors/common/actions/extractActions.js +3 -31
  4. package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +7 -15
  5. package/dist/cjs/state/hooks/use-invoke-client-action/index.js +20 -14
  6. package/dist/cjs/utils/analytics/analytics.js +1 -1
  7. package/dist/cjs/view/BlockCard/views/flexible/FlexibleErroredView.js +1 -0
  8. package/dist/cjs/view/BlockCard/views/flexible/FlexibleResolvedView.js +3 -45
  9. package/dist/cjs/view/FlexibleCard/components/actions/action/download-action/index.js +33 -1
  10. package/dist/cjs/view/FlexibleCard/components/actions/action/preview-action/index.js +41 -15
  11. package/dist/cjs/view/FlexibleCard/components/actions/action/view-action/index.js +33 -1
  12. package/dist/cjs/view/FlexibleCard/components/utils.js +9 -20
  13. package/dist/cjs/view/FlexibleCard/index.js +14 -1
  14. package/dist/cjs/view/HoverCard/components/HoverCardContent.js +1 -0
  15. package/dist/cjs/view/LinkUrl/index.js +1 -1
  16. package/dist/es2019/extractors/block/index.js +2 -2
  17. package/dist/es2019/extractors/common/actions/extractActions.js +2 -23
  18. package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +7 -15
  19. package/dist/es2019/state/hooks/use-invoke-client-action/index.js +14 -8
  20. package/dist/es2019/utils/analytics/analytics.js +1 -1
  21. package/dist/es2019/view/BlockCard/views/flexible/FlexibleErroredView.js +1 -0
  22. package/dist/es2019/view/BlockCard/views/flexible/FlexibleResolvedView.js +4 -42
  23. package/dist/es2019/view/FlexibleCard/components/actions/action/download-action/index.js +15 -1
  24. package/dist/es2019/view/FlexibleCard/components/actions/action/preview-action/index.js +18 -7
  25. package/dist/es2019/view/FlexibleCard/components/actions/action/view-action/index.js +15 -1
  26. package/dist/es2019/view/FlexibleCard/components/utils.js +3 -17
  27. package/dist/es2019/view/FlexibleCard/index.js +11 -1
  28. package/dist/es2019/view/HoverCard/components/HoverCardContent.js +1 -0
  29. package/dist/es2019/view/LinkUrl/index.js +1 -1
  30. package/dist/esm/extractors/block/index.js +2 -2
  31. package/dist/esm/extractors/common/actions/extractActions.js +2 -30
  32. package/dist/esm/state/analytics/useSmartLinkAnalytics.js +7 -15
  33. package/dist/esm/state/hooks/use-invoke-client-action/index.js +20 -14
  34. package/dist/esm/utils/analytics/analytics.js +1 -1
  35. package/dist/esm/view/BlockCard/views/flexible/FlexibleErroredView.js +1 -0
  36. package/dist/esm/view/BlockCard/views/flexible/FlexibleResolvedView.js +4 -46
  37. package/dist/esm/view/FlexibleCard/components/actions/action/download-action/index.js +33 -1
  38. package/dist/esm/view/FlexibleCard/components/actions/action/preview-action/index.js +41 -15
  39. package/dist/esm/view/FlexibleCard/components/actions/action/view-action/index.js +33 -1
  40. package/dist/esm/view/FlexibleCard/components/utils.js +9 -20
  41. package/dist/esm/view/FlexibleCard/index.js +14 -1
  42. package/dist/esm/view/HoverCard/components/HoverCardContent.js +1 -0
  43. package/dist/esm/view/LinkUrl/index.js +1 -1
  44. package/dist/types/extractors/common/__mocks__/jsonld.d.ts +0 -1
  45. package/dist/types/extractors/common/actions/extractActions.d.ts +1 -1
  46. package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +4 -4
  47. package/dist/types/state/flexible-ui-context/index.d.ts +3 -119
  48. package/dist/types/state/flexible-ui-context/types.d.ts +6 -0
  49. package/dist/types/state/hooks/useSmartLink.d.ts +3 -3
  50. package/dist/types/utils/analytics/types.d.ts +3 -3
  51. package/dist/types/utils/mocks.d.ts +3 -3
  52. package/dist/types/view/Card/index.d.ts +1 -1
  53. package/dist/types/view/FlexibleCard/components/utils.d.ts +2 -63
  54. package/dist/types/view/FlexibleCard/types.d.ts +2 -3
  55. package/dist/types-ts4.5/extractors/common/__mocks__/jsonld.d.ts +0 -1
  56. package/dist/types-ts4.5/extractors/common/actions/extractActions.d.ts +1 -1
  57. package/dist/types-ts4.5/state/analytics/useSmartLinkAnalytics.d.ts +4 -4
  58. package/dist/types-ts4.5/state/flexible-ui-context/index.d.ts +3 -119
  59. package/dist/types-ts4.5/state/flexible-ui-context/types.d.ts +6 -0
  60. package/dist/types-ts4.5/state/hooks/useSmartLink.d.ts +3 -3
  61. package/dist/types-ts4.5/utils/analytics/types.d.ts +3 -3
  62. package/dist/types-ts4.5/utils/mocks.d.ts +3 -3
  63. package/dist/types-ts4.5/view/Card/index.d.ts +1 -1
  64. package/dist/types-ts4.5/view/FlexibleCard/components/utils.d.ts +2 -63
  65. package/dist/types-ts4.5/view/FlexibleCard/types.d.ts +2 -3
  66. package/package.json +1 -1
  67. package/report.api.md +6 -6
  68. package/tmp/api-report-tmp.d.ts +6 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 26.25.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`dc3345f4b47`](https://bitbucket.org/atlassian/atlassian-frontend/commits/dc3345f4b47) - Refactor flexible card to use client action hook. (Minor due to the change to the deprecated hook.)
8
+
9
+ ### Patch Changes
10
+
11
+ - [`2c8b781fd3a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/2c8b781fd3a) - cleanup: remove server actions from actions extractor
12
+
3
13
  ## 26.24.0
4
14
 
5
15
  ### Minor Changes
@@ -38,7 +38,7 @@ var extractBlockDetails = function extractBlockDetails(jsonLd) {
38
38
  var extractBlockActions = function extractBlockActions(props, jsonLd, opts, platform, meta) {
39
39
  if (opts) {
40
40
  var handleInvoke = opts.handleInvoke;
41
- var actions = (0, _extractActions.extractActions)(jsonLd, handleInvoke);
41
+ var actions = (0, _extractActions.extractClientActions)(jsonLd, handleInvoke);
42
42
  var previewAction = (0, _extractPreviewAction.extractPreviewAction)(_objectSpread(_objectSpread({}, opts), {}, {
43
43
  viewProps: props,
44
44
  jsonLd: jsonLd,
@@ -4,9 +4,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.extractActions = extractActions;
7
+ exports.extractClientActions = extractClientActions;
8
8
  exports.getActionsFromJsonLd = void 0;
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
10
  var _ViewAction = require("../../../view/BlockCard/actions/ViewAction");
12
11
  var _DownloadAction = require("../../../view/BlockCard/actions/DownloadAction");
@@ -45,27 +44,6 @@ var getClientActionProps = function getClientActionProps(jsonLd, action, handler
45
44
  }
46
45
  });
47
46
  };
48
- var getServerActionProps = function getServerActionProps(jsonLd, action, handler) {
49
- var id = action['@id'] || action['@type'];
50
- var data = {
51
- type: 'server',
52
- key: action.identifier,
53
- action: {
54
- type: action['@type'],
55
- payload: {
56
- id: id,
57
- context: jsonLd.context
58
- }
59
- }
60
- };
61
- return {
62
- id: id,
63
- text: action.name,
64
- promise: function promise() {
65
- return handler(data);
66
- }
67
- };
68
- };
69
47
  var getActionsFromJsonLd = function getActionsFromJsonLd(jsonLd) {
70
48
  var actions = jsonLd && jsonLd['schema:potentialAction'];
71
49
  if (!actions) {
@@ -77,17 +55,11 @@ var getActionsFromJsonLd = function getActionsFromJsonLd(jsonLd) {
77
55
  return actions;
78
56
  };
79
57
  exports.getActionsFromJsonLd = getActionsFromJsonLd;
80
- function extractActions(jsonLd, handler) {
58
+ function extractClientActions(jsonLd, handler) {
81
59
  var actions = getActionsFromJsonLd(jsonLd);
82
60
  var clientActions = actions.filter(isClientAction);
83
- var serverActions = actions.filter(function (action) {
84
- return !isClientAction(action);
85
- });
86
61
  var clientActionImpls = clientActions.map(function (action) {
87
62
  return getClientActionProps(jsonLd, action, handler);
88
63
  });
89
- var serverActionImpls = serverActions.map(function (action) {
90
- return getServerActionProps(jsonLd, action, handler);
91
- });
92
- return [].concat((0, _toConsumableArray2.default)(clientActionImpls), (0, _toConsumableArray2.default)(serverActionImpls));
64
+ return clientActionImpls;
93
65
  }
@@ -254,11 +254,11 @@ var useSmartLinkAnalytics = function useSmartLinkAnalytics(url, _dispatchAnalyti
254
254
  * @param extensionKey The extensionKey of the Smart Link resovler invoked.
255
255
  * @param actionType The type of the action that was clicked, e.g. PreviewAction
256
256
  * @param display Whether the card was an Inline, Block, Embed or Flexible UI.
257
- * @param invokeType Whether the action invoked made a call to a server.
257
+ * @param invokeType @deprecated {@link https://hello.atlassian.net/browse/ENGHEALTH-2681 Internal documentation for deprecation (no external access)}
258
258
  * @returns
259
259
  */
260
260
  actionClickedEvent: function actionClickedEvent(_ref6) {
261
- var experienceId = _ref6.id,
261
+ var id = _ref6.id,
262
262
  actionType = _ref6.actionType,
263
263
  display = _ref6.display,
264
264
  invokeType = _ref6.invokeType,
@@ -269,14 +269,8 @@ var useSmartLinkAnalytics = function useSmartLinkAnalytics(url, _dispatchAnalyti
269
269
  destinationSubproduct = _ref6.destinationSubproduct,
270
270
  location = _ref6.location;
271
271
  var extensionKey = overrideExtensionKey !== null && overrideExtensionKey !== void 0 ? overrideExtensionKey : extractedExtensionKey;
272
- (0, _ufoExperiences.startUfoExperience)('smart-link-action-invocation', experienceId, {
273
- actionType: actionType,
274
- display: display,
275
- extensionKey: extensionKey,
276
- invokeType: invokeType
277
- });
278
272
  dispatchAnalytics(applyCommonAttributes((0, _analytics.uiActionClickedEvent)({
279
- id: defaultId,
273
+ id: id !== null && id !== void 0 ? id : defaultId,
280
274
  actionType: actionType,
281
275
  display: display,
282
276
  extensionKey: extensionKey,
@@ -534,7 +528,7 @@ var useSmartLinkAnalytics = function useSmartLinkAnalytics(url, _dispatchAnalyti
534
528
  * @param display Whether the card was an Inline, Block, Embed or Flexible UI.
535
529
  */
536
530
  invokeSucceededEvent: function invokeSucceededEvent(_ref13) {
537
- var experienceId = _ref13.id,
531
+ var id = _ref13.id,
538
532
  actionType = _ref13.actionType,
539
533
  display = _ref13.display,
540
534
  extensionKey = _ref13.extensionKey,
@@ -543,9 +537,8 @@ var useSmartLinkAnalytics = function useSmartLinkAnalytics(url, _dispatchAnalyti
543
537
  destinationProduct = _ref13.destinationProduct,
544
538
  destinationSubproduct = _ref13.destinationSubproduct,
545
539
  location = _ref13.location;
546
- (0, _ufoExperiences.succeedUfoExperience)('smart-link-action-invocation', experienceId);
547
540
  dispatchAnalytics(applyCommonAttributes((0, _analytics.invokeSucceededEvent)({
548
- id: defaultId,
541
+ id: id !== null && id !== void 0 ? id : defaultId,
549
542
  actionType: actionType,
550
543
  display: display,
551
544
  extensionKey: extensionKey,
@@ -565,7 +558,7 @@ var useSmartLinkAnalytics = function useSmartLinkAnalytics(url, _dispatchAnalyti
565
558
  * @param reason The reason the invocation failed.
566
559
  */
567
560
  invokeFailedEvent: function invokeFailedEvent(_ref14) {
568
- var experienceId = _ref14.id,
561
+ var id = _ref14.id,
569
562
  actionType = _ref14.actionType,
570
563
  display = _ref14.display,
571
564
  reason = _ref14.reason,
@@ -575,9 +568,8 @@ var useSmartLinkAnalytics = function useSmartLinkAnalytics(url, _dispatchAnalyti
575
568
  destinationProduct = _ref14.destinationProduct,
576
569
  destinationSubproduct = _ref14.destinationSubproduct,
577
570
  location = _ref14.location;
578
- (0, _ufoExperiences.failUfoExperience)('smart-link-action-invocation', experienceId);
579
571
  dispatchAnalytics(applyCommonAttributes((0, _analytics.invokeFailedEvent)({
580
- id: defaultId,
572
+ id: id !== null && id !== void 0 ? id : defaultId,
581
573
  actionType: actionType,
582
574
  display: display,
583
575
  reason: reason,
@@ -11,8 +11,11 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
11
11
  var _react = require("react");
12
12
  var _uuid = _interopRequireDefault(require("uuid"));
13
13
  var measure = _interopRequireWildcard(require("../../../utils/performance"));
14
+ var _analytics = require("../../analytics");
14
15
  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
16
  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; }
17
+ var ACTION_EXPERIENCE_NAME = 'smart-link-action-invocation';
18
+
16
19
  /**
17
20
  * Invoke client action such as preview, download and open link
18
21
  */
@@ -29,45 +32,48 @@ var useInvokeClientAction = function useInvokeClientAction(_ref) {
29
32
  markName = "".concat(experienceId, "-").concat(actionType);
30
33
  measure.mark(markName, 'pending');
31
34
  _context.prev = 4;
32
- // Begin analytics instrumentation.
33
- analytics === null || analytics === void 0 ? void 0 : analytics.ui.actionClickedEvent({
34
- id: experienceId,
35
- extensionKey: extensionKey,
35
+ // Begin UFO experience
36
+ (0, _analytics.startUfoExperience)(ACTION_EXPERIENCE_NAME, experienceId, {
36
37
  actionType: actionType,
37
38
  display: display,
39
+ extensionKey: extensionKey,
38
40
  invokeType: 'client'
39
41
  });
40
42
 
43
+ // Begin analytics instrumentation.
44
+ analytics === null || analytics === void 0 ? void 0 : analytics.ui.actionClickedEvent({
45
+ actionType: actionType,
46
+ display: display
47
+ });
48
+
41
49
  // Invoke action
42
- _context.next = 8;
50
+ _context.next = 9;
43
51
  return actionFn();
44
- case 8:
52
+ case 9:
45
53
  result = _context.sent;
46
54
  measure.mark(markName, 'resolved');
55
+ (0, _analytics.succeedUfoExperience)(ACTION_EXPERIENCE_NAME, experienceId);
47
56
  analytics === null || analytics === void 0 ? void 0 : analytics.operational.invokeSucceededEvent({
48
- id: experienceId,
49
- extensionKey: extensionKey,
50
57
  actionType: actionType,
51
58
  display: display
52
59
  });
53
60
  return _context.abrupt("return", result);
54
- case 14:
55
- _context.prev = 14;
61
+ case 16:
62
+ _context.prev = 16;
56
63
  _context.t0 = _context["catch"](4);
57
64
  measure.mark(markName, 'errored');
65
+ (0, _analytics.failUfoExperience)(ACTION_EXPERIENCE_NAME, experienceId);
58
66
  reason = typeof _context.t0 === 'string' ? _context.t0 : _context.t0 === null || _context.t0 === void 0 ? void 0 : _context.t0.message;
59
67
  analytics === null || analytics === void 0 ? void 0 : analytics.operational.invokeFailedEvent({
60
- id: experienceId,
61
- extensionKey: extensionKey,
62
68
  actionType: actionType,
63
69
  display: display,
64
70
  reason: reason
65
71
  });
66
- case 19:
72
+ case 22:
67
73
  case "end":
68
74
  return _context.stop();
69
75
  }
70
- }, _callee, null, [[4, 14]]);
76
+ }, _callee, null, [[4, 16]]);
71
77
  }));
72
78
  return function (_x) {
73
79
  return _ref3.apply(this, arguments);
@@ -21,7 +21,7 @@ exports.ANALYTICS_CHANNEL = ANALYTICS_CHANNEL;
21
21
  var context = {
22
22
  componentName: 'smart-cards',
23
23
  packageName: "@atlaskit/smart-card",
24
- packageVersion: "26.24.0"
24
+ packageVersion: "26.25.0"
25
25
  };
26
26
  exports.context = context;
27
27
  var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
@@ -41,6 +41,7 @@ var FlexibleErroredView = function FlexibleErroredView(_ref) {
41
41
  return onAuthorize ? [(0, _RetryAction.RetryAction)(onAuthorize)] : [];
42
42
  }, [onAuthorize]);
43
43
  return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, {
44
+ appearance: "block",
44
45
  cardState: cardState,
45
46
  onAuthorize: onAuthorize,
46
47
  onClick: onClick,
@@ -14,7 +14,6 @@ var _titleBlock = _interopRequireDefault(require("../../../FlexibleCard/componen
14
14
  var _blocks = require("../../../FlexibleCard/components/blocks");
15
15
  var _styled = require("./styled");
16
16
  var _constants = require("../../../../constants");
17
- var _uuid = _interopRequireDefault(require("uuid"));
18
17
  var _utils = require("./utils");
19
18
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
20
19
  var _withFlexibleUIBlockCardStyle = require("./utils/withFlexibleUIBlockCardStyle");
@@ -45,11 +44,6 @@ var FlexibleResolvedView = function FlexibleResolvedView(_ref) {
45
44
  (0, _react.useEffect)(function () {
46
45
  setIsPreviewBlockErrored(false);
47
46
  }, [url, cardState]);
48
- var _useState3 = (0, _react.useState)(function () {
49
- return id ? id : (0, _uuid.default)();
50
- }),
51
- _useState4 = (0, _slicedToArray2.default)(_useState3, 1),
52
- analyticsId = _useState4[0];
53
47
  var _ref2 = (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? (0, _utils.getSimulatedBetterMetadata)(cardState.details) : (0, _utils.getSimulatedMetadata)(cardState.details),
54
48
  titleMetadata = _ref2.titleMetadata,
55
49
  topMetadata = _ref2.topMetadata,
@@ -96,49 +90,13 @@ var FlexibleResolvedView = function FlexibleResolvedView(_ref) {
96
90
  }, {
97
91
  actions: [{
98
92
  name: _constants.ActionName.PreviewAction,
99
- hideIcon: true,
100
- onClick: function onClick() {
101
- analytics.ui.actionClickedEvent({
102
- id: analyticsId,
103
- actionType: 'PreviewAction',
104
- display: _constants.CardDisplay.Block
105
- });
106
- analytics.operational.invokeSucceededEvent({
107
- id: analyticsId,
108
- actionType: 'PreviewAction',
109
- display: _constants.CardDisplay.Block
110
- });
111
- }
93
+ hideIcon: true
112
94
  }, {
113
95
  name: _constants.ActionName.ViewAction,
114
- hideIcon: true,
115
- onClick: function onClick() {
116
- analytics.ui.actionClickedEvent({
117
- id: analyticsId,
118
- actionType: 'ViewAction',
119
- display: _constants.CardDisplay.Block
120
- });
121
- analytics.operational.invokeSucceededEvent({
122
- id: analyticsId,
123
- actionType: 'ViewAction',
124
- display: _constants.CardDisplay.Block
125
- });
126
- }
96
+ hideIcon: true
127
97
  }, {
128
98
  name: _constants.ActionName.DownloadAction,
129
- hideIcon: true,
130
- onClick: function onClick() {
131
- analytics.ui.actionClickedEvent({
132
- id: analyticsId,
133
- actionType: 'DownloadAction',
134
- display: _constants.CardDisplay.Block
135
- });
136
- analytics.operational.invokeSucceededEvent({
137
- id: analyticsId,
138
- actionType: 'DownloadAction',
139
- display: _constants.CardDisplay.Block
140
- });
141
- }
99
+ hideIcon: true
142
100
  }]
143
101
  })));
144
102
  };
@@ -5,11 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
9
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
12
  var _react = _interopRequireDefault(require("react"));
11
13
  var _index = _interopRequireDefault(require("../index"));
12
14
  var _utils = require("../../../../../../utils");
15
+ var _constants = require("../../../../../../constants");
16
+ var _useInvokeClientAction = _interopRequireDefault(require("../../../../../../state/hooks/use-invoke-client-action"));
17
+ var _flexibleUiContext = require("../../../../../../state/flexible-ui-context");
13
18
  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
19
  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
20
  var DownloadAction = function DownloadAction(props) {
@@ -19,10 +24,37 @@ var DownloadAction = function DownloadAction(props) {
19
24
  _onClick = props.onClick,
20
25
  testId = props.testId,
21
26
  url = props.url;
27
+ var analytics = (0, _flexibleUiContext.useFlexibleUiAnalyticsContext)();
28
+ var invoke = (0, _useInvokeClientAction.default)({
29
+ analytics: analytics
30
+ });
22
31
  if (downloadUrl && url) {
23
32
  var action = _objectSpread(_objectSpread({}, props), {}, {
24
33
  onClick: function onClick() {
25
- (0, _utils.downloadUrl)(downloadUrl);
34
+ invoke({
35
+ actionType: _constants.ActionName.DownloadAction,
36
+ actionFn: function () {
37
+ var _actionFn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
38
+ return _regenerator.default.wrap(function _callee$(_context) {
39
+ while (1) switch (_context.prev = _context.next) {
40
+ case 0:
41
+ return _context.abrupt("return", (0, _utils.downloadUrl)(downloadUrl));
42
+ case 1:
43
+ case "end":
44
+ return _context.stop();
45
+ }
46
+ }, _callee);
47
+ }));
48
+ function actionFn() {
49
+ return _actionFn.apply(this, arguments);
50
+ }
51
+ return actionFn;
52
+ }(),
53
+ // These values have already been set in analytics context.
54
+ // We only pass these here for ufo experience.
55
+ display: analytics === null || analytics === void 0 ? void 0 : analytics.display,
56
+ extensionKey: analytics === null || analytics === void 0 ? void 0 : analytics.extensionKey
57
+ });
26
58
  if (_onClick) {
27
59
  _onClick();
28
60
  }
@@ -5,15 +5,18 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
12
  var _react = _interopRequireDefault(require("react"));
11
13
  var _index = _interopRequireDefault(require("../index"));
12
14
  var _flexibleUiContext = require("../../../../../../state/flexible-ui-context");
13
- var _state = require("../../../../../../state");
14
15
  var _reactIntlNext = require("react-intl-next");
15
16
  var _messages = require("../../../../../../messages");
16
17
  var _utils = require("../../../utils");
18
+ var _useInvokeClientAction = _interopRequireDefault(require("../../../../../../state/hooks/use-invoke-client-action"));
19
+ var _constants = require("../../../../../../constants");
17
20
  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; }
18
21
  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; }
19
22
  var PreviewAction = function PreviewAction(props) {
@@ -28,23 +31,46 @@ var PreviewAction = function PreviewAction(props) {
28
31
  providerName = props.providerName,
29
32
  downloadUrl = props.downloadUrl,
30
33
  isSupportTheming = props.isSupportTheming;
31
- var defaultAnalytics = (0, _state.useSmartLinkAnalytics)(url, function () {});
32
- var analytics = (0, _flexibleUiContext.useFlexibleUiAnalyticsContext)() || defaultAnalytics;
34
+ var analytics = (0, _flexibleUiContext.useFlexibleUiAnalyticsContext)();
35
+ var invoke = (0, _useInvokeClientAction.default)({
36
+ analytics: analytics
37
+ });
33
38
  if (src && url) {
34
- var embedModal = function embedModal() {
35
- return (0, _utils.openEmbedModalWithFlexibleUiIcon)({
36
- title: title,
37
- providerName: providerName,
38
- downloadUrl: downloadUrl,
39
- isSupportTheming: isSupportTheming,
40
- analytics: analytics,
41
- linkIcon: linkIcon,
42
- src: src
43
- });
44
- };
39
+ var actionFn = /*#__PURE__*/function () {
40
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
41
+ return _regenerator.default.wrap(function _callee$(_context) {
42
+ while (1) switch (_context.prev = _context.next) {
43
+ case 0:
44
+ return _context.abrupt("return", (0, _utils.openEmbedModalWithFlexibleUiIcon)({
45
+ download: downloadUrl,
46
+ title: title,
47
+ providerName: providerName,
48
+ isSupportTheming: isSupportTheming,
49
+ analytics: analytics,
50
+ linkIcon: linkIcon,
51
+ src: src,
52
+ url: url
53
+ }));
54
+ case 1:
55
+ case "end":
56
+ return _context.stop();
57
+ }
58
+ }, _callee);
59
+ }));
60
+ return function actionFn() {
61
+ return _ref.apply(this, arguments);
62
+ };
63
+ }();
45
64
  var action = _objectSpread(_objectSpread({}, props), {}, {
46
65
  onClick: function onClick() {
47
- embedModal();
66
+ invoke({
67
+ actionType: _constants.ActionName.PreviewAction,
68
+ actionFn: actionFn,
69
+ // These values have already been set in analytics context.
70
+ // We only pass these here for ufo experience.
71
+ display: analytics === null || analytics === void 0 ? void 0 : analytics.display,
72
+ extensionKey: analytics === null || analytics === void 0 ? void 0 : analytics.extensionKey
73
+ });
48
74
  if (_onClick) {
49
75
  _onClick();
50
76
  }
@@ -5,11 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
9
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
12
  var _react = _interopRequireDefault(require("react"));
11
13
  var _index = _interopRequireDefault(require("../index"));
12
14
  var _utils = require("../../../../../../utils");
15
+ var _constants = require("../../../../../../constants");
16
+ var _flexibleUiContext = require("../../../../../../state/flexible-ui-context");
17
+ var _useInvokeClientAction = _interopRequireDefault(require("../../../../../../state/hooks/use-invoke-client-action"));
13
18
  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
19
  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
20
  var ViewAction = function ViewAction(props) {
@@ -19,10 +24,37 @@ var ViewAction = function ViewAction(props) {
19
24
  _onClick = props.onClick,
20
25
  viewUrl = props.viewUrl,
21
26
  url = props.url;
27
+ var analytics = (0, _flexibleUiContext.useFlexibleUiAnalyticsContext)();
28
+ var invoke = (0, _useInvokeClientAction.default)({
29
+ analytics: analytics
30
+ });
22
31
  if (viewUrl && url) {
23
32
  var action = _objectSpread(_objectSpread({}, props), {}, {
24
33
  onClick: function onClick() {
25
- (0, _utils.openUrl)(viewUrl);
34
+ invoke({
35
+ actionType: _constants.ActionName.ViewAction,
36
+ actionFn: function () {
37
+ var _actionFn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
38
+ return _regenerator.default.wrap(function _callee$(_context) {
39
+ while (1) switch (_context.prev = _context.next) {
40
+ case 0:
41
+ return _context.abrupt("return", (0, _utils.openUrl)(viewUrl));
42
+ case 1:
43
+ case "end":
44
+ return _context.stop();
45
+ }
46
+ }, _callee);
47
+ }));
48
+ function actionFn() {
49
+ return _actionFn.apply(this, arguments);
50
+ }
51
+ return actionFn;
52
+ }(),
53
+ // These values have already been set in analytics context.
54
+ // We only pass these here for ufo experience.
55
+ display: analytics === null || analytics === void 0 ? void 0 : analytics.display,
56
+ extensionKey: analytics === null || analytics === void 0 ? void 0 : analytics.extensionKey
57
+ });
26
58
  if (_onClick) {
27
59
  _onClick();
28
60
  }
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.sizeToButtonSpacing = exports.openEmbedModalWithFlexibleUiIcon = exports.hasWhiteSpace = exports.getTruncateStyles = exports.getMaxLines = exports.getMaxLineHeight = exports.getLinkSizeStyles = exports.getLinkLineHeight = exports.getIconWidth = exports.getIconSizeStyles = exports.getFormattedMessageAsString = exports.getFormattedMessage = void 0;
8
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
8
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
11
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
@@ -14,7 +15,10 @@ var _reactIntlNext = require("react-intl-next");
14
15
  var _constants = require("../../../constants");
15
16
  var _icon = _interopRequireDefault(require("./elements/icon"));
16
17
  var _utils = require("../../EmbedModal/utils");
18
+ var _excluded = ["linkIcon"];
17
19
  var _sizeToButtonSpacing, _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
20
+ 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; }
21
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
22
  var sizeToButtonSpacing = (_sizeToButtonSpacing = {}, (0, _defineProperty2.default)(_sizeToButtonSpacing, _constants.SmartLinkSize.Small, 'none'), (0, _defineProperty2.default)(_sizeToButtonSpacing, _constants.SmartLinkSize.Medium, 'compact'), (0, _defineProperty2.default)(_sizeToButtonSpacing, _constants.SmartLinkSize.Large, 'compact'), (0, _defineProperty2.default)(_sizeToButtonSpacing, _constants.SmartLinkSize.XLarge, 'default'), _sizeToButtonSpacing);
19
23
  exports.sizeToButtonSpacing = sizeToButtonSpacing;
20
24
  var getFormattedMessage = function getFormattedMessage(message) {
@@ -116,35 +120,20 @@ var hasWhiteSpace = function hasWhiteSpace(str) {
116
120
  };
117
121
  exports.hasWhiteSpace = hasWhiteSpace;
118
122
  var openEmbedModalWithFlexibleUiIcon = function openEmbedModalWithFlexibleUiIcon(_ref) {
119
- var analytics = _ref.analytics,
120
- downloadUrl = _ref.downloadUrl,
121
- linkIcon = _ref.linkIcon,
122
- onClose = _ref.onClose,
123
- providerName = _ref.providerName,
124
- src = _ref.src,
125
- title = _ref.title,
126
- url = _ref.url,
127
- isSupportTheming = _ref.isSupportTheming;
123
+ var linkIcon = _ref.linkIcon,
124
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
128
125
  var icon = {
129
126
  icon: /*#__PURE__*/_react.default.createElement(_icon.default, (0, _extends2.default)({}, linkIcon, {
130
127
  size: _constants.SmartLinkSize.Large
131
128
  })),
132
129
  isFlexibleUi: true
133
130
  };
134
- return (0, _utils.openEmbedModal)({
135
- analytics: analytics,
136
- download: downloadUrl,
131
+ return (0, _utils.openEmbedModal)(_objectSpread(_objectSpread({}, props), {}, {
137
132
  icon: icon,
138
133
  // Flex should not send origin as block card. It should be able to support
139
134
  // its internal parent components like hover card, block card and
140
135
  // itself as a standalone. To be investigated and fix in EDM-7520.
141
- origin: 'smartLinkCard',
142
- providerName: providerName,
143
- onClose: onClose,
144
- src: src,
145
- title: title,
146
- url: url,
147
- isSupportTheming: isSupportTheming
148
- });
136
+ origin: 'smartLinkCard'
137
+ }));
149
138
  };
150
139
  exports.openEmbedModalWithFlexibleUiIcon = openEmbedModalWithFlexibleUiIcon;
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _constants = require("../../constants");
12
13
  var _container = _interopRequireDefault(require("./components/container"));
@@ -14,6 +15,8 @@ var _flexibleUiContext = require("../../state/flexible-ui-context");
14
15
  var _utils = require("./utils");
15
16
  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); }
16
17
  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
+ 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; }
19
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
20
  /**
18
21
  * This represents a Flexible Card: a link represented by a card with metadata.
19
22
  * This is the container in which all Flexible UI Blocks and Elements exist.
@@ -21,7 +24,10 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
21
24
  * @see Container
22
25
  */
23
26
  var FlexibleCard = function FlexibleCard(_ref) {
27
+ var _details$meta2;
24
28
  var analytics = _ref.analytics,
29
+ _ref$appearance = _ref.appearance,
30
+ appearance = _ref$appearance === void 0 ? 'flexible' : _ref$appearance,
25
31
  cardState = _ref.cardState,
26
32
  children = _ref.children,
27
33
  id = _ref.id,
@@ -52,6 +58,13 @@ var FlexibleCard = function FlexibleCard(_ref) {
52
58
  var retry = (0, _utils.getRetryOptions)(url, status, details, onAuthorize);
53
59
  var _ref2 = context || {},
54
60
  title = _ref2.title;
61
+ var analyticsContext = (0, _react.useMemo)(function () {
62
+ var _details$meta;
63
+ return analytics ? _objectSpread(_objectSpread({}, analytics), {}, {
64
+ display: appearance,
65
+ extensionKey: details === null || details === void 0 ? void 0 : (_details$meta = details.meta) === null || _details$meta === void 0 ? void 0 : _details$meta.key
66
+ }) : undefined;
67
+ }, [analytics, appearance, details === null || details === void 0 ? void 0 : (_details$meta2 = details.meta) === null || _details$meta2 === void 0 ? void 0 : _details$meta2.key]);
55
68
  (0, _react.useEffect)(function () {
56
69
  switch (status) {
57
70
  case _constants.SmartLinkStatus.Resolved:
@@ -77,7 +90,7 @@ var FlexibleCard = function FlexibleCard(_ref) {
77
90
  }
78
91
  }, [onError, onResolve, status, title, url]);
79
92
  return /*#__PURE__*/_react.default.createElement(_flexibleUiContext.FlexibleUiAnalyticsContext.Provider, {
80
- value: analytics
93
+ value: analyticsContext
81
94
  }, /*#__PURE__*/_react.default.createElement(_flexibleUiContext.FlexibleUiOptionContext.Provider, {
82
95
  value: ui
83
96
  }, /*#__PURE__*/_react.default.createElement(_flexibleUiContext.FlexibleUiContext.Provider, {
@@ -150,6 +150,7 @@ var HoverCardContent = function HoverCardContent(_ref) {
150
150
  subtitle: subtitle
151
151
  };
152
152
  var flexibleCardProps = {
153
+ appearance: _constants.CardDisplay.HoverCardPreview,
153
154
  cardState: cardState,
154
155
  onClick: onClick,
155
156
  onResolve: onResolve,
@@ -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.24.0",
21
+ packageVersion: "26.25.0",
22
22
  componentName: 'linkUrl'
23
23
  };
24
24
  var Link = (0, _click.withLinkClickedEvent)('a');