@atlaskit/smart-card 23.5.2 → 23.6.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 (78) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/messages.js +1 -1
  3. package/dist/cjs/version.json +1 -1
  4. package/dist/cjs/view/CardWithUrl/component.js +4 -1
  5. package/dist/cjs/view/EmbedCard/views/UnauthorisedView.js +5 -16
  6. package/dist/cjs/view/FlexibleCard/components/actions/utils.js +1 -1
  7. package/dist/cjs/view/HoverCard/components/HoverCardComponent.js +4 -2
  8. package/dist/cjs/view/HoverCard/components/HoverCardContent.js +30 -92
  9. package/dist/cjs/view/HoverCard/components/views/resolved/index.js +134 -0
  10. package/dist/cjs/view/HoverCard/components/views/resolved/styled.js +24 -0
  11. package/dist/cjs/view/HoverCard/components/views/resolved/types.js +5 -0
  12. package/dist/cjs/view/HoverCard/components/{HoverCardLoadingView.js → views/resolving/index.js} +8 -6
  13. package/dist/cjs/view/HoverCard/components/views/resolving/styled.js +19 -0
  14. package/dist/cjs/view/HoverCard/components/views/resolving/types.js +5 -0
  15. package/dist/cjs/view/HoverCard/components/views/unauthorised/index.js +85 -0
  16. package/dist/cjs/view/HoverCard/components/views/unauthorised/styled.js +24 -0
  17. package/dist/cjs/view/HoverCard/components/views/unauthorised/types.js +5 -0
  18. package/dist/cjs/view/HoverCard/styled.js +4 -13
  19. package/dist/cjs/view/InlineCard/UnauthorisedView/index.js +16 -2
  20. package/dist/cjs/view/InlineCard/index.js +4 -2
  21. package/dist/cjs/view/common/UnauthorisedViewContent.js +40 -0
  22. package/dist/es2019/messages.js +1 -1
  23. package/dist/es2019/version.json +1 -1
  24. package/dist/es2019/view/CardWithUrl/component.js +4 -1
  25. package/dist/es2019/view/EmbedCard/views/UnauthorisedView.js +5 -13
  26. package/dist/es2019/view/FlexibleCard/components/actions/utils.js +1 -1
  27. package/dist/es2019/view/HoverCard/components/HoverCardComponent.js +4 -2
  28. package/dist/es2019/view/HoverCard/components/HoverCardContent.js +28 -76
  29. package/dist/es2019/view/HoverCard/components/views/resolved/index.js +96 -0
  30. package/dist/es2019/view/HoverCard/components/views/resolved/styled.js +34 -0
  31. package/dist/es2019/view/HoverCard/components/views/resolved/types.js +1 -0
  32. package/dist/es2019/view/HoverCard/components/{HoverCardLoadingView.js → views/resolving/index.js} +5 -4
  33. package/dist/es2019/view/HoverCard/components/views/resolving/styled.js +11 -0
  34. package/dist/es2019/view/HoverCard/components/views/resolving/types.js +1 -0
  35. package/dist/es2019/view/HoverCard/components/views/unauthorised/index.js +58 -0
  36. package/dist/es2019/view/HoverCard/components/views/unauthorised/styled.js +18 -0
  37. package/dist/es2019/view/HoverCard/components/views/unauthorised/types.js +1 -0
  38. package/dist/es2019/view/HoverCard/styled.js +1 -42
  39. package/dist/es2019/view/InlineCard/UnauthorisedView/index.js +13 -2
  40. package/dist/es2019/view/InlineCard/index.js +4 -2
  41. package/dist/es2019/view/common/UnauthorisedViewContent.js +24 -0
  42. package/dist/esm/messages.js +1 -1
  43. package/dist/esm/version.json +1 -1
  44. package/dist/esm/view/CardWithUrl/component.js +4 -1
  45. package/dist/esm/view/EmbedCard/views/UnauthorisedView.js +5 -13
  46. package/dist/esm/view/FlexibleCard/components/actions/utils.js +1 -1
  47. package/dist/esm/view/HoverCard/components/HoverCardComponent.js +4 -2
  48. package/dist/esm/view/HoverCard/components/HoverCardContent.js +29 -83
  49. package/dist/esm/view/HoverCard/components/views/resolved/index.js +104 -0
  50. package/dist/esm/view/HoverCard/components/views/resolved/styled.js +10 -0
  51. package/dist/esm/view/HoverCard/components/views/resolved/types.js +1 -0
  52. package/dist/esm/view/HoverCard/components/{HoverCardLoadingView.js → views/resolving/index.js} +5 -4
  53. package/dist/esm/view/HoverCard/components/views/resolving/styled.js +7 -0
  54. package/dist/esm/view/HoverCard/components/views/resolving/types.js +1 -0
  55. package/dist/esm/view/HoverCard/components/views/unauthorised/index.js +58 -0
  56. package/dist/esm/view/HoverCard/components/views/unauthorised/styled.js +11 -0
  57. package/dist/esm/view/HoverCard/components/views/unauthorised/types.js +1 -0
  58. package/dist/esm/view/HoverCard/styled.js +3 -8
  59. package/dist/esm/view/InlineCard/UnauthorisedView/index.js +14 -2
  60. package/dist/esm/view/InlineCard/index.js +4 -2
  61. package/dist/esm/view/common/UnauthorisedViewContent.js +26 -0
  62. package/dist/types/view/HoverCard/components/HoverCardContent.d.ts +0 -2
  63. package/dist/types/view/HoverCard/components/views/resolved/index.d.ts +7 -0
  64. package/dist/types/view/HoverCard/components/views/resolved/styled.d.ts +3 -0
  65. package/dist/types/view/HoverCard/components/views/resolved/types.d.ts +13 -0
  66. package/dist/types/view/HoverCard/components/{HoverCardLoadingView.d.ts → views/resolving/index.d.ts} +1 -1
  67. package/dist/types/view/HoverCard/components/views/resolving/styled.d.ts +2 -0
  68. package/dist/types/view/HoverCard/components/views/resolving/types.d.ts +6 -0
  69. package/dist/types/view/HoverCard/components/views/unauthorised/index.d.ts +4 -0
  70. package/dist/types/view/HoverCard/components/views/unauthorised/styled.d.ts +3 -0
  71. package/dist/types/view/HoverCard/components/views/unauthorised/types.d.ts +19 -0
  72. package/dist/types/view/HoverCard/index.d.ts +1 -1
  73. package/dist/types/view/HoverCard/styled.d.ts +1 -5
  74. package/dist/types/view/HoverCard/types.d.ts +3 -6
  75. package/dist/types/view/InlineCard/UnauthorisedView/index.d.ts +2 -0
  76. package/dist/types/view/InlineCard/types.d.ts +1 -0
  77. package/dist/types/view/common/UnauthorisedViewContent.d.ts +20 -0
  78. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 23.6.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`55429f504d6`](https://bitbucket.org/atlassian/atlassian-frontend/commits/55429f504d6) - [ux] Change the 'Preview' button text to 'Full screen view' with a matching icon
8
+
9
+ ## 23.6.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`3626f0cc5c0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3626f0cc5c0) - [ux] An unauthorised view was implemented for Hover Card. It will show up if the link is in 'unauthorized' state and it will offer a way for a user to connect their account.
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies
18
+
3
19
  ## 23.5.2
4
20
 
5
21
  ### Patch Changes
@@ -185,7 +185,7 @@ var messages = (0, _reactIntlNext.defineMessages)({
185
185
  },
186
186
  preview: {
187
187
  id: 'fabric.linking.preview',
188
- defaultMessage: 'Preview',
188
+ defaultMessage: 'Full screen view',
189
189
  description: 'Click to view a richer view of your content, without needing to navigate to it.'
190
190
  },
191
191
  preview_close: {
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "23.5.2",
3
+ "version": "23.6.1",
4
4
  "sideEffects": false
5
5
  }
@@ -83,6 +83,8 @@ function CardWithUrlContent(_ref) {
83
83
  showHoverPreview = Boolean(showHoverPreviewFlag);
84
84
  }
85
85
 
86
+ var showAuthTooltipValue = (0, _linkProvider.useFeatureFlag)('showAuthTooltip');
87
+ var showAuthTooltip = !!showAuthTooltipValue && showAuthTooltipValue === 'experiment';
86
88
  var enableFlexibleBlockCardFlag = Boolean((0, _linkProvider.useFeatureFlag)('enableFlexibleBlockCard')); // Setup UI handlers.
87
89
 
88
90
  var handleClick = (0, _react.useCallback)(function (event) {
@@ -196,7 +198,8 @@ function CardWithUrlContent(_ref) {
196
198
  onError: onError,
197
199
  testId: testId,
198
200
  inlinePreloaderStyle: inlinePreloaderStyle,
199
- showHoverPreview: showHoverPreview
201
+ showHoverPreview: showHoverPreview,
202
+ showAuthTooltip: showAuthTooltip
200
203
  });
201
204
 
202
205
  case 'block':
@@ -7,12 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.EmbedCardUnauthorisedView = void 0;
9
9
 
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
-
12
10
  var _react = _interopRequireDefault(require("react"));
13
11
 
14
- var _reactIntlNext = require("react-intl-next");
15
-
16
12
  var _UnresolvedView = require("./UnresolvedView");
17
13
 
18
14
  var _constants = require("../constants");
@@ -21,9 +17,7 @@ var _ExpandedFrame = require("../components/ExpandedFrame");
21
17
 
22
18
  var _ImageIcon = require("../components/ImageIcon");
23
19
 
24
- var _messages = require("../../../messages");
25
-
26
- var _constants2 = require("../../../constants");
20
+ var _UnauthorisedViewContent = _interopRequireDefault(require("../../common/UnauthorisedViewContent"));
27
21
 
28
22
  var EmbedCardUnauthorisedView = function EmbedCardUnauthorisedView(_ref) {
29
23
  var _context$image;
@@ -63,15 +57,10 @@ var EmbedCardUnauthorisedView = function EmbedCardUnauthorisedView(_ref) {
63
57
  },
64
58
  onClick: onAuthorise,
65
59
  testId: testId
66
- }, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages.connect_unauthorised_account_description, {
67
- values: {
68
- context: context === null || context === void 0 ? void 0 : context.text
69
- }
70
- })), ' ', /*#__PURE__*/_react.default.createElement("a", {
71
- href: _constants2.CONTENT_URL_SECURITY_AND_PERMISSIONS,
72
- target: "_blank",
73
- "data-testid": "".concat(testId, "-learn-more")
74
- }, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.learn_more_about_smart_links_security))));
60
+ }, /*#__PURE__*/_react.default.createElement(_UnauthorisedViewContent.default, {
61
+ providerName: context === null || context === void 0 ? void 0 : context.text,
62
+ testId: testId
63
+ })));
75
64
  };
76
65
 
77
66
  exports.EmbedCardUnauthorisedView = EmbedCardUnauthorisedView;
@@ -80,7 +80,7 @@ var actionMappings = (_actionMappings = {}, (0, _defineProperty2.default)(_actio
80
80
  testId: 'smart-action-preview-action',
81
81
  content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.preview),
82
82
  icon: /*#__PURE__*/_react.default.createElement(_vidFullScreenOn.default, {
83
- label: "Preview"
83
+ label: "Full screen view"
84
84
  }),
85
85
  tooltipMessage: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.preview)
86
86
  }
@@ -43,7 +43,8 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
43
43
  var children = _ref.children,
44
44
  url = _ref.url,
45
45
  analyticsHandler = _ref.analyticsHandler,
46
- analytics = _ref.analytics;
46
+ analytics = _ref.analytics,
47
+ onAuthorize = _ref.onAuthorize;
47
48
  var delay = 300;
48
49
 
49
50
  var _React$useState = _react2.default.useState(false),
@@ -160,7 +161,8 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
160
161
  onActionClick: onActionClick,
161
162
  onResolve: update,
162
163
  renderers: renderers,
163
- url: url
164
+ url: url,
165
+ onAuthorize: onAuthorize
164
166
  }));
165
167
  },
166
168
  trigger: function trigger(triggerProps) {
@@ -7,9 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.toFooterActions = exports.getOpenAction = exports.default = void 0;
11
-
12
- var _linkProvider = require("@atlaskit/link-provider");
10
+ exports.getOpenAction = exports.default = void 0;
13
11
 
14
12
  var _shortcut = _interopRequireDefault(require("@atlaskit/icon/glyph/shortcut"));
15
13
 
@@ -19,25 +17,21 @@ var _react = _interopRequireWildcard(require("react"));
19
17
 
20
18
  var _constants = require("../../../constants");
21
19
 
22
- var _extractMetadata = require("../../../extractors/hover/extractMetadata");
23
-
24
- var _actions = require("../../../state/actions");
20
+ var _extractMetadata2 = require("../../../extractors/hover/extractMetadata");
25
21
 
26
22
  var _helpers = require("../../../state/helpers");
27
23
 
28
24
  var _utils = require("../../../utils");
29
25
 
30
- var _FlexibleCard = _interopRequireDefault(require("../../FlexibleCard"));
31
-
32
- var _blocks = require("../../FlexibleCard/components/blocks");
33
-
34
26
  var _styled = require("../styled");
35
27
 
36
28
  var _utils2 = require("../utils");
37
29
 
38
- var _HoverCardLoadingView = _interopRequireDefault(require("./HoverCardLoadingView"));
30
+ var _resolving = _interopRequireDefault(require("./views/resolving"));
31
+
32
+ var _unauthorised = _interopRequireDefault(require("./views/unauthorised"));
39
33
 
40
- var _SnippetOrPreview = _interopRequireDefault(require("./SnippetOrPreview"));
34
+ var _resolved = _interopRequireDefault(require("./views/resolved"));
41
35
 
42
36
  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); }
43
37
 
@@ -67,25 +61,6 @@ var getOpenAction = function getOpenAction(url, analytics, onActionClick) {
67
61
 
68
62
  exports.getOpenAction = getOpenAction;
69
63
 
70
- var toFooterActions = function toFooterActions(cardActions, onActionClick) {
71
- return cardActions.map(function (action) {
72
- return {
73
- content: action.text,
74
- name: _constants.ActionName.CustomAction,
75
- onClick: function onClick() {
76
- if (onActionClick) {
77
- onActionClick(action.id);
78
- }
79
-
80
- return action.invoke();
81
- },
82
- testId: action.id
83
- };
84
- });
85
- };
86
-
87
- exports.toFooterActions = toFooterActions;
88
-
89
64
  var HoverCardContent = function HoverCardContent(_ref) {
90
65
  var _cardState$details;
91
66
 
@@ -98,20 +73,8 @@ var HoverCardContent = function HoverCardContent(_ref) {
98
73
  onActionClick = _ref.onActionClick,
99
74
  onResolve = _ref.onResolve,
100
75
  renderers = _ref.renderers,
101
- url = _ref.url;
102
- var showActionableElement = (0, _linkProvider.useFeatureFlag)('enableActionableElement');
103
- var actions = (0, _actions.useSmartCardActions)(id, url, analytics);
104
- (0, _react.useEffect)(function () {
105
- actions.loadMetadata();
106
- }, [actions]);
107
- (0, _react.useEffect)(function () {
108
- // Since hover preview only render on resolved status,
109
- // there is no need to check for statuses.
110
- analytics.ui.renderSuccessEvent({
111
- display: _utils2.SMART_CARD_ANALYTICS_DISPLAY,
112
- status: cardState.status
113
- });
114
- }, [analytics.ui, cardState.status]);
76
+ url = _ref.url,
77
+ onAuthorize = _ref.onAuthorize;
115
78
  var extensionKey = (0, _react.useMemo)(function () {
116
79
  return (0, _helpers.getExtensionKey)(cardState.details);
117
80
  }, [cardState.details]);
@@ -128,40 +91,13 @@ var HoverCardContent = function HoverCardContent(_ref) {
128
91
  var titleActions = (0, _react.useMemo)(function () {
129
92
  return [getOpenAction(url, analytics, onActionClick)];
130
93
  }, [url, analytics, onActionClick]);
131
- var footerActions = (0, _react.useMemo)(function () {
132
- return toFooterActions(cardActions, onActionClick);
133
- }, [cardActions, onActionClick]);
134
94
  var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
95
+ var types = data ? (0, _extractors.extractType)(data) : undefined;
135
96
 
136
- var _useMemo = (0, _react.useMemo)(function () {
137
- var types = data ? (0, _extractors.extractType)(data) : undefined; //TODO: EDM-3224 deleted simulated and use real JsonLd
138
-
139
- var metadata = (0, _extractMetadata.extractMetadata)((0, _utils2.getSimulatedMetadata)(extensionKey, types));
140
- var primary = showActionableElement ? (0, _utils2.toActionableMetadata)(onActionClick, extensionKey, types, cardActions, metadata.primary) : metadata.primary;
141
- return {
142
- primary: primary,
143
- secondary: metadata.secondary,
144
- subtitle: metadata.subtitle
145
- };
146
- }, [cardActions, data, extensionKey, onActionClick, showActionableElement]),
147
- primary = _useMemo.primary,
148
- secondary = _useMemo.secondary,
149
- subtitle = _useMemo.subtitle;
97
+ var _extractMetadata = (0, _extractMetadata2.extractMetadata)((0, _utils2.getSimulatedMetadata)(extensionKey, types)),
98
+ subtitle = _extractMetadata.subtitle;
150
99
 
151
100
  var titleMaxLines = subtitle && subtitle.length > 0 ? 1 : 2;
152
-
153
- var snippetHeight = _react.default.useRef(0);
154
-
155
- var snippetBlockRef = (0, _react.useRef)(null);
156
- var onSnippetRender = (0, _react.useCallback)(function () {
157
- var _snippetBlockRef$curr, _snippetBlockRef$curr2;
158
-
159
- snippetHeight.current = (_snippetBlockRef$curr = (_snippetBlockRef$curr2 = snippetBlockRef.current) === null || _snippetBlockRef$curr2 === void 0 ? void 0 : _snippetBlockRef$curr2.getBoundingClientRect().height) !== null && _snippetBlockRef$curr !== void 0 ? _snippetBlockRef$curr : 0;
160
- }, []);
161
- var body = (0, _SnippetOrPreview.default)({
162
- data: data,
163
- snippetHeight: snippetHeight.current
164
- });
165
101
  var titleBlockProps = {
166
102
  actions: titleActions,
167
103
  maxLines: titleMaxLines,
@@ -181,29 +117,31 @@ var HoverCardContent = function HoverCardContent(_ref) {
181
117
  };
182
118
 
183
119
  if (cardState.metadataStatus === 'pending') {
184
- return /*#__PURE__*/_react.default.createElement(_HoverCardLoadingView.default, {
120
+ return /*#__PURE__*/_react.default.createElement(_resolving.default, {
185
121
  flexibleCardProps: flexibleCardProps,
186
122
  titleBlockProps: titleBlockProps
187
123
  });
124
+ }
125
+
126
+ if (cardState.status === 'unauthorized') {
127
+ return /*#__PURE__*/_react.default.createElement(_unauthorised.default, {
128
+ flexibleCardProps: flexibleCardProps,
129
+ onAuthorize: onAuthorize
130
+ });
188
131
  } // if metadataStatus is 'errored' simply render using data available (normal path)
189
132
 
190
133
 
191
- return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, flexibleCardProps, /*#__PURE__*/_react.default.createElement(_blocks.TitleBlock, titleBlockProps), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
192
- primary: primary,
193
- secondary: secondary,
194
- size: _constants.SmartLinkSize.Large,
195
- overrideCss: _styled.metadataBlockCss,
196
- maxLines: 1
197
- }), body, /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, {
198
- testId: 'hidden-snippet',
199
- onRender: onSnippetRender,
200
- blockRef: snippetBlockRef,
201
- overrideCss: _styled.hiddenSnippetStyles
202
- }), /*#__PURE__*/_react.default.createElement(_blocks.FooterBlock, {
203
- actions: footerActions,
204
- size: _constants.SmartLinkSize.Large,
205
- overrideCss: _styled.footerBlockCss
206
- }));
134
+ return /*#__PURE__*/_react.default.createElement(_resolved.default, {
135
+ id: id,
136
+ url: url,
137
+ extensionKey: extensionKey,
138
+ analytics: analytics,
139
+ cardActions: cardActions,
140
+ cardState: cardState,
141
+ flexibleCardProps: flexibleCardProps,
142
+ onActionClick: onActionClick,
143
+ titleBlockProps: titleBlockProps
144
+ });
207
145
  };
208
146
 
209
147
  var _default = HoverCardContent;
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.toFooterActions = exports.default = void 0;
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _linkProvider = require("@atlaskit/link-provider");
15
+
16
+ var _extractors = require("@atlaskit/linking-common/extractors");
17
+
18
+ var _constants = require("../../../../../constants");
19
+
20
+ var _blocks = require("../../../../FlexibleCard/components/blocks");
21
+
22
+ var _styled = require("./styled");
23
+
24
+ var _FlexibleCard = _interopRequireDefault(require("../../../../FlexibleCard"));
25
+
26
+ var _actions = require("../../../../../state/actions");
27
+
28
+ var _utils = require("../../../utils");
29
+
30
+ var _SnippetOrPreview = _interopRequireDefault(require("../../SnippetOrPreview"));
31
+
32
+ var _extractMetadata = require("../../../../../extractors/hover/extractMetadata");
33
+
34
+ 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); }
35
+
36
+ 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; }
37
+
38
+ var toFooterActions = function toFooterActions(cardActions, onActionClick) {
39
+ return cardActions.map(function (action) {
40
+ return {
41
+ content: action.text,
42
+ name: _constants.ActionName.CustomAction,
43
+ onClick: function onClick() {
44
+ if (onActionClick) {
45
+ onActionClick(action.id);
46
+ }
47
+
48
+ return action.invoke();
49
+ },
50
+ testId: action.id
51
+ };
52
+ });
53
+ };
54
+
55
+ exports.toFooterActions = toFooterActions;
56
+
57
+ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
58
+ var _cardState$details;
59
+
60
+ var flexibleCardProps = _ref.flexibleCardProps,
61
+ titleBlockProps = _ref.titleBlockProps,
62
+ analytics = _ref.analytics,
63
+ _ref$id = _ref.id,
64
+ id = _ref$id === void 0 ? '' : _ref$id,
65
+ url = _ref.url,
66
+ cardState = _ref.cardState,
67
+ _ref$cardActions = _ref.cardActions,
68
+ cardActions = _ref$cardActions === void 0 ? [] : _ref$cardActions,
69
+ onActionClick = _ref.onActionClick,
70
+ extensionKey = _ref.extensionKey;
71
+ var showActionableElement = (0, _linkProvider.useFeatureFlag)('enableActionableElement');
72
+ var actions = (0, _actions.useSmartCardActions)(id, url, analytics);
73
+ (0, _react.useEffect)(function () {
74
+ actions.loadMetadata();
75
+ }, [actions]);
76
+ (0, _react.useEffect)(function () {
77
+ // Since this hover view is only rendered on resolved status,
78
+ // there is no need to check for statuses.
79
+ analytics.ui.renderSuccessEvent({
80
+ display: _utils.SMART_CARD_ANALYTICS_DISPLAY,
81
+ status: cardState.status
82
+ });
83
+ }, [analytics.ui, cardState.status]);
84
+ var footerActions = (0, _react.useMemo)(function () {
85
+ return toFooterActions(cardActions, onActionClick);
86
+ }, [cardActions, onActionClick]);
87
+ var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
88
+
89
+ var _useMemo = (0, _react.useMemo)(function () {
90
+ var types = data ? (0, _extractors.extractType)(data) : undefined; //TODO: EDM-3224 deleted simulated and use real JsonLd
91
+
92
+ var metadata = (0, _extractMetadata.extractMetadata)((0, _utils.getSimulatedMetadata)(extensionKey, types));
93
+ var primary = showActionableElement ? (0, _utils.toActionableMetadata)(onActionClick, extensionKey, types, cardActions, metadata.primary) : metadata.primary;
94
+ return {
95
+ primary: primary,
96
+ secondary: metadata.secondary,
97
+ subtitle: metadata.subtitle
98
+ };
99
+ }, [cardActions, data, extensionKey, onActionClick, showActionableElement]),
100
+ primary = _useMemo.primary,
101
+ secondary = _useMemo.secondary;
102
+
103
+ var snippetHeight = _react.default.useRef(0);
104
+
105
+ var snippetBlockRef = (0, _react.useRef)(null);
106
+ var onSnippetRender = (0, _react.useCallback)(function () {
107
+ var _snippetBlockRef$curr, _snippetBlockRef$curr2;
108
+
109
+ snippetHeight.current = (_snippetBlockRef$curr = (_snippetBlockRef$curr2 = snippetBlockRef.current) === null || _snippetBlockRef$curr2 === void 0 ? void 0 : _snippetBlockRef$curr2.getBoundingClientRect().height) !== null && _snippetBlockRef$curr !== void 0 ? _snippetBlockRef$curr : 0;
110
+ }, []);
111
+ var body = (0, _SnippetOrPreview.default)({
112
+ data: data,
113
+ snippetHeight: snippetHeight.current
114
+ });
115
+ return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, flexibleCardProps, /*#__PURE__*/_react.default.createElement(_blocks.TitleBlock, titleBlockProps), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
116
+ primary: primary,
117
+ secondary: secondary,
118
+ size: _constants.SmartLinkSize.Large,
119
+ overrideCss: _styled.metadataBlockCss,
120
+ maxLines: 1
121
+ }), body, /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, {
122
+ testId: 'hidden-snippet',
123
+ onRender: onSnippetRender,
124
+ blockRef: snippetBlockRef,
125
+ overrideCss: _styled.hiddenSnippetStyles
126
+ }), /*#__PURE__*/_react.default.createElement(_blocks.FooterBlock, {
127
+ actions: footerActions,
128
+ size: _constants.SmartLinkSize.Large,
129
+ overrideCss: _styled.footerBlockCss
130
+ }));
131
+ };
132
+
133
+ var _default = HoverCardResolvedView;
134
+ exports.default = _default;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.metadataBlockCss = exports.hiddenSnippetStyles = exports.footerBlockCss = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _react = require("@emotion/react");
13
+
14
+ var _styled = require("../../../styled");
15
+
16
+ var _templateObject, _templateObject2, _templateObject3;
17
+
18
+ var elementGap = '0.5rem';
19
+ var metadataBlockCss = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n gap: 0px;\n\n /* primary element group */\n [data-smart-element-group]:nth-of-type(1) {\n flex-grow: 7;\n\n // a separator between text-based element\n ", "\n\n /* horizontal spacing between elements in group */\n > span {\n margin-right: ", ";\n }\n }\n /* secondary element group */\n [data-smart-element-group]:nth-of-type(2) {\n flex-grow: 3;\n /* horizontal spacing between elements in group */\n > span {\n margin-left: ", ";\n }\n }\n"])), _styled.separatorCss, elementGap, elementGap);
20
+ exports.metadataBlockCss = metadataBlockCss;
21
+ var footerBlockCss = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n padding-top: 0.25rem;\n"])));
22
+ exports.footerBlockCss = footerBlockCss;
23
+ var hiddenSnippetStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n visibility: hidden;\n position: absolute;\n"])));
24
+ exports.hiddenSnippetStyles = hiddenSnippetStyles;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -11,13 +11,15 @@ var _react = require("@emotion/react");
11
11
 
12
12
  var _react2 = _interopRequireDefault(require("react"));
13
13
 
14
- var _loadingSkeleton = _interopRequireDefault(require("../../FlexibleCard/components/common/loading-skeleton"));
14
+ var _loadingSkeleton = _interopRequireDefault(require("../../../../FlexibleCard/components/common/loading-skeleton"));
15
15
 
16
- var _FlexibleCard = _interopRequireDefault(require("../../FlexibleCard"));
16
+ var _FlexibleCard = _interopRequireDefault(require("../../../../FlexibleCard"));
17
17
 
18
- var _blocks = require("../../FlexibleCard/components/blocks");
18
+ var _blocks = require("../../../../FlexibleCard/components/blocks");
19
19
 
20
- var _styled = require("../styled");
20
+ var _styled = require("../../../styled");
21
+
22
+ var _styled2 = require("./styled");
21
23
 
22
24
  /** @jsx jsx */
23
25
  var HoverCardLoadingView = function HoverCardLoadingView(_ref) {
@@ -26,10 +28,10 @@ var HoverCardLoadingView = function HoverCardLoadingView(_ref) {
26
28
  var lineHeightRem = 1.25;
27
29
  var skeletonWidth = _styled.CARD_WIDTH_REM - 2;
28
30
  return (0, _react.jsx)("div", {
29
- css: _styled.loadingViewContainer,
31
+ css: _styled2.loadingViewContainer,
30
32
  "data-testid": "hover-card-loading-view"
31
33
  }, (0, _react.jsx)(_FlexibleCard.default, flexibleCardProps, (0, _react.jsx)(_blocks.TitleBlock, titleBlockProps)), (0, _react.jsx)("div", {
32
- css: _styled.skeletonContainer
34
+ css: _styled2.skeletonContainer
33
35
  }, (0, _react.jsx)("span", null), (0, _react.jsx)(_loadingSkeleton.default, {
34
36
  width: skeletonWidth,
35
37
  height: lineHeightRem
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.skeletonContainer = exports.loadingViewContainer = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _react = require("@emotion/react");
13
+
14
+ var _templateObject, _templateObject2;
15
+
16
+ var loadingViewContainer = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n"])));
17
+ exports.loadingViewContainer = loadingViewContainer;
18
+ var skeletonContainer = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: column;\n gap: 0.625rem;\n align-items: center;\n"])));
19
+ exports.skeletonContainer = skeletonContainer;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _reactIntlNext = require("react-intl-next");
17
+
18
+ var _FlexibleCard = _interopRequireDefault(require("../../../../FlexibleCard"));
19
+
20
+ var _messages = require("../../../../../messages");
21
+
22
+ var _blocks = require("../../../../FlexibleCard/components/blocks");
23
+
24
+ var _extractors = require("@atlaskit/linking-common/extractors");
25
+
26
+ var _styled = require("./styled");
27
+
28
+ var _UnauthorisedViewContent = _interopRequireDefault(require("../../../../common/UnauthorisedViewContent"));
29
+
30
+ var _actionGroup = _interopRequireDefault(require("../../../../FlexibleCard/components/blocks/action-group"));
31
+
32
+ var _elements = require("../../../../FlexibleCard/components/elements");
33
+
34
+ var _constants = require("../../../../../constants");
35
+
36
+ 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); }
37
+
38
+ 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; }
39
+
40
+ var HoverCardUnauthorisedView = function HoverCardUnauthorisedView(_ref) {
41
+ var _cardState$details, _extractProvider;
42
+
43
+ var flexibleCardProps = _ref.flexibleCardProps,
44
+ _ref$testId = _ref.testId,
45
+ testId = _ref$testId === void 0 ? 'hover-card-unauthorised-view' : _ref$testId,
46
+ onAuthorize = _ref.onAuthorize;
47
+ var cardState = flexibleCardProps.cardState;
48
+ var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
49
+ var providerName = (_extractProvider = (0, _extractors.extractProvider)(data)) === null || _extractProvider === void 0 ? void 0 : _extractProvider.text;
50
+ var actions = (0, _react.useMemo)(function () {
51
+ return onAuthorize ? [{
52
+ name: _constants.ActionName.CustomAction,
53
+ content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages.connect_unauthorised_account_action, {
54
+ values: {
55
+ context: providerName
56
+ }
57
+ })),
58
+ onClick: onAuthorize
59
+ }] : [];
60
+ }, [onAuthorize, providerName]);
61
+ return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, (0, _extends2.default)({}, flexibleCardProps, {
62
+ testId: testId
63
+ }), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, {
64
+ overrideCss: _styled.titleBlockStyles,
65
+ testId: "".concat(testId, "-title")
66
+ }, /*#__PURE__*/_react.default.createElement(_elements.LinkIcon, null), /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages.connect_link_account_card_name, {
67
+ values: {
68
+ context: providerName
69
+ }
70
+ }))), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, {
71
+ overrideCss: _styled.mainTextStyles,
72
+ testId: "".concat(testId, "-content")
73
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_UnauthorisedViewContent.default, {
74
+ providerName: providerName
75
+ }))), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, {
76
+ overrideCss: _styled.connectButtonStyles,
77
+ testId: "".concat(testId, "-button")
78
+ }, /*#__PURE__*/_react.default.createElement(_actionGroup.default, {
79
+ items: actions,
80
+ appearance: "primary"
81
+ })));
82
+ };
83
+
84
+ var _default = HoverCardUnauthorisedView;
85
+ exports.default = _default;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.titleBlockStyles = exports.mainTextStyles = exports.connectButtonStyles = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _react = require("@emotion/react");
13
+
14
+ var _templateObject, _templateObject2, _templateObject3;
15
+
16
+ var blockGap = '0.5rem';
17
+ var iconGap = '0.5rem';
18
+ var titleFontWeight = '500';
19
+ var connectButtonStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n justify-content: flex-end;\n margin-top: ", ";\n"])), blockGap);
20
+ exports.connectButtonStyles = connectButtonStyles;
21
+ var titleBlockStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n gap: ", " ", ";\n a {\n font-weight: ", ";\n }\n"])), blockGap, iconGap, titleFontWeight);
22
+ exports.titleBlockStyles = titleBlockStyles;
23
+ var mainTextStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: ", ";\n font-size: 0.75rem;\n"])), blockGap);
24
+ exports.mainTextStyles = mainTextStyles;