@atlaskit/smart-card 26.28.2 → 26.30.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 (85) hide show
  1. package/CHANGELOG.md +405 -389
  2. package/dist/cjs/extractors/common/context/extractAccessContext.js +2 -1
  3. package/dist/cjs/extractors/flexible/extract-preview.js +3 -0
  4. package/dist/cjs/messages.js +11 -15
  5. package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +4 -5
  6. package/dist/cjs/utils/analytics/LinkAnalyticsContext.js +1 -3
  7. package/dist/cjs/utils/analytics/analytics.js +1 -1
  8. package/dist/cjs/utils/mocks.js +4 -3
  9. package/dist/cjs/view/BlockCard/views/ResolvedView.js +1 -2
  10. package/dist/cjs/view/BlockCard/views/flexible/FlexibleResolvedView.js +1 -2
  11. package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.js +1 -2
  12. package/dist/cjs/view/FlexibleCard/components/blocks/preview-block/index.js +0 -3
  13. package/dist/cjs/view/FlexibleCard/components/elements/icon/index.js +6 -6
  14. package/dist/cjs/view/FlexibleCard/utils.js +4 -1
  15. package/dist/cjs/view/HoverCard/components/HoverCardComponent.js +1 -1
  16. package/dist/cjs/view/HoverCard/components/HoverCardContent.js +9 -0
  17. package/dist/cjs/view/HoverCard/components/views/forbidden/index.js +82 -0
  18. package/dist/cjs/view/HoverCard/components/views/forbidden/styled.js +18 -0
  19. package/dist/cjs/view/HoverCard/components/views/forbidden/types.js +5 -0
  20. package/dist/cjs/view/HoverCard/components/views/resolved/index.js +0 -3
  21. package/dist/cjs/view/HoverCard/styled.js +2 -2
  22. package/dist/cjs/view/LinkUrl/index.js +1 -1
  23. package/dist/es2019/extractors/common/context/extractAccessContext.js +2 -1
  24. package/dist/es2019/extractors/flexible/extract-preview.js +3 -0
  25. package/dist/es2019/messages.js +11 -15
  26. package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +1 -2
  27. package/dist/es2019/utils/analytics/LinkAnalyticsContext.js +0 -1
  28. package/dist/es2019/utils/analytics/analytics.js +1 -1
  29. package/dist/es2019/utils/mocks.js +3 -0
  30. package/dist/es2019/view/BlockCard/views/ResolvedView.js +1 -2
  31. package/dist/es2019/view/BlockCard/views/flexible/FlexibleResolvedView.js +0 -1
  32. package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.js +1 -2
  33. package/dist/es2019/view/FlexibleCard/components/blocks/preview-block/index.js +0 -3
  34. package/dist/es2019/view/FlexibleCard/components/elements/icon/index.js +6 -6
  35. package/dist/es2019/view/FlexibleCard/utils.js +4 -1
  36. package/dist/es2019/view/HoverCard/components/HoverCardComponent.js +1 -1
  37. package/dist/es2019/view/HoverCard/components/HoverCardContent.js +9 -0
  38. package/dist/es2019/view/HoverCard/components/views/forbidden/index.js +72 -0
  39. package/dist/es2019/view/HoverCard/components/views/forbidden/styled.js +17 -0
  40. package/dist/es2019/view/HoverCard/components/views/forbidden/types.js +1 -0
  41. package/dist/es2019/view/HoverCard/components/views/resolved/index.js +0 -2
  42. package/dist/es2019/view/HoverCard/styled.js +3 -2
  43. package/dist/es2019/view/LinkUrl/index.js +1 -1
  44. package/dist/esm/extractors/common/context/extractAccessContext.js +2 -1
  45. package/dist/esm/extractors/flexible/extract-preview.js +3 -0
  46. package/dist/esm/messages.js +11 -15
  47. package/dist/esm/state/analytics/useSmartLinkAnalytics.js +4 -5
  48. package/dist/esm/utils/analytics/LinkAnalyticsContext.js +1 -3
  49. package/dist/esm/utils/analytics/analytics.js +1 -1
  50. package/dist/esm/utils/mocks.js +4 -3
  51. package/dist/esm/view/BlockCard/views/ResolvedView.js +1 -2
  52. package/dist/esm/view/BlockCard/views/flexible/FlexibleResolvedView.js +1 -2
  53. package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.js +1 -2
  54. package/dist/esm/view/FlexibleCard/components/blocks/preview-block/index.js +0 -3
  55. package/dist/esm/view/FlexibleCard/components/elements/icon/index.js +6 -6
  56. package/dist/esm/view/FlexibleCard/utils.js +4 -1
  57. package/dist/esm/view/HoverCard/components/HoverCardComponent.js +1 -1
  58. package/dist/esm/view/HoverCard/components/HoverCardContent.js +9 -0
  59. package/dist/esm/view/HoverCard/components/views/forbidden/index.js +71 -0
  60. package/dist/esm/view/HoverCard/components/views/forbidden/styled.js +8 -0
  61. package/dist/esm/view/HoverCard/components/views/forbidden/types.js +1 -0
  62. package/dist/esm/view/HoverCard/components/views/resolved/index.js +0 -3
  63. package/dist/esm/view/HoverCard/styled.js +2 -2
  64. package/dist/esm/view/LinkUrl/index.js +1 -1
  65. package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +3 -5
  66. package/dist/types/state/hooks/useSmartLink.d.ts +2 -4
  67. package/dist/types/utils/analytics/LinkAnalyticsContext.d.ts +1 -1
  68. package/dist/types/utils/mocks.d.ts +2 -4
  69. package/dist/types/view/BlockCard/views/ResolvedView.d.ts +1 -1
  70. package/dist/types/view/HoverCard/components/views/forbidden/index.d.ts +4 -0
  71. package/dist/types/view/HoverCard/components/views/forbidden/styled.d.ts +3 -0
  72. package/dist/types/view/HoverCard/components/views/forbidden/types.d.ts +13 -0
  73. package/dist/types/view/HoverCard/styled.d.ts +1 -1
  74. package/dist/types-ts4.5/state/analytics/useSmartLinkAnalytics.d.ts +3 -5
  75. package/dist/types-ts4.5/state/hooks/useSmartLink.d.ts +2 -4
  76. package/dist/types-ts4.5/utils/analytics/LinkAnalyticsContext.d.ts +1 -1
  77. package/dist/types-ts4.5/utils/mocks.d.ts +2 -4
  78. package/dist/types-ts4.5/view/BlockCard/views/ResolvedView.d.ts +1 -1
  79. package/dist/types-ts4.5/view/HoverCard/components/views/forbidden/index.d.ts +4 -0
  80. package/dist/types-ts4.5/view/HoverCard/components/views/forbidden/styled.d.ts +3 -0
  81. package/dist/types-ts4.5/view/HoverCard/components/views/forbidden/types.d.ts +13 -0
  82. package/dist/types-ts4.5/view/HoverCard/styled.d.ts +1 -1
  83. package/package.json +7 -3
  84. package/report.api.md +1 -6
  85. package/tmp/api-report-tmp.d.ts +2 -4
@@ -104,7 +104,8 @@ var extractRequestAccessContextImproved = function extractRequestAccessContextIm
104
104
  });
105
105
  case 'FORBIDDEN':
106
106
  return _objectSpread(_objectSpread({}, jsonLd === null || jsonLd === void 0 ? void 0 : jsonLd.requestAccess), {}, {
107
- descriptiveMessageKey: 'forbidden_description'
107
+ titleMessageKey: 'forbidden_title_crossjoin',
108
+ descriptiveMessageKey: 'forbidden_description_crossjoin'
108
109
  });
109
110
  default:
110
111
  return jsonLd === null || jsonLd === void 0 ? void 0 : jsonLd.requestAccess;
@@ -7,6 +7,9 @@ exports.default = void 0;
7
7
  var _linkExtractors = require("@atlaskit/link-extractors");
8
8
  var _constants = require("../../constants");
9
9
  var extractPreview = function extractPreview(data) {
10
+ if (!data) {
11
+ return undefined;
12
+ }
10
13
  var url = (0, _linkExtractors.extractImage)(data);
11
14
  return url ? {
12
15
  type: _constants.MediaType.Image,
@@ -480,7 +480,7 @@ var messages = (0, _reactIntlNext.defineMessages)({
480
480
  },
481
481
  direct_access_description_crossjoin: {
482
482
  id: 'fabric.linking.direct_access_description_crossjoin',
483
- defaultMessage: 'All {emailDomain} emails are approved to access {hostname} in {product}.',
483
+ defaultMessage: 'All accounts with your same email domain are approved to access {hostname} in {product}.',
484
484
  description: 'Informs the user that they have access to this product, and can sign up or join right away.'
485
485
  },
486
486
  direct_access_crossjoin: {
@@ -532,20 +532,16 @@ var messages = (0, _reactIntlNext.defineMessages)({
532
532
  id: 'fabric.linking.not_found_title_crossjoin',
533
533
  defaultMessage: "We can't show you this {product} page",
534
534
  description: 'Error case for when a provided link is not found'
535
+ },
536
+ forbidden_title_crossjoin: {
537
+ id: 'fabric.linking.forbidden_title_crossjoin',
538
+ defaultMessage: "You don't have access to this content",
539
+ description: 'Informs the user that they do not have access to the linked content.'
540
+ },
541
+ forbidden_description_crossjoin: {
542
+ id: 'fabric.linking.forbidden_description_crossjoin',
543
+ defaultMessage: 'Contact your admin to request access.',
544
+ description: 'Informs the user that they must contact the site administrator for access.'
535
545
  }
536
-
537
- // Pending designs:
538
- // forbidden_access_crossjoin: {
539
- // id: 'fabric.linking.forbidden_access_crossjoin',
540
- // defaultMessage: 'Your access is forbidden',
541
- // description:
542
- // 'Shown when a user does not have access to a resource behind the link.',
543
- // },
544
- // forbidden_description_crossjoin: {
545
- // id: 'fabric.linking.forbidden_description_crossjoin',
546
- // defaultMessage:
547
- // "You don't have access to this preview. Contact the site admin if you need access.",
548
- // description: 'Informs the user that they cannot view this content.',
549
- // },
550
546
  });
551
547
  exports.messages = messages;
@@ -21,10 +21,10 @@ var applyCommonAttributes = function applyCommonAttributes(event, commonAttribut
21
21
  if (event && event.attributes) {
22
22
  for (var _i = 0, _Object$entries = Object.entries(commonAttributes); _i < _Object$entries.length; _i++) {
23
23
  var _Object$entries$_i = (0, _slicedToArray2.default)(_Object$entries[_i], 2),
24
- _key = _Object$entries$_i[0],
24
+ key = _Object$entries$_i[0],
25
25
  value = _Object$entries$_i[1];
26
- if (event.attributes[_key] === undefined) {
27
- event.attributes[_key] = value;
26
+ if (event.attributes[key] === undefined) {
27
+ event.attributes[key] = value;
28
28
  }
29
29
  }
30
30
  }
@@ -261,7 +261,6 @@ var useSmartLinkAnalytics = function useSmartLinkAnalytics(url, _dispatchAnalyti
261
261
  var id = _ref6.id,
262
262
  actionType = _ref6.actionType,
263
263
  display = _ref6.display,
264
- invokeType = _ref6.invokeType,
265
264
  overrideExtensionKey = _ref6.extensionKey,
266
265
  definitionId = _ref6.definitionId,
267
266
  resourceType = _ref6.resourceType,
@@ -758,7 +757,7 @@ var useSmartLinkAnalytics = function useSmartLinkAnalytics(url, _dispatchAnalyti
758
757
  * Removed in EDM-5153: This is an even from an experiment.
759
758
  * @deprecated
760
759
  */
761
- linkUpdated: function linkUpdated(props) {},
760
+ linkUpdated: function linkUpdated() {},
762
761
  /**
763
762
  * This fires a tracking event before an action invoke api call is made
764
763
  */
@@ -11,9 +11,7 @@ var _analyticsNext = require("@atlaskit/analytics-next");
11
11
  * Provides an analytics context to supply attributes to events based on a URL
12
12
  */
13
13
  var LinkAnalyticsContext = function LinkAnalyticsContext(_ref) {
14
- var _ref$url = _ref.url,
15
- url = _ref$url === void 0 ? '' : _ref$url,
16
- display = _ref.display,
14
+ var display = _ref.display,
17
15
  id = _ref.id,
18
16
  children = _ref.children,
19
17
  source = _ref.source;
@@ -23,7 +23,7 @@ exports.ANALYTICS_CHANNEL = ANALYTICS_CHANNEL;
23
23
  var context = {
24
24
  componentName: 'smart-cards',
25
25
  packageName: "@atlaskit/smart-card",
26
- packageVersion: "26.28.2"
26
+ packageVersion: "26.30.0"
27
27
  };
28
28
  exports.context = context;
29
29
  var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
@@ -208,7 +208,8 @@ var fakeFactory = function fakeFactory(implementation, implementationPost, imple
208
208
  }
209
209
  (0, _createClass2.default)(CustomClient, [{
210
210
  key: "fetchData",
211
- value: function () {
211
+ value: // @ts-ignore
212
+ function () {
212
213
  var _fetchData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url) {
213
214
  return _regenerator.default.wrap(function _callee$(_context) {
214
215
  while (1) switch (_context.prev = _context.next) {
@@ -227,7 +228,7 @@ var fakeFactory = function fakeFactory(implementation, implementationPost, imple
227
228
  return _fetchData.apply(this, arguments);
228
229
  }
229
230
  return fetchData;
230
- }()
231
+ }() // @ts-ignore
231
232
  }, {
232
233
  key: "postData",
233
234
  value: function () {
@@ -249,7 +250,7 @@ var fakeFactory = function fakeFactory(implementation, implementationPost, imple
249
250
  return _postData.apply(this, arguments);
250
251
  }
251
252
  return postData;
252
- }()
253
+ }() // @ts-ignore
253
254
  }, {
254
255
  key: "prefetchData",
255
256
  value: function () {
@@ -63,8 +63,7 @@ var ResolvedView = function ResolvedView(_ref) {
63
63
  _ref$testId = _ref.testId,
64
64
  testId = _ref$testId === void 0 ? 'block-card-resolved-view' : _ref$testId,
65
65
  _ref$showActions = _ref.showActions,
66
- showActions = _ref$showActions === void 0 ? true : _ref$showActions,
67
- isSupportTheming = _ref.isSupportTheming;
66
+ showActions = _ref$showActions === void 0 ? true : _ref$showActions;
68
67
  var resolvedMetadata = details.length > 0 ? (0, _react.jsx)(_MetadataList.MetadataList, {
69
68
  testId: testId ? "".concat(testId, "-meta") : undefined,
70
69
  items: details
@@ -24,8 +24,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
24
24
  * @see FlexibleCardProps
25
25
  */
26
26
  var FlexibleResolvedView = function FlexibleResolvedView(_ref) {
27
- var id = _ref.id,
28
- cardState = _ref.cardState,
27
+ var cardState = _ref.cardState,
29
28
  onClick = _ref.onClick,
30
29
  onError = _ref.onError,
31
30
  onResolve = _ref.onResolve,
@@ -60,8 +60,7 @@ var ActionGroup = function ActionGroup(_ref) {
60
60
  appearance = _ref.appearance,
61
61
  _ref$visibleButtonsNu = _ref.visibleButtonsNum,
62
62
  visibleButtonsNum = _ref$visibleButtonsNu === void 0 ? 2 : _ref$visibleButtonsNu,
63
- onDropdownOpenChange = _ref.onDropdownOpenChange,
64
- testId = _ref.testId;
63
+ onDropdownOpenChange = _ref.onDropdownOpenChange;
65
64
  var context = (0, _flexibleUiContext.useFlexibleUiContext)();
66
65
  var ui = (0, _flexibleUiContext.useFlexibleUiOptionContext)();
67
66
  var _useState = (0, _react.useState)(false),
@@ -26,9 +26,6 @@ var PreviewBlock = function PreviewBlock(_ref) {
26
26
  testId = _ref$testId === void 0 ? 'smart-block-preview' : _ref$testId,
27
27
  overrideUrl = _ref.overrideUrl,
28
28
  blockProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
29
- if (status !== _constants.SmartLinkStatus.Resolved) {
30
- return null;
31
- }
32
29
  return (0, _react2.jsx)(_resolved.default, (0, _extends2.default)({}, blockProps, {
33
30
  testId: testId,
34
31
  overrideUrl: overrideUrl
@@ -18,7 +18,7 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
18
18
  /** @jsx jsx */
19
19
  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); }
20
20
  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; }
21
- var getPositionStyles = function getPositionStyles(size, position) {
21
+ var getPositionStyles = function getPositionStyles(position) {
22
22
  switch (position) {
23
23
  case _constants.SmartLinkPosition.Center:
24
24
  return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n align-self: center;\n "])));
@@ -27,8 +27,8 @@ var getPositionStyles = function getPositionStyles(size, position) {
27
27
  return (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n align-self: flex-start;\n margin: 0;\n "])));
28
28
  }
29
29
  };
30
- var getIconStyles = function getIconStyles(size, position, width) {
31
- return (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n ", "\n"])), getPositionStyles(size, position), (0, _utils.getIconSizeStyles)(width));
30
+ var getIconStyles = function getIconStyles(position, width) {
31
+ return (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n ", "\n"])), getPositionStyles(position), (0, _utils.getIconSizeStyles)(width));
32
32
  };
33
33
  var getCustomRenderStyles = function getCustomRenderStyles(value) {
34
34
  return (0, _react2.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n line-height: ", ";\n font-size: ", ";\n text-align: center;\n text-overflow: clip;\n -webkit-box-orient: unset;\n span {\n margin: 0;\n padding: 0;\n vertical-align: baseline;\n }\n"])), (0, _utils.getTruncateStyles)(1, value), value, value);
@@ -48,7 +48,7 @@ var renderDefaultIcon = function renderDefaultIcon(label, testId) {
48
48
  testId: "".concat(testId, "-default")
49
49
  });
50
50
  };
51
- var renderImageIcon = function renderImageIcon(defaultIcon, icon, url, testId) {
51
+ var renderImageIcon = function renderImageIcon(defaultIcon, url, testId) {
52
52
  if (url) {
53
53
  return (0, _react2.jsx)(_imageIcon.default, {
54
54
  defaultIcon: defaultIcon,
@@ -80,10 +80,10 @@ var Icon = function Icon(_ref) {
80
80
  url = _ref.url;
81
81
  var element = (0, _react.useMemo)(function () {
82
82
  var defaultIcon = renderDefaultIcon(label, testId);
83
- return (render === null || render === void 0 ? void 0 : render()) || renderImageIcon(defaultIcon, icon, url, testId) || renderAtlaskitIcon(icon, label, testId) || defaultIcon;
83
+ return (render === null || render === void 0 ? void 0 : render()) || renderImageIcon(defaultIcon, url, testId) || renderAtlaskitIcon(icon, label, testId) || defaultIcon;
84
84
  }, [icon, label, render, testId, url]);
85
85
  var width = (0, _utils.getIconWidth)(size);
86
- var styles = getIconStyles(size, position, width);
86
+ var styles = getIconStyles(position, width);
87
87
  var renderStyles = render ? getCustomRenderStyles(width) : undefined;
88
88
  return (0, _react2.jsx)("div", {
89
89
  css: [styles, renderStyles, overrideCss],
@@ -14,6 +14,7 @@ var _icon = require("../../extractors/flexible/icon");
14
14
  var _utils = require("../../utils");
15
15
  var _linkExtractors = require("@atlaskit/link-extractors");
16
16
  var _extractProviderIcon = _interopRequireDefault(require("../../extractors/flexible/icon/extract-provider-icon"));
17
+ var _extractPreview = _interopRequireDefault(require("../../extractors/flexible/extract-preview"));
17
18
  var getContextByStatus = function getContextByStatus(params) {
18
19
  var _ref = params !== null && params !== void 0 ? params : {},
19
20
  response = _ref.response,
@@ -34,13 +35,15 @@ var getContextByStatus = function getContextByStatus(params) {
34
35
  case _constants.SmartLinkStatus.Errored:
35
36
  case _constants.SmartLinkStatus.Fallback:
36
37
  default:
38
+ var preview = (0, _extractPreview.default)(response === null || response === void 0 ? void 0 : response.data);
37
39
  var linkIcon = (0, _icon.extractErrorIcon)(response, status);
38
40
  var provider = (0, _extractProviderIcon.default)(response === null || response === void 0 ? void 0 : response.data);
39
41
  return {
40
42
  linkIcon: linkIcon,
41
43
  title: url,
42
44
  url: url,
43
- provider: provider
45
+ provider: provider,
46
+ preview: preview
44
47
  };
45
48
  }
46
49
  };
@@ -219,7 +219,7 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
219
219
  id: id,
220
220
  source: HOVER_CARD_SOURCE
221
221
  }, (0, _react.jsx)(_HoverCardContent.default, hoverCardContentProps));
222
- }, [initHideCard, initShowCard, filteredActions, linkState, onActionClick, renderers, showServerActions, url, id]);
222
+ }, [initShowCard, initHideCard, filteredActions, linkState, onActionClick, renderers, showServerActions, url, id]);
223
223
  var trigger = (0, _react2.useCallback)(function (triggerProps) {
224
224
  return (0, _react.jsx)("span", {
225
225
  ref: parentSpan
@@ -26,6 +26,8 @@ var _reactIntlNext = require("react-intl-next");
26
26
  var _messages = require("../../../messages");
27
27
  var _click = require("../../../utils/analytics/click");
28
28
  var _store = require("../../../state/store");
29
+ var _forbidden = _interopRequireDefault(require("./views/forbidden"));
30
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
29
31
  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); }
30
32
  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; }
31
33
  /** @jsx jsx */
@@ -182,6 +184,13 @@ var HoverCardContent = function HoverCardContent(_ref) {
182
184
  url: url
183
185
  });
184
186
  }
187
+ if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.cross-join')) {
188
+ if (cardState.status === 'forbidden') {
189
+ return (0, _react.jsx)(_forbidden.default, {
190
+ flexibleCardProps: flexibleCardProps
191
+ });
192
+ }
193
+ }
185
194
  if (cardState.status === 'resolved') {
186
195
  return (0, _react.jsx)(_resolved.default, {
187
196
  id: id,
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _reactIntlNext = require("react-intl-next");
12
+ var _FlexibleCard = _interopRequireDefault(require("../../../../FlexibleCard"));
13
+ var _messages = require("../../../../../messages");
14
+ var _blocks = require("../../../../FlexibleCard/components/blocks");
15
+ var _linkExtractors = require("@atlaskit/link-extractors");
16
+ var _styled = require("./styled");
17
+ var _actionGroup = _interopRequireDefault(require("../../../../FlexibleCard/components/blocks/action-group"));
18
+ var _constants = require("../../../../../constants");
19
+ var _styled2 = require("../../../styled");
20
+ var _extractAccessContext = require("../../../../../extractors/common/context/extractAccessContext");
21
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
+ 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; }
23
+ var HoverCardForbiddenView = function HoverCardForbiddenView(_ref) {
24
+ var _cardState$details, _cardState$details2, _extractProvider$text, _extractProvider;
25
+ var flexibleCardProps = _ref.flexibleCardProps,
26
+ _ref$testId = _ref.testId,
27
+ testId = _ref$testId === void 0 ? 'hover-card-forbidden-view' : _ref$testId;
28
+ var cardState = flexibleCardProps.cardState,
29
+ url = flexibleCardProps.url;
30
+ var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
31
+ var meta = (_cardState$details2 = cardState.details) === null || _cardState$details2 === void 0 ? void 0 : _cardState$details2.meta;
32
+ var product = (_extractProvider$text = (_extractProvider = (0, _linkExtractors.extractProvider)(data)) === null || _extractProvider === void 0 ? void 0 : _extractProvider.text) !== null && _extractProvider$text !== void 0 ? _extractProvider$text : '';
33
+ var hostname = new URL(url).hostname;
34
+ var _extractRequestAccess = (0, _extractAccessContext.extractRequestAccessContextImproved)({
35
+ jsonLd: meta,
36
+ url: url,
37
+ product: product
38
+ }),
39
+ action = _extractRequestAccess.action,
40
+ descriptiveMessageKey = _extractRequestAccess.descriptiveMessageKey,
41
+ titleMessageKey = _extractRequestAccess.titleMessageKey;
42
+ var actions = (0, _react.useMemo)(function () {
43
+ return [{
44
+ name: _constants.ActionName.CustomAction,
45
+ content: action === null || action === void 0 ? void 0 : action.text,
46
+ onClick: action === null || action === void 0 ? void 0 : action.promise
47
+ }];
48
+ }, [action]);
49
+ if (!titleMessageKey || !descriptiveMessageKey) {
50
+ return null;
51
+ }
52
+ return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, (0, _extends2.default)({}, flexibleCardProps, {
53
+ testId: testId
54
+ }), /*#__PURE__*/_react.default.createElement(_blocks.PreviewBlock, {
55
+ ignoreContainerPadding: true,
56
+ overrideCss: (0, _styled2.getPreviewBlockStyles)(),
57
+ testId: testId
58
+ }), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, {
59
+ overrideCss: _styled.titleBlockStyles,
60
+ testId: "".concat(testId, "-title")
61
+ }, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages[titleMessageKey], {
62
+ values: {
63
+ product: product
64
+ }
65
+ }))), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, {
66
+ overrideCss: _styled.mainTextStyles,
67
+ testId: "".concat(testId, "-content")
68
+ }, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages[descriptiveMessageKey], {
69
+ values: {
70
+ product: product,
71
+ hostname: hostname
72
+ }
73
+ }))), action && /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, {
74
+ overrideCss: _styled.connectButtonStyles,
75
+ testId: "".concat(testId, "-button")
76
+ }, /*#__PURE__*/_react.default.createElement(_actionGroup.default, {
77
+ items: actions,
78
+ appearance: "primary"
79
+ })));
80
+ };
81
+ var _default = HoverCardForbiddenView;
82
+ exports.default = _default;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.titleBlockStyles = exports.mainTextStyles = exports.connectButtonStyles = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = require("@emotion/react");
10
+ var _templateObject, _templateObject2, _templateObject3;
11
+ var blockGap = '0rem';
12
+ var titleFontWeight = '600';
13
+ var titleBlockStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n justify-content: center;\n font-weight: ", ";\n"])), titleFontWeight);
14
+ exports.titleBlockStyles = titleBlockStyles;
15
+ var mainTextStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n justify-content: center;\n margin-top: ", ";\n font-size: 0.75rem;\n text-align: center;\n"])), blockGap);
16
+ exports.mainTextStyles = mainTextStyles;
17
+ var connectButtonStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n justify-content: center;\n margin-top: ", ";\n"])), blockGap);
18
+ exports.connectButtonStyles = connectButtonStyles;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -62,9 +62,6 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
62
62
  var flexibleCardProps = _ref.flexibleCardProps,
63
63
  titleBlockProps = _ref.titleBlockProps,
64
64
  analytics = _ref.analytics,
65
- _ref$id = _ref.id,
66
- id = _ref$id === void 0 ? '' : _ref$id,
67
- url = _ref.url,
68
65
  cardState = _ref.cardState,
69
66
  _ref$cardActions = _ref.cardActions,
70
67
  cardActions = _ref$cardActions === void 0 ? [] : _ref$cardActions,
@@ -55,7 +55,7 @@ var popupContainerStyles = (0, _react.css)(_templateObject5 || (_templateObject5
55
55
  dark: "var(--ds-shadow-overlay, 0px 0px 0px rgba(188, 214, 240, 0.12),0px 8px 12px rgba(3, 4, 4, 0.36),0px 0px 1px rgba(3, 4, 4, 0.5))"
56
56
  })());
57
57
  exports.popupContainerStyles = popupContainerStyles;
58
- var getPreviewBlockStyles = function getPreviewBlockStyles(snippetHeight) {
59
- return (0, _react.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n height: ", "px;\n ", "\n"])), snippetHeight, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.show-smart-links-refreshed-design') ? " border-top-left-radius: ".concat("var(--ds-border-radius-200, 8px)", ";\n border-top-right-radius: ", "var(--ds-border-radius-200, 8px)", ";\n margin-bottom: ", blockGap, ";\n }") : "");
58
+ var getPreviewBlockStyles = function getPreviewBlockStyles(previewHeight) {
59
+ return (0, _react.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n\n ", "\n"])), previewHeight ? "height: ".concat(previewHeight, "px;") : '', (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.show-smart-links-refreshed-design') ? " border-top-left-radius: ".concat("var(--ds-border-radius-200, 8px)", ";\n border-top-right-radius: ", "var(--ds-border-radius-200, 8px)", ";\n margin-bottom: ", blockGap, ";\n }") : "");
60
60
  };
61
61
  exports.getPreviewBlockStyles = getPreviewBlockStyles;
@@ -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.28.2",
21
+ packageVersion: "26.30.0",
22
22
  componentName: 'linkUrl'
23
23
  };
24
24
  var Link = (0, _click.withLinkClickedEvent)('a');
@@ -94,7 +94,8 @@ export const extractRequestAccessContextImproved = ({
94
94
  case 'FORBIDDEN':
95
95
  return {
96
96
  ...(jsonLd === null || jsonLd === void 0 ? void 0 : jsonLd.requestAccess),
97
- descriptiveMessageKey: 'forbidden_description'
97
+ titleMessageKey: 'forbidden_title_crossjoin',
98
+ descriptiveMessageKey: 'forbidden_description_crossjoin'
98
99
  };
99
100
  default:
100
101
  return jsonLd === null || jsonLd === void 0 ? void 0 : jsonLd.requestAccess;
@@ -1,6 +1,9 @@
1
1
  import { extractImage } from '@atlaskit/link-extractors';
2
2
  import { MediaType } from '../../constants';
3
3
  const extractPreview = data => {
4
+ if (!data) {
5
+ return undefined;
6
+ }
4
7
  const url = extractImage(data);
5
8
  return url ? {
6
9
  type: MediaType.Image,
@@ -474,7 +474,7 @@ export const messages = defineMessages({
474
474
  },
475
475
  direct_access_description_crossjoin: {
476
476
  id: 'fabric.linking.direct_access_description_crossjoin',
477
- defaultMessage: 'All {emailDomain} emails are approved to access {hostname} in {product}.',
477
+ defaultMessage: 'All accounts with your same email domain are approved to access {hostname} in {product}.',
478
478
  description: 'Informs the user that they have access to this product, and can sign up or join right away.'
479
479
  },
480
480
  direct_access_crossjoin: {
@@ -526,19 +526,15 @@ export const messages = defineMessages({
526
526
  id: 'fabric.linking.not_found_title_crossjoin',
527
527
  defaultMessage: "We can't show you this {product} page",
528
528
  description: 'Error case for when a provided link is not found'
529
+ },
530
+ forbidden_title_crossjoin: {
531
+ id: 'fabric.linking.forbidden_title_crossjoin',
532
+ defaultMessage: "You don't have access to this content",
533
+ description: 'Informs the user that they do not have access to the linked content.'
534
+ },
535
+ forbidden_description_crossjoin: {
536
+ id: 'fabric.linking.forbidden_description_crossjoin',
537
+ defaultMessage: 'Contact your admin to request access.',
538
+ description: 'Informs the user that they must contact the site administrator for access.'
529
539
  }
530
-
531
- // Pending designs:
532
- // forbidden_access_crossjoin: {
533
- // id: 'fabric.linking.forbidden_access_crossjoin',
534
- // defaultMessage: 'Your access is forbidden',
535
- // description:
536
- // 'Shown when a user does not have access to a resource behind the link.',
537
- // },
538
- // forbidden_description_crossjoin: {
539
- // id: 'fabric.linking.forbidden_description_crossjoin',
540
- // defaultMessage:
541
- // "You don't have access to this preview. Contact the site admin if you need access.",
542
- // description: 'Informs the user that they cannot view this content.',
543
- // },
544
540
  });
@@ -242,7 +242,6 @@ export const useSmartLinkAnalytics = (url, _dispatchAnalytics, id, defaultLocati
242
242
  id,
243
243
  actionType,
244
244
  display,
245
- invokeType,
246
245
  extensionKey: overrideExtensionKey,
247
246
  definitionId,
248
247
  resourceType,
@@ -735,7 +734,7 @@ export const useSmartLinkAnalytics = (url, _dispatchAnalytics, id, defaultLocati
735
734
  * Removed in EDM-5153: This is an even from an experiment.
736
735
  * @deprecated
737
736
  */
738
- linkUpdated: props => {},
737
+ linkUpdated: () => {},
739
738
  /**
740
739
  * This fires a tracking event before an action invoke api call is made
741
740
  */
@@ -4,7 +4,6 @@ import { AnalyticsContext } from '@atlaskit/analytics-next';
4
4
  * Provides an analytics context to supply attributes to events based on a URL
5
5
  */
6
6
  export const LinkAnalyticsContext = ({
7
- url = '',
8
7
  display,
9
8
  id,
10
9
  children,
@@ -4,7 +4,7 @@ export const ANALYTICS_CHANNEL = 'media';
4
4
  export const context = {
5
5
  componentName: 'smart-cards',
6
6
  packageName: "@atlaskit/smart-card",
7
- packageVersion: "26.28.2"
7
+ packageVersion: "26.30.0"
8
8
  };
9
9
  export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
10
10
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -175,12 +175,15 @@ export const mocks = {
175
175
  };
176
176
  export const fakeResponse = () => Promise.resolve(mocks.success);
177
177
  export const fakeFactory = (implementation, implementationPost, implementationPrefetch) => class CustomClient extends CardClient {
178
+ // @ts-ignore
178
179
  async fetchData(url) {
179
180
  return await implementation(url);
180
181
  }
182
+ // @ts-ignore
181
183
  async postData() {
182
184
  return await implementationPost();
183
185
  }
186
+ // @ts-ignore
184
187
  async prefetchData() {
185
188
  return await implementationPrefetch();
186
189
  }
@@ -39,8 +39,7 @@ export const ResolvedView = ({
39
39
  lozenge,
40
40
  details = [],
41
41
  testId = 'block-card-resolved-view',
42
- showActions = true,
43
- isSupportTheming
42
+ showActions = true
44
43
  }) => {
45
44
  const resolvedMetadata = details.length > 0 ? jsx(MetadataList, {
46
45
  testId: testId ? `${testId}-meta` : undefined,
@@ -13,7 +13,6 @@ import { withFlexibleUIBlockCardStyle } from './utils/withFlexibleUIBlockCardSty
13
13
  * @see FlexibleCardProps
14
14
  */
15
15
  const FlexibleResolvedView = ({
16
- id,
17
16
  cardState,
18
17
  onClick,
19
18
  onError,
@@ -51,8 +51,7 @@ const ActionGroup = ({
51
51
  size = SmartLinkSize.Medium,
52
52
  appearance,
53
53
  visibleButtonsNum = 2,
54
- onDropdownOpenChange,
55
- testId
54
+ onDropdownOpenChange
56
55
  }) => {
57
56
  const context = useFlexibleUiContext();
58
57
  const ui = useFlexibleUiOptionContext();
@@ -17,9 +17,6 @@ const PreviewBlock = ({
17
17
  overrideUrl,
18
18
  ...blockProps
19
19
  }) => {
20
- if (status !== SmartLinkStatus.Resolved) {
21
- return null;
22
- }
23
20
  return jsx(PreviewBlockResolvedView, _extends({}, blockProps, {
24
21
  testId: testId,
25
22
  overrideUrl: overrideUrl