@atlaskit/smart-card 32.6.0 → 32.7.1

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 (160) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/analytics.spec.yaml +63 -9
  3. package/dist/cjs/common/analytics/types.js +5 -0
  4. package/dist/cjs/extractors/action/extract-invoke-copy-link-action.js +53 -0
  5. package/dist/cjs/extractors/action/extract-invoke-download-action.js +57 -0
  6. package/dist/cjs/extractors/action/extract-invoke-preview-action.js +78 -0
  7. package/dist/cjs/extractors/action/extract-invoke-view-action.js +60 -0
  8. package/dist/cjs/extractors/action/extractDownloadActionProps.js +4 -0
  9. package/dist/cjs/extractors/action/extractPreviewActionProps.js +4 -0
  10. package/dist/cjs/extractors/action/extractViewActionProps.js +4 -0
  11. package/dist/cjs/extractors/action/types.js +5 -0
  12. package/dist/cjs/extractors/flexible/actions/extract-copy-link-action.js +12 -1
  13. package/dist/cjs/extractors/flexible/actions/extract-download-action.js +12 -1
  14. package/dist/cjs/extractors/flexible/actions/extract-preview-action.js +12 -1
  15. package/dist/cjs/extractors/flexible/actions/extract-view-action.js +3 -0
  16. package/dist/cjs/extractors/flexible/actions/index.js +40 -3
  17. package/dist/cjs/extractors/flexible/extract-state.js +19 -5
  18. package/dist/cjs/extractors/flexible/index.js +22 -8
  19. package/dist/cjs/state/hooks/use-invoke-client-action/index.js +56 -17
  20. package/dist/cjs/state/hooks-external/useSmartLinkActions.js +22 -3
  21. package/dist/cjs/utils/analytics/LinkAnalyticsContext.js +7 -2
  22. package/dist/cjs/utils/analytics/analytics.js +1 -1
  23. package/dist/cjs/utils/mocks.js +4 -1
  24. package/dist/cjs/view/BlockCard/views/flexible/FlexibleResolvedView.js +1 -0
  25. package/dist/cjs/view/BlockCard/views/flexible/unresolved-view/index.js +1 -0
  26. package/dist/cjs/view/CardWithUrl/component.js +1 -0
  27. package/dist/cjs/view/EmbedModal/index.js +72 -51
  28. package/dist/cjs/view/FlexibleCard/components/actions/copy-link-action/index.js +65 -32
  29. package/dist/cjs/view/FlexibleCard/components/actions/download-action/index.js +36 -28
  30. package/dist/cjs/view/FlexibleCard/components/actions/preview-action/index.js +40 -32
  31. package/dist/cjs/view/FlexibleCard/components/elements/lozenge/lozenge-action/lozenge-action-error/index.js +13 -6
  32. package/dist/cjs/view/FlexibleCard/components/utils.js +4 -0
  33. package/dist/cjs/view/FlexibleCard/index.js +11 -1
  34. package/dist/cjs/view/HoverCard/components/HoverCardContent.js +1 -0
  35. package/dist/cjs/view/LinkUrl/index.js +1 -1
  36. package/dist/es2019/common/analytics/types.js +1 -0
  37. package/dist/es2019/extractors/action/extract-invoke-copy-link-action.js +29 -0
  38. package/dist/es2019/extractors/action/extract-invoke-download-action.js +31 -0
  39. package/dist/es2019/extractors/action/extract-invoke-preview-action.js +57 -0
  40. package/dist/es2019/extractors/action/extract-invoke-view-action.js +34 -0
  41. package/dist/es2019/extractors/action/extractDownloadActionProps.js +5 -0
  42. package/dist/es2019/extractors/action/extractPreviewActionProps.js +5 -0
  43. package/dist/es2019/extractors/action/extractViewActionProps.js +5 -0
  44. package/dist/es2019/extractors/action/types.js +1 -0
  45. package/dist/es2019/extractors/flexible/actions/extract-copy-link-action.js +11 -0
  46. package/dist/es2019/extractors/flexible/actions/extract-download-action.js +12 -0
  47. package/dist/es2019/extractors/flexible/actions/extract-preview-action.js +12 -0
  48. package/dist/es2019/extractors/flexible/actions/extract-view-action.js +4 -0
  49. package/dist/es2019/extractors/flexible/actions/index.js +48 -3
  50. package/dist/es2019/extractors/flexible/extract-state.js +17 -5
  51. package/dist/es2019/extractors/flexible/index.js +17 -6
  52. package/dist/es2019/state/hooks/use-invoke-client-action/index.js +91 -43
  53. package/dist/es2019/state/hooks-external/useSmartLinkActions.js +21 -3
  54. package/dist/es2019/utils/analytics/LinkAnalyticsContext.js +3 -0
  55. package/dist/es2019/utils/analytics/analytics.js +1 -1
  56. package/dist/es2019/utils/mocks.js +4 -1
  57. package/dist/es2019/view/BlockCard/views/flexible/FlexibleResolvedView.js +1 -0
  58. package/dist/es2019/view/BlockCard/views/flexible/unresolved-view/index.js +1 -0
  59. package/dist/es2019/view/CardWithUrl/component.js +1 -0
  60. package/dist/es2019/view/EmbedModal/index.js +41 -20
  61. package/dist/es2019/view/FlexibleCard/components/actions/copy-link-action/index.js +31 -16
  62. package/dist/es2019/view/FlexibleCard/components/actions/download-action/index.js +20 -12
  63. package/dist/es2019/view/FlexibleCard/components/actions/preview-action/index.js +25 -17
  64. package/dist/es2019/view/FlexibleCard/components/elements/lozenge/lozenge-action/lozenge-action-error/index.js +14 -7
  65. package/dist/es2019/view/FlexibleCard/components/utils.js +4 -0
  66. package/dist/es2019/view/FlexibleCard/index.js +12 -1
  67. package/dist/es2019/view/HoverCard/components/HoverCardContent.js +1 -0
  68. package/dist/es2019/view/LinkUrl/index.js +1 -1
  69. package/dist/esm/common/analytics/types.js +1 -0
  70. package/dist/esm/extractors/action/extract-invoke-copy-link-action.js +46 -0
  71. package/dist/esm/extractors/action/extract-invoke-download-action.js +50 -0
  72. package/dist/esm/extractors/action/extract-invoke-preview-action.js +71 -0
  73. package/dist/esm/extractors/action/extract-invoke-view-action.js +53 -0
  74. package/dist/esm/extractors/action/extractDownloadActionProps.js +5 -0
  75. package/dist/esm/extractors/action/extractPreviewActionProps.js +5 -0
  76. package/dist/esm/extractors/action/extractViewActionProps.js +5 -0
  77. package/dist/esm/extractors/action/types.js +1 -0
  78. package/dist/esm/extractors/flexible/actions/extract-copy-link-action.js +11 -0
  79. package/dist/esm/extractors/flexible/actions/extract-download-action.js +12 -0
  80. package/dist/esm/extractors/flexible/actions/extract-preview-action.js +12 -0
  81. package/dist/esm/extractors/flexible/actions/extract-view-action.js +4 -0
  82. package/dist/esm/extractors/flexible/actions/index.js +42 -5
  83. package/dist/esm/extractors/flexible/extract-state.js +19 -5
  84. package/dist/esm/extractors/flexible/index.js +19 -8
  85. package/dist/esm/state/hooks/use-invoke-client-action/index.js +56 -17
  86. package/dist/esm/state/hooks-external/useSmartLinkActions.js +22 -3
  87. package/dist/esm/utils/analytics/LinkAnalyticsContext.js +7 -2
  88. package/dist/esm/utils/analytics/analytics.js +1 -1
  89. package/dist/esm/utils/mocks.js +4 -1
  90. package/dist/esm/view/BlockCard/views/flexible/FlexibleResolvedView.js +1 -0
  91. package/dist/esm/view/BlockCard/views/flexible/unresolved-view/index.js +1 -0
  92. package/dist/esm/view/CardWithUrl/component.js +1 -0
  93. package/dist/esm/view/EmbedModal/index.js +73 -52
  94. package/dist/esm/view/FlexibleCard/components/actions/copy-link-action/index.js +65 -32
  95. package/dist/esm/view/FlexibleCard/components/actions/download-action/index.js +36 -28
  96. package/dist/esm/view/FlexibleCard/components/actions/preview-action/index.js +40 -32
  97. package/dist/esm/view/FlexibleCard/components/elements/lozenge/lozenge-action/lozenge-action-error/index.js +13 -6
  98. package/dist/esm/view/FlexibleCard/components/utils.js +4 -0
  99. package/dist/esm/view/FlexibleCard/index.js +11 -1
  100. package/dist/esm/view/HoverCard/components/HoverCardContent.js +1 -0
  101. package/dist/esm/view/LinkUrl/index.js +1 -1
  102. package/dist/types/common/analytics/generated/analytics.types.d.ts +63 -2
  103. package/dist/types/common/analytics/types.d.ts +2 -0
  104. package/dist/types/extractors/action/extract-invoke-copy-link-action.d.ts +3 -0
  105. package/dist/types/extractors/action/extract-invoke-download-action.d.ts +3 -0
  106. package/dist/types/extractors/action/extract-invoke-preview-action.d.ts +11 -0
  107. package/dist/types/extractors/action/extract-invoke-view-action.d.ts +3 -0
  108. package/dist/types/extractors/action/extractDownloadActionProps.d.ts +4 -0
  109. package/dist/types/extractors/action/extractPreviewActionProps.d.ts +5 -1
  110. package/dist/types/extractors/action/extractViewActionProps.d.ts +4 -0
  111. package/dist/types/extractors/action/types.d.ts +9 -0
  112. package/dist/types/extractors/flexible/actions/extract-copy-link-action.d.ts +6 -0
  113. package/dist/types/extractors/flexible/actions/extract-download-action.d.ts +6 -0
  114. package/dist/types/extractors/flexible/actions/extract-preview-action.d.ts +6 -0
  115. package/dist/types/extractors/flexible/actions/extract-view-action.d.ts +3 -0
  116. package/dist/types/extractors/flexible/actions/index.d.ts +21 -4
  117. package/dist/types/extractors/flexible/extract-state.d.ts +5 -2
  118. package/dist/types/extractors/flexible/index.d.ts +1 -1
  119. package/dist/types/state/flexible-ui-context/types.d.ts +9 -3
  120. package/dist/types/state/hooks/use-invoke/types.d.ts +7 -1
  121. package/dist/types/state/hooks/use-invoke-client-action/index.d.ts +2 -2
  122. package/dist/types/state/hooks/use-invoke-client-action/types.d.ts +24 -2
  123. package/dist/types/state/hooks/use-resolve/index.d.ts +1 -0
  124. package/dist/types/view/EmbedModal/index.d.ts +4 -0
  125. package/dist/types/view/EmbedModal/types.d.ts +7 -0
  126. package/dist/types/view/FlexibleCard/components/elements/lozenge/lozenge-action/lozenge-action-error/index.d.ts +1 -1
  127. package/dist/types/view/FlexibleCard/components/elements/lozenge/lozenge-action/lozenge-action-error/types.d.ts +6 -0
  128. package/dist/types/view/FlexibleCard/components/utils.d.ts +3 -0
  129. package/dist/types/view/FlexibleCard/index.d.ts +1 -1
  130. package/dist/types/view/FlexibleCard/types.d.ts +12 -3
  131. package/dist/types-ts4.5/common/analytics/generated/analytics.types.d.ts +63 -2
  132. package/dist/types-ts4.5/common/analytics/types.d.ts +2 -0
  133. package/dist/types-ts4.5/extractors/action/extract-invoke-copy-link-action.d.ts +3 -0
  134. package/dist/types-ts4.5/extractors/action/extract-invoke-download-action.d.ts +3 -0
  135. package/dist/types-ts4.5/extractors/action/extract-invoke-preview-action.d.ts +11 -0
  136. package/dist/types-ts4.5/extractors/action/extract-invoke-view-action.d.ts +3 -0
  137. package/dist/types-ts4.5/extractors/action/extractDownloadActionProps.d.ts +4 -0
  138. package/dist/types-ts4.5/extractors/action/extractPreviewActionProps.d.ts +5 -1
  139. package/dist/types-ts4.5/extractors/action/extractViewActionProps.d.ts +4 -0
  140. package/dist/types-ts4.5/extractors/action/types.d.ts +9 -0
  141. package/dist/types-ts4.5/extractors/flexible/actions/extract-copy-link-action.d.ts +6 -0
  142. package/dist/types-ts4.5/extractors/flexible/actions/extract-download-action.d.ts +6 -0
  143. package/dist/types-ts4.5/extractors/flexible/actions/extract-preview-action.d.ts +6 -0
  144. package/dist/types-ts4.5/extractors/flexible/actions/extract-view-action.d.ts +3 -0
  145. package/dist/types-ts4.5/extractors/flexible/actions/index.d.ts +21 -4
  146. package/dist/types-ts4.5/extractors/flexible/extract-state.d.ts +5 -2
  147. package/dist/types-ts4.5/extractors/flexible/index.d.ts +1 -1
  148. package/dist/types-ts4.5/state/flexible-ui-context/types.d.ts +9 -3
  149. package/dist/types-ts4.5/state/hooks/use-invoke/types.d.ts +7 -1
  150. package/dist/types-ts4.5/state/hooks/use-invoke-client-action/index.d.ts +2 -2
  151. package/dist/types-ts4.5/state/hooks/use-invoke-client-action/types.d.ts +24 -2
  152. package/dist/types-ts4.5/state/hooks/use-resolve/index.d.ts +1 -0
  153. package/dist/types-ts4.5/view/EmbedModal/index.d.ts +8 -0
  154. package/dist/types-ts4.5/view/EmbedModal/types.d.ts +7 -0
  155. package/dist/types-ts4.5/view/FlexibleCard/components/elements/lozenge/lozenge-action/lozenge-action-error/index.d.ts +1 -1
  156. package/dist/types-ts4.5/view/FlexibleCard/components/elements/lozenge/lozenge-action/lozenge-action-error/types.d.ts +6 -0
  157. package/dist/types-ts4.5/view/FlexibleCard/components/utils.d.ts +3 -0
  158. package/dist/types-ts4.5/view/FlexibleCard/index.d.ts +1 -1
  159. package/dist/types-ts4.5/view/FlexibleCard/types.d.ts +12 -3
  160. package/package.json +6 -3
@@ -9,11 +9,13 @@ exports.default = void 0;
9
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
13
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
14
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
15
  var _react = _interopRequireWildcard(require("react"));
15
16
  var _reactIntlNext = require("react-intl-next");
16
17
  var _link = _interopRequireDefault(require("@atlaskit/icon/core/migration/link"));
18
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
19
  var _constants = require("../../../../../constants");
18
20
  var _messages = require("../../../../../messages");
19
21
  var _flexibleUiContext = require("../../../../../state/flexible-ui-context");
@@ -22,6 +24,8 @@ var _action = _interopRequireDefault(require("../action"));
22
24
  var _excluded = ["onClick"];
23
25
  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
26
  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; }
27
+ 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; }
28
+ 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; }
25
29
  var CopyLinkAction = function CopyLinkAction(_ref) {
26
30
  var _context$actions;
27
31
  var onClickCallback = _ref.onClick,
@@ -37,38 +41,67 @@ var CopyLinkAction = function CopyLinkAction(_ref) {
37
41
  tooltipMessage = _useState2[0],
38
42
  setTooltipMessage = _useState2[1];
39
43
  var onClick = (0, _react.useCallback)(function () {
40
- if (data && data.url) {
41
- invoke({
42
- actionType: _constants.ActionName.CopyLinkAction,
43
- actionFn: function () {
44
- var _actionFn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
45
- var _data$url;
46
- return _regenerator.default.wrap(function _callee$(_context) {
47
- while (1) switch (_context.prev = _context.next) {
48
- case 0:
49
- _context.next = 2;
50
- return navigator.clipboard.writeText((_data$url = data.url) !== null && _data$url !== void 0 ? _data$url : '');
51
- case 2:
52
- setTooltipMessage(_messages.messages.copied_url_to_clipboard);
53
- case 3:
54
- case "end":
55
- return _context.stop();
56
- }
57
- }, _callee);
58
- }));
59
- function actionFn() {
60
- return _actionFn.apply(this, arguments);
61
- }
62
- return actionFn;
63
- }(),
64
- // These values have already been set in analytics context.
65
- // We only pass these here for ufo experience.
66
- display: analytics === null || analytics === void 0 ? void 0 : analytics.display,
67
- extensionKey: analytics === null || analytics === void 0 ? void 0 : analytics.extensionKey
68
- });
69
- }
70
- if (onClickCallback) {
71
- onClickCallback();
44
+ if ((0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics')) {
45
+ if (data !== null && data !== void 0 && data.invokeAction) {
46
+ invoke(_objectSpread(_objectSpread({}, data.invokeAction), {}, {
47
+ actionFn: function () {
48
+ var _actionFn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
49
+ var _data$invokeAction;
50
+ return _regenerator.default.wrap(function _callee$(_context) {
51
+ while (1) switch (_context.prev = _context.next) {
52
+ case 0:
53
+ _context.next = 2;
54
+ return (_data$invokeAction = data.invokeAction) === null || _data$invokeAction === void 0 ? void 0 : _data$invokeAction.actionFn();
55
+ case 2:
56
+ setTooltipMessage(_messages.messages.copied_url_to_clipboard);
57
+ case 3:
58
+ case "end":
59
+ return _context.stop();
60
+ }
61
+ }, _callee);
62
+ }));
63
+ function actionFn() {
64
+ return _actionFn.apply(this, arguments);
65
+ }
66
+ return actionFn;
67
+ }()
68
+ }));
69
+ onClickCallback === null || onClickCallback === void 0 || onClickCallback();
70
+ }
71
+ } else {
72
+ if (data && data.url) {
73
+ invoke({
74
+ actionType: _constants.ActionName.CopyLinkAction,
75
+ actionFn: function () {
76
+ var _actionFn2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
77
+ var _data$url;
78
+ return _regenerator.default.wrap(function _callee2$(_context2) {
79
+ while (1) switch (_context2.prev = _context2.next) {
80
+ case 0:
81
+ _context2.next = 2;
82
+ return navigator.clipboard.writeText((_data$url = data.url) !== null && _data$url !== void 0 ? _data$url : '');
83
+ case 2:
84
+ setTooltipMessage(_messages.messages.copied_url_to_clipboard);
85
+ case 3:
86
+ case "end":
87
+ return _context2.stop();
88
+ }
89
+ }, _callee2);
90
+ }));
91
+ function actionFn() {
92
+ return _actionFn2.apply(this, arguments);
93
+ }
94
+ return actionFn;
95
+ }(),
96
+ // These values have already been set in analytics context.
97
+ // We only pass these here for ufo experience.
98
+ display: analytics === null || analytics === void 0 ? void 0 : analytics.display,
99
+ extensionKey: analytics === null || analytics === void 0 ? void 0 : analytics.extensionKey
100
+ });
101
+ }
102
+ if (onClickCallback) {
103
+ onClickCallback();
104
+ }
72
105
  }
73
106
  }, [analytics, data, invoke, onClickCallback]);
74
107
  return data ? /*#__PURE__*/_react.default.createElement(_action.default, (0, _extends2.default)({
@@ -13,6 +13,7 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _reactIntlNext = require("react-intl-next");
15
15
  var _download = _interopRequireDefault(require("@atlaskit/icon/core/migration/download"));
16
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
16
17
  var _constants = require("../../../../../constants");
17
18
  var _messages = require("../../../../../messages");
18
19
  var _flexibleUiContext = require("../../../../../state/flexible-ui-context");
@@ -33,36 +34,43 @@ var DownloadAction = function DownloadAction(_ref) {
33
34
  });
34
35
  var data = context === null || context === void 0 || (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[_constants.ActionName.DownloadAction];
35
36
  var onClick = (0, _react.useCallback)(function () {
36
- if (data !== null && data !== void 0 && data.downloadUrl) {
37
- invoke({
38
- actionType: _constants.ActionName.DownloadAction,
39
- actionFn: function () {
40
- var _actionFn = (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.downloadUrl)(data === null || data === void 0 ? void 0 : data.downloadUrl));
45
- case 1:
46
- case "end":
47
- return _context.stop();
48
- }
49
- }, _callee);
50
- }));
51
- function actionFn() {
52
- return _actionFn.apply(this, arguments);
53
- }
54
- return actionFn;
55
- }(),
56
- // These values have already been set in analytics context.
57
- // We only pass these here for ufo experience.
58
- display: analytics === null || analytics === void 0 ? void 0 : analytics.display,
59
- extensionKey: analytics === null || analytics === void 0 ? void 0 : analytics.extensionKey
60
- });
61
- if (onClickCallback) {
62
- onClickCallback();
37
+ if ((0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics')) {
38
+ if (data !== null && data !== void 0 && data.invokeAction) {
39
+ invoke(data.invokeAction);
40
+ onClickCallback === null || onClickCallback === void 0 || onClickCallback();
41
+ }
42
+ } else {
43
+ if (data !== null && data !== void 0 && data.downloadUrl) {
44
+ invoke({
45
+ actionType: _constants.ActionName.DownloadAction,
46
+ actionFn: function () {
47
+ var _actionFn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
48
+ return _regenerator.default.wrap(function _callee$(_context) {
49
+ while (1) switch (_context.prev = _context.next) {
50
+ case 0:
51
+ return _context.abrupt("return", (0, _utils.downloadUrl)(data === null || data === void 0 ? void 0 : data.downloadUrl));
52
+ case 1:
53
+ case "end":
54
+ return _context.stop();
55
+ }
56
+ }, _callee);
57
+ }));
58
+ function actionFn() {
59
+ return _actionFn.apply(this, arguments);
60
+ }
61
+ return actionFn;
62
+ }(),
63
+ // These values have already been set in analytics context.
64
+ // We only pass these here for ufo experience.
65
+ display: analytics === null || analytics === void 0 ? void 0 : analytics.display,
66
+ extensionKey: analytics === null || analytics === void 0 ? void 0 : analytics.extensionKey
67
+ });
68
+ if (onClickCallback) {
69
+ onClickCallback();
70
+ }
63
71
  }
64
72
  }
65
- }, [analytics, data === null || data === void 0 ? void 0 : data.downloadUrl, invoke, onClickCallback]);
73
+ }, [analytics, data, invoke, onClickCallback]);
66
74
  var isStackItem = props.as === 'stack-item';
67
75
  var label = isStackItem ? _messages.messages.download_file : _messages.messages.download;
68
76
  var tooltipMessage = isStackItem ? _messages.messages.download_description : _messages.messages.download;
@@ -14,6 +14,7 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
14
14
  var _react = _interopRequireWildcard(require("react"));
15
15
  var _reactIntlNext = require("react-intl-next");
16
16
  var _growDiagonalMediaServicesActualSize = _interopRequireDefault(require("@atlaskit/icon/core/migration/grow-diagonal--media-services-actual-size"));
17
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
17
18
  var _constants = require("../../../../../constants");
18
19
  var _messages = require("../../../../../messages");
19
20
  var _flexibleUiContext = require("../../../../../state/flexible-ui-context");
@@ -36,38 +37,45 @@ var PreviewAction = function PreviewAction(_ref) {
36
37
  });
37
38
  var data = context === null || context === void 0 || (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[_constants.ActionName.PreviewAction];
38
39
  var onClick = (0, _react.useCallback)(function () {
39
- if (data) {
40
- invoke({
41
- actionType: _constants.ActionName.PreviewAction,
42
- actionFn: function () {
43
- var _actionFn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
44
- return _regenerator.default.wrap(function _callee$(_context) {
45
- while (1) switch (_context.prev = _context.next) {
46
- case 0:
47
- return _context.abrupt("return", (0, _utils.openEmbedModalWithFlexibleUiIcon)(_objectSpread({
48
- download: data === null || data === void 0 ? void 0 : data.downloadUrl,
49
- extensionKey: analytics === null || analytics === void 0 ? void 0 : analytics.extensionKey,
50
- analytics: analytics
51
- }, data)));
52
- case 1:
53
- case "end":
54
- return _context.stop();
55
- }
56
- }, _callee);
57
- }));
58
- function actionFn() {
59
- return _actionFn.apply(this, arguments);
60
- }
61
- return actionFn;
62
- }(),
63
- // These values have already been set in analytics context.
64
- // We only pass these here for ufo experience.
65
- display: analytics === null || analytics === void 0 ? void 0 : analytics.display,
66
- extensionKey: analytics === null || analytics === void 0 ? void 0 : analytics.extensionKey
67
- });
68
- }
69
- if (onClickCallback) {
70
- onClickCallback();
40
+ if ((0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics')) {
41
+ if (data !== null && data !== void 0 && data.invokeAction) {
42
+ invoke(data.invokeAction);
43
+ onClickCallback === null || onClickCallback === void 0 || onClickCallback();
44
+ }
45
+ } else {
46
+ if (data) {
47
+ invoke({
48
+ actionType: _constants.ActionName.PreviewAction,
49
+ actionFn: function () {
50
+ var _actionFn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
51
+ return _regenerator.default.wrap(function _callee$(_context) {
52
+ while (1) switch (_context.prev = _context.next) {
53
+ case 0:
54
+ return _context.abrupt("return", (0, _utils.openEmbedModalWithFlexibleUiIcon)(_objectSpread({
55
+ download: data === null || data === void 0 ? void 0 : data.downloadUrl,
56
+ extensionKey: analytics === null || analytics === void 0 ? void 0 : analytics.extensionKey,
57
+ analytics: analytics
58
+ }, data)));
59
+ case 1:
60
+ case "end":
61
+ return _context.stop();
62
+ }
63
+ }, _callee);
64
+ }));
65
+ function actionFn() {
66
+ return _actionFn.apply(this, arguments);
67
+ }
68
+ return actionFn;
69
+ }(),
70
+ // These values have already been set in analytics context.
71
+ // We only pass these here for ufo experience.
72
+ display: analytics === null || analytics === void 0 ? void 0 : analytics.display,
73
+ extensionKey: analytics === null || analytics === void 0 ? void 0 : analytics.extensionKey
74
+ });
75
+ }
76
+ if (onClickCallback) {
77
+ onClickCallback();
78
+ }
71
79
  }
72
80
  }, [analytics, data, invoke, onClickCallback]);
73
81
  var isStackItem = props.as === 'stack-item';
@@ -16,6 +16,7 @@ var _colors = require("@atlaskit/theme/colors");
16
16
  var _useAnalyticsEvents2 = require("../../../../../../../common/analytics/generated/use-analytics-events");
17
17
  var _messages = require("../../../../../../../messages");
18
18
  var _flexibleUiContext = require("../../../../../../../state/flexible-ui-context");
19
+ var _useInvokeClientAction = _interopRequireDefault(require("../../../../../../../state/hooks/use-invoke-client-action"));
19
20
  var _useResolve = _interopRequireDefault(require("../../../../../../../state/hooks/use-resolve"));
20
21
  var _utils = require("../../../../utils");
21
22
  var _styled = require("./styled");
@@ -30,13 +31,15 @@ var LozengeActionError = function LozengeActionError(_ref) {
30
31
  testId = _ref.testId,
31
32
  _ref$maxLineNumber = _ref.maxLineNumber,
32
33
  maxLineNumber = _ref$maxLineNumber === void 0 ? MAX_LINE_NUMBER : _ref$maxLineNumber,
34
+ invokePreviewAction = _ref.invokePreviewAction,
33
35
  url = _ref.url,
34
36
  previewData = _ref.previewData;
35
37
  var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
36
38
  fireEvent = _useAnalyticsEvents.fireEvent;
37
39
  var reload = (0, _useResolve.default)();
38
40
  var analytics = (0, _flexibleUiContext.useFlexibleUiAnalyticsContext)();
39
- var isPreviewAvailable = previewData && previewData.src !== undefined;
41
+ var invoke = (0, _useInvokeClientAction.default)({});
42
+ var isPreviewAvailable = (0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics') ? invokePreviewAction !== undefined : previewData && previewData.src !== undefined;
40
43
  var handlePreviewClose = (0, _react.useCallback)(function () {
41
44
  if (url) {
42
45
  reload(url, true);
@@ -49,12 +52,16 @@ var LozengeActionError = function LozengeActionError(_ref) {
49
52
  } else {
50
53
  analytics === null || analytics === void 0 || analytics.ui.smartLinkLozengeActionErrorOpenPreviewClickedEvent();
51
54
  }
52
- return (0, _utils.openEmbedModalWithFlexibleUiIcon)(_objectSpread(_objectSpread({}, previewData), {}, {
53
- analytics: analytics,
54
- onClose: handlePreviewClose
55
- }));
55
+ if ((0, _platformFeatureFlags.fg)('platform-smart-card-migrate-embed-modal-analytics')) {
56
+ invokePreviewAction && invoke(invokePreviewAction);
57
+ } else {
58
+ return (0, _utils.openEmbedModalWithFlexibleUiIcon)(_objectSpread(_objectSpread({}, previewData), {}, {
59
+ analytics: analytics,
60
+ onClose: handlePreviewClose
61
+ }));
62
+ }
56
63
  }
57
- }, [analytics, handlePreviewClose, isPreviewAvailable, previewData, fireEvent]);
64
+ }, [analytics, handlePreviewClose, isPreviewAvailable, invoke, invokePreviewAction, previewData, fireEvent]);
58
65
  var content = (0, _react.useMemo)(function () {
59
66
  return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)("div", {
60
67
  css: _styled.contentStyles
@@ -202,6 +202,10 @@ var getTruncateStyles = exports.getTruncateStyles = function getTruncateStyles(m
202
202
  var hasWhiteSpace = exports.hasWhiteSpace = function hasWhiteSpace(str) {
203
203
  return str.search(/\s/) >= 0;
204
204
  };
205
+
206
+ /**
207
+ * TODO: Remove on cleanup of platform-smart-card-migrate-embed-modal-analytics
208
+ */
205
209
  var openEmbedModalWithFlexibleUiIcon = exports.openEmbedModalWithFlexibleUiIcon = function openEmbedModalWithFlexibleUiIcon(_ref) {
206
210
  var linkIcon = _ref.linkIcon,
207
211
  props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
@@ -9,9 +9,11 @@ exports.default = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
+ var _useAnalyticsEvents2 = require("../../common/analytics/generated/use-analytics-events");
12
13
  var _constants = require("../../constants");
13
14
  var _flexibleUiContext = require("../../state/flexible-ui-context");
14
15
  var _useAiSummaryConfig = require("../../state/hooks/use-ai-summary-config");
16
+ var _useResolve = _interopRequireDefault(require("../../state/hooks/use-resolve"));
15
17
  var _container = _interopRequireDefault(require("./components/container"));
16
18
  var _utils = require("./utils");
17
19
  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); }
@@ -36,6 +38,7 @@ var FlexibleCard = function FlexibleCard(_ref) {
36
38
  onClick = _ref.onClick,
37
39
  onError = _ref.onError,
38
40
  onResolve = _ref.onResolve,
41
+ origin = _ref.origin,
39
42
  renderers = _ref.renderers,
40
43
  showAuthTooltip = _ref.showAuthTooltip,
41
44
  showHoverPreview = _ref.showHoverPreview,
@@ -45,20 +48,27 @@ var FlexibleCard = function FlexibleCard(_ref) {
45
48
  ui = _ref.ui,
46
49
  url = _ref.url;
47
50
  var aiSummaryConfig = (0, _useAiSummaryConfig.useAISummaryConfig)();
51
+ var resolve = (0, _useResolve.default)();
52
+ var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
53
+ fireEvent = _useAnalyticsEvents.fireEvent;
48
54
  var cardType = cardState.status,
49
55
  details = cardState.details;
50
56
  var status = cardType;
51
57
  var context = (0, _react.useMemo)(function () {
52
58
  return (0, _utils.getContextByStatus)({
53
59
  aiSummaryConfig: aiSummaryConfig,
60
+ appearance: appearance,
61
+ fireEvent: fireEvent,
54
62
  response: details,
55
63
  id: id,
64
+ origin: origin,
56
65
  renderers: renderers,
66
+ resolve: resolve,
57
67
  actionOptions: actionOptions,
58
68
  status: status,
59
69
  url: url
60
70
  });
61
- }, [aiSummaryConfig, details, id, renderers, actionOptions, status, url]);
71
+ }, [aiSummaryConfig, appearance, details, fireEvent, id, origin, renderers, actionOptions, resolve, status, url]);
62
72
  var retry = (0, _utils.getRetryOptions)(url, status, details, onAuthorize);
63
73
  var _ref2 = context || {},
64
74
  title = _ref2.title;
@@ -164,6 +164,7 @@ var HoverCardContent = function HoverCardContent(_ref) {
164
164
  cardState: cardState,
165
165
  onClick: onClick,
166
166
  onResolve: onResolve,
167
+ origin: 'smartLinkPreviewHoverCard',
167
168
  renderers: renderers,
168
169
  actionOptions: actionOptions,
169
170
  ui: _styled.flexibleUiOptions,
@@ -20,7 +20,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId", "isLink
20
20
  _excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
21
21
  var PACKAGE_DATA = {
22
22
  packageName: "@atlaskit/smart-card",
23
- packageVersion: "32.6.0",
23
+ packageVersion: "32.7.1",
24
24
  componentName: 'linkUrl'
25
25
  };
26
26
  var Anchor = (0, _click.withLinkClickedEvent)('a');
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,29 @@
1
+ import { extractLink } from '@atlaskit/link-extractors';
2
+ import { ActionName, CardAction } from '../../index';
3
+ import { getDefinitionId, getExtensionKey, getResourceType } from '../../state/helpers';
4
+ import { canShowAction } from '../../utils/actions/can-show-action';
5
+ export const extractInvokeCopyLinkAction = ({
6
+ actionOptions,
7
+ appearance,
8
+ id,
9
+ response
10
+ }) => {
11
+ if (!canShowAction(CardAction.CopyLinkAction, actionOptions)) {
12
+ return;
13
+ }
14
+ const data = response.data;
15
+ const url = extractLink(data);
16
+ if (!url) {
17
+ return;
18
+ }
19
+ return {
20
+ actionFn: async () => navigator.clipboard.writeText(url),
21
+ actionSubjectId: 'copyLink',
22
+ actionType: ActionName.CopyLinkAction,
23
+ definitionId: getDefinitionId(response),
24
+ display: appearance,
25
+ extensionKey: getExtensionKey(response),
26
+ id,
27
+ resourceType: getResourceType(response)
28
+ };
29
+ };
@@ -0,0 +1,31 @@
1
+ import { ActionName, CardAction } from '../../index';
2
+ import { getDefinitionId, getExtensionKey, getResourceType } from '../../state/helpers';
3
+ import { downloadUrl as download } from '../../utils';
4
+ import { canShowAction } from '../../utils/actions/can-show-action';
5
+ import { getActionsFromJsonLd } from '../common/actions/extractActions';
6
+ import { extractDownloadUrl } from '../common/detail';
7
+ export const extractInvokeDownloadAction = ({
8
+ actionOptions,
9
+ appearance,
10
+ id,
11
+ response
12
+ }) => {
13
+ if (!canShowAction(CardAction.DownloadAction, actionOptions)) {
14
+ return;
15
+ }
16
+ const data = response.data;
17
+ const downloadActionExists = getActionsFromJsonLd(data).find(action => action['@type'] === 'DownloadAction');
18
+ if (downloadActionExists) {
19
+ const downloadUrl = extractDownloadUrl(data);
20
+ return {
21
+ actionFn: async () => download(downloadUrl),
22
+ actionSubjectId: 'downloadDocument',
23
+ actionType: ActionName.DownloadAction,
24
+ definitionId: getDefinitionId(response),
25
+ display: appearance,
26
+ extensionKey: getExtensionKey(response),
27
+ id,
28
+ resourceType: getResourceType(response)
29
+ };
30
+ }
31
+ };
@@ -0,0 +1,57 @@
1
+ import { extractLink, extractPreview as extractPreviewData, extractProvider, extractTitle } from '@atlaskit/link-extractors';
2
+ import { ActionName, CardAction } from '../../index';
3
+ import { getDefinitionId, getExtensionKey, getResourceType } from '../../state/helpers';
4
+ import { canShowAction } from '../../utils/actions/can-show-action';
5
+ import { openEmbedModal } from '../../view/EmbedModal/utils';
6
+ import { extractIsSupportTheming } from '../common/meta/extractIsSupportTheming';
7
+ import { extractIsTrusted } from '../common/meta/extractIsTrusted';
8
+ import { extractLinkIcon } from '../flexible/icon';
9
+ import { extractInvokeDownloadAction } from './extract-invoke-download-action';
10
+ import { extractInvokeViewAction } from './extract-invoke-view-action';
11
+ export const extractInvokePreviewAction = param => {
12
+ var _extractPreviewData;
13
+ const {
14
+ actionOptions,
15
+ appearance: display,
16
+ fireEvent,
17
+ onClose,
18
+ id,
19
+ origin,
20
+ response
21
+ } = param;
22
+ if (!canShowAction(CardAction.PreviewAction, actionOptions)) {
23
+ return;
24
+ }
25
+ const data = response.data;
26
+ const meta = response.meta;
27
+ const src = (_extractPreviewData = extractPreviewData(data, 'web')) === null || _extractPreviewData === void 0 ? void 0 : _extractPreviewData.src;
28
+ if (src) {
29
+ const url = extractLink(data);
30
+ return {
31
+ actionFn: async () => {
32
+ var _extractProvider;
33
+ return openEmbedModal({
34
+ fireEvent,
35
+ invokeDownloadAction: extractInvokeDownloadAction(param),
36
+ isSupportTheming: extractIsSupportTheming(meta),
37
+ isTrusted: extractIsTrusted(meta),
38
+ linkIcon: extractLinkIcon(response),
39
+ providerName: (_extractProvider = extractProvider(data)) === null || _extractProvider === void 0 ? void 0 : _extractProvider.text,
40
+ onClose,
41
+ origin,
42
+ src,
43
+ title: extractTitle(data),
44
+ url,
45
+ invokeViewAction: extractInvokeViewAction(param, true)
46
+ });
47
+ },
48
+ actionSubjectId: 'invokePreviewScreen',
49
+ actionType: ActionName.PreviewAction,
50
+ definitionId: getDefinitionId(response),
51
+ display,
52
+ extensionKey: getExtensionKey(response),
53
+ id,
54
+ resourceType: getResourceType(response)
55
+ };
56
+ }
57
+ };
@@ -0,0 +1,34 @@
1
+ import { extractLink } from '@atlaskit/link-extractors';
2
+ import { CardAction } from '../../index';
3
+ import { getDefinitionId, getExtensionKey, getResourceType } from '../../state/helpers';
4
+ import { openUrl } from '../../utils';
5
+ import { canShowAction } from '../../utils/actions/can-show-action';
6
+ import { getActionsFromJsonLd } from '../common/actions/extractActions';
7
+ export const extractInvokeViewAction = ({
8
+ actionOptions,
9
+ appearance,
10
+ id,
11
+ response
12
+ }, force) => {
13
+ if (!canShowAction(CardAction.ViewAction, actionOptions)) {
14
+ return;
15
+ }
16
+ const data = response.data;
17
+ if (!data) {
18
+ return;
19
+ }
20
+ const url = extractLink(data);
21
+ const viewActionExists = getActionsFromJsonLd(data).find(action => action['@type'] === 'ViewAction');
22
+ if (url && (viewActionExists || force)) {
23
+ return {
24
+ actionFn: async () => openUrl(url),
25
+ actionSubjectId: 'shortcutGoToLink',
26
+ actionType: 'ViewAction',
27
+ definitionId: getDefinitionId(response),
28
+ display: appearance,
29
+ extensionKey: getExtensionKey(response),
30
+ id,
31
+ resourceType: getResourceType(response)
32
+ };
33
+ }
34
+ };
@@ -1,6 +1,11 @@
1
1
  import { ActionName } from '../../constants';
2
2
  import { downloadUrl } from '../../utils';
3
3
  import { extractDownloadAction as extractDownloadActionData } from '../flexible/actions/extract-download-action';
4
+
5
+ /**
6
+ * TODO: Remove on cleanup of platform-smart-card-migrate-embed-modal-analytics
7
+ * Replace with platform/packages/linking-platform/smart-card/src/extractors/action/extract-invoke-download-action.ts
8
+ */
4
9
  export const extractDownloadActionProps = ({
5
10
  response,
6
11
  actionOptions,
@@ -1,6 +1,11 @@
1
1
  import { ActionName } from '../../constants';
2
2
  import { openEmbedModal } from '../../view/EmbedModal/utils';
3
3
  import { extractPreviewAction as extractPreviewActionData } from '../flexible/actions/extract-preview-action';
4
+
5
+ /**
6
+ * TODO: Remove on cleanup of platform-smart-card-migrate-embed-modal-analytics
7
+ * Replaced with platform/packages/linking-platform/smart-card/src/extractors/action/extract-invoke-preview-action.ts
8
+ */
4
9
  export const extractPreviewActionProps = ({
5
10
  response,
6
11
  analytics,
@@ -1,5 +1,10 @@
1
1
  import { openUrl } from '../../utils';
2
2
  import { extractViewAction as extractViewActionData } from '../flexible/actions/extract-view-action';
3
+
4
+ /**
5
+ * TODO: Remove on cleanup of platform-smart-card-migrate-embed-modal-analytics
6
+ * Replace with platform/packages/linking-platform/smart-card/src/extractors/action/extract-invoke-view-action.ts
7
+ */
3
8
  export const extractViewActionProps = ({
4
9
  response,
5
10
  actionOptions,
@@ -0,0 +1 @@
1
+ export {};