@atlaskit/smart-card 38.20.0 → 38.20.2

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 38.20.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#180778](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/180778)
8
+ [`9945b995de310`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9945b995de310) -
9
+ EDM-12645 updating convo ai endpoint
10
+ - [#180787](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/180787)
11
+ [`af0a44332ac36`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/af0a44332ac36) -
12
+ [ux] NO-ISSUE Fixing thumbnail image for entity types to show nothing if no thumbnail exists
13
+
14
+ ## 38.20.1
15
+
16
+ ### Patch Changes
17
+
18
+ - [#180349](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/180349)
19
+ [`421881d819fdf`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/421881d819fdf) -
20
+ Add observability to loading state of smart card
21
+
3
22
  ## 38.20.0
4
23
 
5
24
  ### Minor Changes
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.extractSmartLinkPreviewImage = exports.default = void 0;
7
7
  var _linkExtractors = require("@atlaskit/link-extractors");
8
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
8
9
  var _constants = require("../../constants");
9
10
  var extractPreview = function extractPreview(data) {
10
11
  if (!data) {
@@ -28,7 +29,7 @@ var extractSmartLinkPreviewImage = exports.extractSmartLinkPreviewImage = functi
28
29
  var _entity$thumbnail;
29
30
  var entity = (0, _linkExtractors.extractEntity)(response);
30
31
  var url = entity === null || entity === void 0 || (_entity$thumbnail = entity.thumbnail) === null || _entity$thumbnail === void 0 ? void 0 : _entity$thumbnail.externalUrl;
31
- if (!url) {
32
+ if (!url && !(0, _platformFeatureFlags.fg)('smart_links_noun_support')) {
32
33
  var provider = (0, _linkExtractors.extractEntityProvider)(response);
33
34
  url = provider === null || provider === void 0 ? void 0 : provider.image;
34
35
  }
@@ -23,7 +23,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
23
23
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24
24
  function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
25
25
  function AsyncFromSyncIterator(r) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var n = r.done; return Promise.resolve(r.value).then(function (r) { return { value: r, done: n }; }); } return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) { this.s = r, this.n = r.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function next() { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function _return(r) { var n = this.s.return; return void 0 === n ? Promise.resolve({ value: r, done: !0 }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); }, throw: function _throw(r) { var n = this.s.return; return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(r); }
26
- var CONVO_AI_ENDPOINT = 'ai/v2/ai-feature/smartlinksummary/stream';
26
+ var CONVO_AI_ENDPOINT = 'assist/api/ai/v2/ai-feature/smartlinksummary/stream';
27
27
  var AISummaryService = exports.AISummaryService = /*#__PURE__*/function () {
28
28
  function AISummaryService(props) {
29
29
  var _this = this,
@@ -11,7 +11,7 @@ var ANALYTICS_CHANNEL = exports.ANALYTICS_CHANNEL = 'media';
11
11
  var context = exports.context = {
12
12
  componentName: 'smart-cards',
13
13
  packageName: "@atlaskit/smart-card",
14
- packageVersion: "38.19.0"
14
+ packageVersion: "38.20.1"
15
15
  };
16
16
  var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
17
17
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -8,6 +8,7 @@ exports.BlockCard = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
11
+ var _loadHold = _interopRequireDefault(require("@atlaskit/react-ufo/load-hold"));
11
12
  var _useControlDataExportConfig = require("../../state/hooks/use-control-data-export-config");
12
13
  var _shouldDataExport = require("../../utils/should-data-export");
13
14
  var _utils = require("../common/utils");
@@ -17,21 +18,27 @@ var _ForbiddenView = _interopRequireDefault(require("./views/ForbiddenView"));
17
18
  var _NotFoundView = _interopRequireDefault(require("./views/NotFoundView"));
18
19
  var _ResolvedView = _interopRequireDefault(require("./views/ResolvedView"));
19
20
  var _UnauthorisedView = _interopRequireDefault(require("./views/UnauthorisedView"));
20
- var BlockCard = exports.BlockCard = function BlockCard(_ref) {
21
- var id = _ref.id,
22
- url = _ref.url,
23
- cardState = _ref.cardState,
24
- authFlow = _ref.authFlow,
25
- handleAuthorize = _ref.handleAuthorize,
26
- handleFrameClick = _ref.handleFrameClick,
27
- renderers = _ref.renderers,
28
- isSelected = _ref.isSelected,
29
- onResolve = _ref.onResolve,
30
- onError = _ref.onError,
31
- testId = _ref.testId,
32
- actionOptions = _ref.actionOptions,
33
- CompetitorPrompt = _ref.CompetitorPrompt,
34
- hideIconLoadingSkeleton = _ref.hideIconLoadingSkeleton;
21
+ var UFOLoadHoldWrapper = function UFOLoadHoldWrapper(_ref) {
22
+ var children = _ref.children;
23
+ return (0, _platformFeatureFlags.fg)('platform_renderer_blindspots') ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_loadHold.default, {
24
+ name: "smart-card-block-card"
25
+ }), children) : children;
26
+ };
27
+ var BlockCard = exports.BlockCard = function BlockCard(_ref2) {
28
+ var id = _ref2.id,
29
+ url = _ref2.url,
30
+ cardState = _ref2.cardState,
31
+ authFlow = _ref2.authFlow,
32
+ handleAuthorize = _ref2.handleAuthorize,
33
+ handleFrameClick = _ref2.handleFrameClick,
34
+ renderers = _ref2.renderers,
35
+ isSelected = _ref2.isSelected,
36
+ onResolve = _ref2.onResolve,
37
+ onError = _ref2.onError,
38
+ testId = _ref2.testId,
39
+ actionOptions = _ref2.actionOptions,
40
+ CompetitorPrompt = _ref2.CompetitorPrompt,
41
+ hideIconLoadingSkeleton = _ref2.hideIconLoadingSkeleton;
35
42
  var status = cardState.status;
36
43
  var blockCardProps = {
37
44
  id: id,
@@ -54,9 +61,9 @@ var BlockCard = exports.BlockCard = function BlockCard(_ref) {
54
61
  switch (status) {
55
62
  case 'pending':
56
63
  case 'resolving':
57
- return /*#__PURE__*/_react.default.createElement(_ResolvedView.default, (0, _extends2.default)({}, blockCardProps, {
64
+ return /*#__PURE__*/_react.default.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/_react.default.createElement(_ResolvedView.default, (0, _extends2.default)({}, blockCardProps, {
58
65
  testId: "smart-block-resolving-view"
59
- }));
66
+ })));
60
67
  case 'resolved':
61
68
  if ((0, _platformFeatureFlags.fg)('platform_smart_links_controlled_dsp_export_view')) {
62
69
  if ((0, _shouldDataExport.getIsDataExportEnabled)(shouldControlDataExport, cardState.details)) {
@@ -9,6 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _react = _interopRequireDefault(require("react"));
10
10
  var _analyticsNext = require("@atlaskit/analytics-next");
11
11
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
+ var _loadHold = _interopRequireDefault(require("@atlaskit/react-ufo/load-hold"));
12
13
  var _extractAccessContext = require("../../extractors/common/context/extractAccessContext");
13
14
  var _embed = require("../../extractors/embed");
14
15
  var _inline = require("../../extractors/inline");
@@ -23,26 +24,32 @@ var _forbiddenView = _interopRequireDefault(require("./views/forbidden-view"));
23
24
  var _notFoundView = _interopRequireDefault(require("./views/not-found-view"));
24
25
  var _ResolvedView3 = require("./views/ResolvedView");
25
26
  var _unauthorizedView = _interopRequireDefault(require("./views/unauthorized-view"));
26
- var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(function (_ref, iframeRef) {
27
+ var UFOLoadHoldWrapper = function UFOLoadHoldWrapper(_ref) {
28
+ var children = _ref.children;
29
+ return (0, _platformFeatureFlags.fg)('platform_renderer_blindspots') ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_loadHold.default, {
30
+ name: "smart-card-embed-card"
31
+ }), children) : children;
32
+ };
33
+ var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(function (_ref2, iframeRef) {
27
34
  var _details$meta, _forbiddenViewProps$c, _forbiddenViewProps$c2, _notFoundViewProps$co, _notFoundViewProps$co2;
28
- var url = _ref.url,
29
- cardState = _ref.cardState,
30
- handleAuthorize = _ref.handleAuthorize,
31
- handleErrorRetry = _ref.handleErrorRetry,
32
- handleFrameClick = _ref.handleFrameClick,
33
- isSelected = _ref.isSelected,
34
- frameStyle = _ref.frameStyle,
35
- platform = _ref.platform,
36
- onResolve = _ref.onResolve,
37
- onError = _ref.onError,
38
- testId = _ref.testId,
39
- inheritDimensions = _ref.inheritDimensions,
40
- onIframeDwell = _ref.onIframeDwell,
41
- onIframeFocus = _ref.onIframeFocus,
42
- iframeUrlType = _ref.iframeUrlType,
43
- actionOptions = _ref.actionOptions,
44
- renderers = _ref.renderers,
45
- CompetitorPrompt = _ref.CompetitorPrompt;
35
+ var url = _ref2.url,
36
+ cardState = _ref2.cardState,
37
+ handleAuthorize = _ref2.handleAuthorize,
38
+ handleErrorRetry = _ref2.handleErrorRetry,
39
+ handleFrameClick = _ref2.handleFrameClick,
40
+ isSelected = _ref2.isSelected,
41
+ frameStyle = _ref2.frameStyle,
42
+ platform = _ref2.platform,
43
+ onResolve = _ref2.onResolve,
44
+ onError = _ref2.onError,
45
+ testId = _ref2.testId,
46
+ inheritDimensions = _ref2.inheritDimensions,
47
+ onIframeDwell = _ref2.onIframeDwell,
48
+ onIframeFocus = _ref2.onIframeFocus,
49
+ iframeUrlType = _ref2.iframeUrlType,
50
+ actionOptions = _ref2.actionOptions,
51
+ renderers = _ref2.renderers,
52
+ CompetitorPrompt = _ref2.CompetitorPrompt;
46
53
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
47
54
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
48
55
  var status = cardState.status,
@@ -55,7 +62,7 @@ var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(funct
55
62
  switch (status) {
56
63
  case 'pending':
57
64
  case 'resolving':
58
- return /*#__PURE__*/_react.default.createElement(_ResolvedView.default, {
65
+ return /*#__PURE__*/_react.default.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/_react.default.createElement(_ResolvedView.default, {
59
66
  url: url,
60
67
  cardState: cardState,
61
68
  onClick: handleFrameClick,
@@ -64,7 +71,7 @@ var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(funct
64
71
  renderers: renderers,
65
72
  actionOptions: actionOptions,
66
73
  testId: testId ? "".concat(testId, "-resolving-view") : 'embed-card-resolving-view'
67
- });
74
+ }));
68
75
  case 'resolved':
69
76
  var resolvedViewProps = (0, _embed.extractEmbedProps)(details, platform, iframeUrlType);
70
77
  if (onResolve) {
@@ -40,6 +40,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
40
40
  var _react = _interopRequireWildcard(require("react"));
41
41
  var _analyticsNext = require("@atlaskit/analytics-next");
42
42
  var _linkExtractors = require("@atlaskit/link-extractors");
43
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
44
+ var _loadHold = _interopRequireDefault(require("@atlaskit/react-ufo/load-hold"));
43
45
  var _constants = require("../../constants");
44
46
  var _extractAccessContext = require("../../extractors/common/context/extractAccessContext");
45
47
  var _inline = require("../../extractors/inline");
@@ -52,26 +54,32 @@ var _ResolvedView = require("./ResolvedView");
52
54
  var _ResolvingView = require("./ResolvingView");
53
55
  var _UnauthorisedView = require("./UnauthorisedView");
54
56
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
55
- var InlineCard = exports.InlineCard = function InlineCard(_ref) {
57
+ var UFOLoadHoldWrapper = function UFOLoadHoldWrapper(_ref) {
58
+ var children = _ref.children;
59
+ return (0, _platformFeatureFlags.fg)('platform_renderer_blindspots') ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_loadHold.default, {
60
+ name: "smart-card-inline-card"
61
+ }), children) : children;
62
+ };
63
+ var InlineCard = exports.InlineCard = function InlineCard(_ref2) {
56
64
  var _details$meta, _providerForbidden$te;
57
- var id = _ref.id,
58
- url = _ref.url,
59
- cardState = _ref.cardState,
60
- handleAuthorize = _ref.handleAuthorize,
61
- handleFrameClick = _ref.handleFrameClick,
62
- isSelected = _ref.isSelected,
63
- isHovered = _ref.isHovered,
64
- renderers = _ref.renderers,
65
- onResolve = _ref.onResolve,
66
- onError = _ref.onError,
67
- testId = _ref.testId,
68
- inlinePreloaderStyle = _ref.inlinePreloaderStyle,
69
- showHoverPreview = _ref.showHoverPreview,
70
- hoverPreviewOptions = _ref.hoverPreviewOptions,
71
- actionOptions = _ref.actionOptions,
72
- removeTextHighlightingFromTitle = _ref.removeTextHighlightingFromTitle,
73
- resolvingPlaceholder = _ref.resolvingPlaceholder,
74
- truncateInline = _ref.truncateInline;
65
+ var id = _ref2.id,
66
+ url = _ref2.url,
67
+ cardState = _ref2.cardState,
68
+ handleAuthorize = _ref2.handleAuthorize,
69
+ handleFrameClick = _ref2.handleFrameClick,
70
+ isSelected = _ref2.isSelected,
71
+ isHovered = _ref2.isHovered,
72
+ renderers = _ref2.renderers,
73
+ onResolve = _ref2.onResolve,
74
+ onError = _ref2.onError,
75
+ testId = _ref2.testId,
76
+ inlinePreloaderStyle = _ref2.inlinePreloaderStyle,
77
+ showHoverPreview = _ref2.showHoverPreview,
78
+ hoverPreviewOptions = _ref2.hoverPreviewOptions,
79
+ actionOptions = _ref2.actionOptions,
80
+ removeTextHighlightingFromTitle = _ref2.removeTextHighlightingFromTitle,
81
+ resolvingPlaceholder = _ref2.resolvingPlaceholder,
82
+ truncateInline = _ref2.truncateInline;
75
83
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
76
84
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
77
85
  var status = cardState.status,
@@ -104,7 +112,7 @@ var InlineCard = exports.InlineCard = function InlineCard(_ref) {
104
112
  switch (status) {
105
113
  case 'pending':
106
114
  case 'resolving':
107
- return /*#__PURE__*/_react.default.createElement(_ResolvingView.InlineCardResolvingView, {
115
+ return /*#__PURE__*/_react.default.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/_react.default.createElement(_ResolvingView.InlineCardResolvingView, {
108
116
  url: url,
109
117
  isSelected: isSelected,
110
118
  onClick: handleFrameClick,
@@ -112,7 +120,7 @@ var InlineCard = exports.InlineCard = function InlineCard(_ref) {
112
120
  inlinePreloaderStyle: inlinePreloaderStyle,
113
121
  resolvingPlaceholder: resolvingPlaceholder,
114
122
  truncateInline: truncateInline
115
- });
123
+ }));
116
124
  case 'resolved':
117
125
  return /*#__PURE__*/_react.default.createElement(_ResolvedView.InlineCardResolvedView, (0, _extends2.default)({}, resolvedProps, {
118
126
  id: id,
@@ -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: "38.19.0",
23
+ packageVersion: "38.20.1",
24
24
  componentName: 'linkUrl'
25
25
  };
26
26
  var Anchor = (0, _click.withLinkClickedEvent)('a');
@@ -1,4 +1,5 @@
1
1
  import { extractEntity, extractEntityProvider, extractImage, isEntityPresent } from '@atlaskit/link-extractors';
2
+ import { fg } from "@atlaskit/platform-feature-flags";
2
3
  import { MediaType } from '../../constants';
3
4
  const extractPreview = data => {
4
5
  if (!data) {
@@ -23,7 +24,7 @@ export const extractSmartLinkPreviewImage = response => {
23
24
  var _entity$thumbnail;
24
25
  const entity = extractEntity(response);
25
26
  let url = entity === null || entity === void 0 ? void 0 : (_entity$thumbnail = entity.thumbnail) === null || _entity$thumbnail === void 0 ? void 0 : _entity$thumbnail.externalUrl;
26
- if (!url) {
27
+ if (!url && !fg('smart_links_noun_support')) {
27
28
  const provider = extractEntityProvider(response);
28
29
  url = provider === null || provider === void 0 ? void 0 : provider.image;
29
30
  }
@@ -5,7 +5,7 @@ import { fg } from '@atlaskit/platform-feature-flags';
5
5
  import { readStream } from './readStream';
6
6
  import { ChunkProcessingError } from './types';
7
7
  import { addPath, getXProductHeaderValue } from './utils';
8
- const CONVO_AI_ENDPOINT = 'ai/v2/ai-feature/smartlinksummary/stream';
8
+ const CONVO_AI_ENDPOINT = 'assist/api/ai/v2/ai-feature/smartlinksummary/stream';
9
9
  export class AISummaryService {
10
10
  constructor(props) {
11
11
  var _getXProductHeaderVal;
@@ -2,7 +2,7 @@ export const ANALYTICS_CHANNEL = 'media';
2
2
  export const context = {
3
3
  componentName: 'smart-cards',
4
4
  packageName: "@atlaskit/smart-card",
5
- packageVersion: "38.19.0"
5
+ packageVersion: "38.20.1"
6
6
  };
7
7
  export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
8
8
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -1,6 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
3
  import { fg } from '@atlaskit/platform-feature-flags';
4
+ import UFOHoldLoad from '@atlaskit/react-ufo/load-hold';
4
5
  import { useControlDataExportConfig } from '../../state/hooks/use-control-data-export-config';
5
6
  import { getIsDataExportEnabled } from '../../utils/should-data-export';
6
7
  import { handleClickCommon } from '../common/utils';
@@ -10,6 +11,13 @@ import ForbiddenView from './views/ForbiddenView';
10
11
  import NotFoundView from './views/NotFoundView';
11
12
  import ResolvedView from './views/ResolvedView';
12
13
  import UnauthorisedView from './views/UnauthorisedView';
14
+ const UFOLoadHoldWrapper = ({
15
+ children
16
+ }) => {
17
+ return fg('platform_renderer_blindspots') ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UFOHoldLoad, {
18
+ name: "smart-card-block-card"
19
+ }), children) : children;
20
+ };
13
21
  export const BlockCard = ({
14
22
  id,
15
23
  url,
@@ -48,9 +56,9 @@ export const BlockCard = ({
48
56
  switch (status) {
49
57
  case 'pending':
50
58
  case 'resolving':
51
- return /*#__PURE__*/React.createElement(ResolvedView, _extends({}, blockCardProps, {
59
+ return /*#__PURE__*/React.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/React.createElement(ResolvedView, _extends({}, blockCardProps, {
52
60
  testId: "smart-block-resolving-view"
53
- }));
61
+ })));
54
62
  case 'resolved':
55
63
  if (fg('platform_smart_links_controlled_dsp_export_view')) {
56
64
  if (getIsDataExportEnabled(shouldControlDataExport, cardState.details)) {
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
3
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
4
4
  import { fg } from '@atlaskit/platform-feature-flags';
5
+ import UFOHoldLoad from '@atlaskit/react-ufo/load-hold';
5
6
  import { extractRequestAccessContextImproved } from '../../extractors/common/context/extractAccessContext';
6
7
  import { extractEmbedProps } from '../../extractors/embed';
7
8
  import { extractInlineProps } from '../../extractors/inline';
@@ -16,6 +17,13 @@ import ForbiddenView from './views/forbidden-view';
16
17
  import NotFoundView from './views/not-found-view';
17
18
  import { EmbedCardResolvedView } from './views/ResolvedView';
18
19
  import UnauthorizedView from './views/unauthorized-view';
20
+ const UFOLoadHoldWrapper = ({
21
+ children
22
+ }) => {
23
+ return fg('platform_renderer_blindspots') ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UFOHoldLoad, {
24
+ name: "smart-card-embed-card"
25
+ }), children) : children;
26
+ };
19
27
  export const EmbedCard = /*#__PURE__*/React.forwardRef(({
20
28
  url,
21
29
  cardState,
@@ -52,7 +60,7 @@ export const EmbedCard = /*#__PURE__*/React.forwardRef(({
52
60
  switch (status) {
53
61
  case 'pending':
54
62
  case 'resolving':
55
- return /*#__PURE__*/React.createElement(BlockCardResolvedView, {
63
+ return /*#__PURE__*/React.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/React.createElement(BlockCardResolvedView, {
56
64
  url: url,
57
65
  cardState: cardState,
58
66
  onClick: handleFrameClick,
@@ -61,7 +69,7 @@ export const EmbedCard = /*#__PURE__*/React.forwardRef(({
61
69
  renderers: renderers,
62
70
  actionOptions: actionOptions,
63
71
  testId: testId ? `${testId}-resolving-view` : 'embed-card-resolving-view'
64
- });
72
+ }));
65
73
  case 'resolved':
66
74
  const resolvedViewProps = extractEmbedProps(details, platform, iframeUrlType);
67
75
  if (onResolve) {
@@ -2,6 +2,8 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useEffect } from 'react';
3
3
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
4
4
  import { extractSmartLinkProvider } from '@atlaskit/link-extractors';
5
+ import { fg } from '@atlaskit/platform-feature-flags';
6
+ import UFOHoldLoad from '@atlaskit/react-ufo/load-hold';
5
7
  import { SmartLinkStatus } from '../../constants';
6
8
  import { extractRequestAccessContextImproved } from '../../extractors/common/context/extractAccessContext';
7
9
  import { extractInlineProps } from '../../extractors/inline';
@@ -14,6 +16,13 @@ import { InlineCardResolvedView } from './ResolvedView';
14
16
  import { InlineCardResolvingView } from './ResolvingView';
15
17
  import { InlineCardUnauthorizedView } from './UnauthorisedView';
16
18
  export { InlineCardResolvedView, InlineCardResolvingView, InlineCardErroredView, InlineCardForbiddenView, InlineCardUnauthorizedView };
19
+ const UFOLoadHoldWrapper = ({
20
+ children
21
+ }) => {
22
+ return fg('platform_renderer_blindspots') ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UFOHoldLoad, {
23
+ name: "smart-card-inline-card"
24
+ }), children) : children;
25
+ };
17
26
  export const InlineCard = ({
18
27
  id,
19
28
  url,
@@ -70,7 +79,7 @@ export const InlineCard = ({
70
79
  switch (status) {
71
80
  case 'pending':
72
81
  case 'resolving':
73
- return /*#__PURE__*/React.createElement(InlineCardResolvingView, {
82
+ return /*#__PURE__*/React.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/React.createElement(InlineCardResolvingView, {
74
83
  url: url,
75
84
  isSelected: isSelected,
76
85
  onClick: handleFrameClick,
@@ -78,7 +87,7 @@ export const InlineCard = ({
78
87
  inlinePreloaderStyle: inlinePreloaderStyle,
79
88
  resolvingPlaceholder: resolvingPlaceholder,
80
89
  truncateInline: truncateInline
81
- });
90
+ }));
82
91
  case 'resolved':
83
92
  return /*#__PURE__*/React.createElement(InlineCardResolvedView, _extends({}, resolvedProps, {
84
93
  id: id,
@@ -10,7 +10,7 @@ import LinkWarningModal from './LinkWarningModal';
10
10
  import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
11
11
  const PACKAGE_DATA = {
12
12
  packageName: "@atlaskit/smart-card",
13
- packageVersion: "38.19.0",
13
+ packageVersion: "38.20.1",
14
14
  componentName: 'linkUrl'
15
15
  };
16
16
  const Anchor = withLinkClickedEvent('a');
@@ -1,4 +1,5 @@
1
1
  import { extractEntity, extractEntityProvider, extractImage, isEntityPresent } from '@atlaskit/link-extractors';
2
+ import { fg } from "@atlaskit/platform-feature-flags";
2
3
  import { MediaType } from '../../constants';
3
4
  var extractPreview = function extractPreview(data) {
4
5
  if (!data) {
@@ -23,7 +24,7 @@ export var extractSmartLinkPreviewImage = function extractSmartLinkPreviewImage(
23
24
  var _entity$thumbnail;
24
25
  var entity = extractEntity(response);
25
26
  var url = entity === null || entity === void 0 || (_entity$thumbnail = entity.thumbnail) === null || _entity$thumbnail === void 0 ? void 0 : _entity$thumbnail.externalUrl;
26
- if (!url) {
27
+ if (!url && !fg('smart_links_noun_support')) {
27
28
  var provider = extractEntityProvider(response);
28
29
  url = provider === null || provider === void 0 ? void 0 : provider.image;
29
30
  }
@@ -16,7 +16,7 @@ import { fg } from '@atlaskit/platform-feature-flags';
16
16
  import { readStream } from './readStream';
17
17
  import { ChunkProcessingError } from './types';
18
18
  import { addPath, getXProductHeaderValue } from './utils';
19
- var CONVO_AI_ENDPOINT = 'ai/v2/ai-feature/smartlinksummary/stream';
19
+ var CONVO_AI_ENDPOINT = 'assist/api/ai/v2/ai-feature/smartlinksummary/stream';
20
20
  export var AISummaryService = /*#__PURE__*/function () {
21
21
  function AISummaryService(props) {
22
22
  var _this = this,
@@ -4,7 +4,7 @@ export var ANALYTICS_CHANNEL = 'media';
4
4
  export var context = {
5
5
  componentName: 'smart-cards',
6
6
  packageName: "@atlaskit/smart-card",
7
- packageVersion: "38.19.0"
7
+ packageVersion: "38.20.1"
8
8
  };
9
9
  export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
10
10
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -1,6 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
3
  import { fg } from '@atlaskit/platform-feature-flags';
4
+ import UFOHoldLoad from '@atlaskit/react-ufo/load-hold';
4
5
  import { useControlDataExportConfig } from '../../state/hooks/use-control-data-export-config';
5
6
  import { getIsDataExportEnabled } from '../../utils/should-data-export';
6
7
  import { handleClickCommon } from '../common/utils';
@@ -10,21 +11,27 @@ import ForbiddenView from './views/ForbiddenView';
10
11
  import NotFoundView from './views/NotFoundView';
11
12
  import ResolvedView from './views/ResolvedView';
12
13
  import UnauthorisedView from './views/UnauthorisedView';
13
- export var BlockCard = function BlockCard(_ref) {
14
- var id = _ref.id,
15
- url = _ref.url,
16
- cardState = _ref.cardState,
17
- authFlow = _ref.authFlow,
18
- handleAuthorize = _ref.handleAuthorize,
19
- handleFrameClick = _ref.handleFrameClick,
20
- renderers = _ref.renderers,
21
- isSelected = _ref.isSelected,
22
- onResolve = _ref.onResolve,
23
- onError = _ref.onError,
24
- testId = _ref.testId,
25
- actionOptions = _ref.actionOptions,
26
- CompetitorPrompt = _ref.CompetitorPrompt,
27
- hideIconLoadingSkeleton = _ref.hideIconLoadingSkeleton;
14
+ var UFOLoadHoldWrapper = function UFOLoadHoldWrapper(_ref) {
15
+ var children = _ref.children;
16
+ return fg('platform_renderer_blindspots') ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UFOHoldLoad, {
17
+ name: "smart-card-block-card"
18
+ }), children) : children;
19
+ };
20
+ export var BlockCard = function BlockCard(_ref2) {
21
+ var id = _ref2.id,
22
+ url = _ref2.url,
23
+ cardState = _ref2.cardState,
24
+ authFlow = _ref2.authFlow,
25
+ handleAuthorize = _ref2.handleAuthorize,
26
+ handleFrameClick = _ref2.handleFrameClick,
27
+ renderers = _ref2.renderers,
28
+ isSelected = _ref2.isSelected,
29
+ onResolve = _ref2.onResolve,
30
+ onError = _ref2.onError,
31
+ testId = _ref2.testId,
32
+ actionOptions = _ref2.actionOptions,
33
+ CompetitorPrompt = _ref2.CompetitorPrompt,
34
+ hideIconLoadingSkeleton = _ref2.hideIconLoadingSkeleton;
28
35
  var status = cardState.status;
29
36
  var blockCardProps = {
30
37
  id: id,
@@ -47,9 +54,9 @@ export var BlockCard = function BlockCard(_ref) {
47
54
  switch (status) {
48
55
  case 'pending':
49
56
  case 'resolving':
50
- return /*#__PURE__*/React.createElement(ResolvedView, _extends({}, blockCardProps, {
57
+ return /*#__PURE__*/React.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/React.createElement(ResolvedView, _extends({}, blockCardProps, {
51
58
  testId: "smart-block-resolving-view"
52
- }));
59
+ })));
53
60
  case 'resolved':
54
61
  if (fg('platform_smart_links_controlled_dsp_export_view')) {
55
62
  if (getIsDataExportEnabled(shouldControlDataExport, cardState.details)) {
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
3
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
4
4
  import { fg } from '@atlaskit/platform-feature-flags';
5
+ import UFOHoldLoad from '@atlaskit/react-ufo/load-hold';
5
6
  import { extractRequestAccessContextImproved } from '../../extractors/common/context/extractAccessContext';
6
7
  import { extractEmbedProps } from '../../extractors/embed';
7
8
  import { extractInlineProps } from '../../extractors/inline';
@@ -16,26 +17,32 @@ import ForbiddenView from './views/forbidden-view';
16
17
  import NotFoundView from './views/not-found-view';
17
18
  import { EmbedCardResolvedView } from './views/ResolvedView';
18
19
  import UnauthorizedView from './views/unauthorized-view';
19
- export var EmbedCard = /*#__PURE__*/React.forwardRef(function (_ref, iframeRef) {
20
+ var UFOLoadHoldWrapper = function UFOLoadHoldWrapper(_ref) {
21
+ var children = _ref.children;
22
+ return fg('platform_renderer_blindspots') ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UFOHoldLoad, {
23
+ name: "smart-card-embed-card"
24
+ }), children) : children;
25
+ };
26
+ export var EmbedCard = /*#__PURE__*/React.forwardRef(function (_ref2, iframeRef) {
20
27
  var _details$meta, _forbiddenViewProps$c, _forbiddenViewProps$c2, _notFoundViewProps$co, _notFoundViewProps$co2;
21
- var url = _ref.url,
22
- cardState = _ref.cardState,
23
- handleAuthorize = _ref.handleAuthorize,
24
- handleErrorRetry = _ref.handleErrorRetry,
25
- handleFrameClick = _ref.handleFrameClick,
26
- isSelected = _ref.isSelected,
27
- frameStyle = _ref.frameStyle,
28
- platform = _ref.platform,
29
- onResolve = _ref.onResolve,
30
- onError = _ref.onError,
31
- testId = _ref.testId,
32
- inheritDimensions = _ref.inheritDimensions,
33
- onIframeDwell = _ref.onIframeDwell,
34
- onIframeFocus = _ref.onIframeFocus,
35
- iframeUrlType = _ref.iframeUrlType,
36
- actionOptions = _ref.actionOptions,
37
- renderers = _ref.renderers,
38
- CompetitorPrompt = _ref.CompetitorPrompt;
28
+ var url = _ref2.url,
29
+ cardState = _ref2.cardState,
30
+ handleAuthorize = _ref2.handleAuthorize,
31
+ handleErrorRetry = _ref2.handleErrorRetry,
32
+ handleFrameClick = _ref2.handleFrameClick,
33
+ isSelected = _ref2.isSelected,
34
+ frameStyle = _ref2.frameStyle,
35
+ platform = _ref2.platform,
36
+ onResolve = _ref2.onResolve,
37
+ onError = _ref2.onError,
38
+ testId = _ref2.testId,
39
+ inheritDimensions = _ref2.inheritDimensions,
40
+ onIframeDwell = _ref2.onIframeDwell,
41
+ onIframeFocus = _ref2.onIframeFocus,
42
+ iframeUrlType = _ref2.iframeUrlType,
43
+ actionOptions = _ref2.actionOptions,
44
+ renderers = _ref2.renderers,
45
+ CompetitorPrompt = _ref2.CompetitorPrompt;
39
46
  var _useAnalyticsEvents = useAnalyticsEvents(),
40
47
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
41
48
  var status = cardState.status,
@@ -48,7 +55,7 @@ export var EmbedCard = /*#__PURE__*/React.forwardRef(function (_ref, iframeRef)
48
55
  switch (status) {
49
56
  case 'pending':
50
57
  case 'resolving':
51
- return /*#__PURE__*/React.createElement(BlockCardResolvedView, {
58
+ return /*#__PURE__*/React.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/React.createElement(BlockCardResolvedView, {
52
59
  url: url,
53
60
  cardState: cardState,
54
61
  onClick: handleFrameClick,
@@ -57,7 +64,7 @@ export var EmbedCard = /*#__PURE__*/React.forwardRef(function (_ref, iframeRef)
57
64
  renderers: renderers,
58
65
  actionOptions: actionOptions,
59
66
  testId: testId ? "".concat(testId, "-resolving-view") : 'embed-card-resolving-view'
60
- });
67
+ }));
61
68
  case 'resolved':
62
69
  var resolvedViewProps = extractEmbedProps(details, platform, iframeUrlType);
63
70
  if (onResolve) {
@@ -2,6 +2,8 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useEffect } from 'react';
3
3
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
4
4
  import { extractSmartLinkProvider } from '@atlaskit/link-extractors';
5
+ import { fg } from '@atlaskit/platform-feature-flags';
6
+ import UFOHoldLoad from '@atlaskit/react-ufo/load-hold';
5
7
  import { SmartLinkStatus } from '../../constants';
6
8
  import { extractRequestAccessContextImproved } from '../../extractors/common/context/extractAccessContext';
7
9
  import { extractInlineProps } from '../../extractors/inline';
@@ -14,26 +16,32 @@ import { InlineCardResolvedView } from './ResolvedView';
14
16
  import { InlineCardResolvingView } from './ResolvingView';
15
17
  import { InlineCardUnauthorizedView } from './UnauthorisedView';
16
18
  export { InlineCardResolvedView, InlineCardResolvingView, InlineCardErroredView, InlineCardForbiddenView, InlineCardUnauthorizedView };
17
- export var InlineCard = function InlineCard(_ref) {
19
+ var UFOLoadHoldWrapper = function UFOLoadHoldWrapper(_ref) {
20
+ var children = _ref.children;
21
+ return fg('platform_renderer_blindspots') ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UFOHoldLoad, {
22
+ name: "smart-card-inline-card"
23
+ }), children) : children;
24
+ };
25
+ export var InlineCard = function InlineCard(_ref2) {
18
26
  var _details$meta, _providerForbidden$te;
19
- var id = _ref.id,
20
- url = _ref.url,
21
- cardState = _ref.cardState,
22
- handleAuthorize = _ref.handleAuthorize,
23
- handleFrameClick = _ref.handleFrameClick,
24
- isSelected = _ref.isSelected,
25
- isHovered = _ref.isHovered,
26
- renderers = _ref.renderers,
27
- onResolve = _ref.onResolve,
28
- onError = _ref.onError,
29
- testId = _ref.testId,
30
- inlinePreloaderStyle = _ref.inlinePreloaderStyle,
31
- showHoverPreview = _ref.showHoverPreview,
32
- hoverPreviewOptions = _ref.hoverPreviewOptions,
33
- actionOptions = _ref.actionOptions,
34
- removeTextHighlightingFromTitle = _ref.removeTextHighlightingFromTitle,
35
- resolvingPlaceholder = _ref.resolvingPlaceholder,
36
- truncateInline = _ref.truncateInline;
27
+ var id = _ref2.id,
28
+ url = _ref2.url,
29
+ cardState = _ref2.cardState,
30
+ handleAuthorize = _ref2.handleAuthorize,
31
+ handleFrameClick = _ref2.handleFrameClick,
32
+ isSelected = _ref2.isSelected,
33
+ isHovered = _ref2.isHovered,
34
+ renderers = _ref2.renderers,
35
+ onResolve = _ref2.onResolve,
36
+ onError = _ref2.onError,
37
+ testId = _ref2.testId,
38
+ inlinePreloaderStyle = _ref2.inlinePreloaderStyle,
39
+ showHoverPreview = _ref2.showHoverPreview,
40
+ hoverPreviewOptions = _ref2.hoverPreviewOptions,
41
+ actionOptions = _ref2.actionOptions,
42
+ removeTextHighlightingFromTitle = _ref2.removeTextHighlightingFromTitle,
43
+ resolvingPlaceholder = _ref2.resolvingPlaceholder,
44
+ truncateInline = _ref2.truncateInline;
37
45
  var _useAnalyticsEvents = useAnalyticsEvents(),
38
46
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
39
47
  var status = cardState.status,
@@ -66,7 +74,7 @@ export var InlineCard = function InlineCard(_ref) {
66
74
  switch (status) {
67
75
  case 'pending':
68
76
  case 'resolving':
69
- return /*#__PURE__*/React.createElement(InlineCardResolvingView, {
77
+ return /*#__PURE__*/React.createElement(UFOLoadHoldWrapper, null, /*#__PURE__*/React.createElement(InlineCardResolvingView, {
70
78
  url: url,
71
79
  isSelected: isSelected,
72
80
  onClick: handleFrameClick,
@@ -74,7 +82,7 @@ export var InlineCard = function InlineCard(_ref) {
74
82
  inlinePreloaderStyle: inlinePreloaderStyle,
75
83
  resolvingPlaceholder: resolvingPlaceholder,
76
84
  truncateInline: truncateInline
77
- });
85
+ }));
78
86
  case 'resolved':
79
87
  return /*#__PURE__*/React.createElement(InlineCardResolvedView, _extends({}, resolvedProps, {
80
88
  id: id,
@@ -13,7 +13,7 @@ import LinkWarningModal from './LinkWarningModal';
13
13
  import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
14
14
  var PACKAGE_DATA = {
15
15
  packageName: "@atlaskit/smart-card",
16
- packageVersion: "38.19.0",
16
+ packageVersion: "38.20.1",
17
17
  componentName: 'linkUrl'
18
18
  };
19
19
  var Anchor = withLinkClickedEvent('a');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "38.20.0",
3
+ "version": "38.20.2",
4
4
  "description": "Smart card component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -173,12 +173,10 @@
173
173
  "type": "boolean"
174
174
  },
175
175
  "platform-visual-refresh-icons-legacy-facade": {
176
- "type": "boolean",
177
- "showOnWebsiteForTransitiveDependencies": true
176
+ "type": "boolean"
178
177
  },
179
178
  "platform-component-visual-refresh": {
180
- "type": "boolean",
181
- "showOnWebsiteForTransitiveDependencies": true
179
+ "type": "boolean"
182
180
  },
183
181
  "bandicoots-smart-card-teamwork-context": {
184
182
  "type": "boolean"
@@ -193,8 +191,7 @@
193
191
  "type": "boolean"
194
192
  },
195
193
  "icon-object-migration": {
196
- "type": "boolean",
197
- "showOnWebsiteForTransitiveDependencies": true
194
+ "type": "boolean"
198
195
  },
199
196
  "platform-linking-visual-refresh-v1": {
200
197
  "type": "boolean"
@@ -224,8 +221,7 @@
224
221
  "type": "boolean"
225
222
  },
226
223
  "platform-smart-card-remove-legacy-button": {
227
- "type": "boolean",
228
- "showOnWebsiteForTransitiveDependencies": true
224
+ "type": "boolean"
229
225
  },
230
226
  "platform-linking-additional-flexible-element-props": {
231
227
  "type": "boolean"
@@ -256,6 +252,9 @@
256
252
  },
257
253
  "platform-linking-user-attributes-component": {
258
254
  "type": "boolean"
255
+ },
256
+ "platform_renderer_blindspots": {
257
+ "type": "boolean"
259
258
  }
260
259
  },
261
260
  "compassUnitTestMetricSourceId": "ari:cloud:compass:a436116f-02ce-4520-8fbb-7301462a1674:metric-source/c5751cc6-3513-4070-9deb-af31e86aed34/f74ef1bc-7240-4aac-9dc8-9dc43b502089"