@atlaskit/smart-card 16.1.1 → 17.0.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 (90) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/dist/cjs/client/api.js +1 -1
  3. package/dist/cjs/client/types/responses.js +1 -1
  4. package/dist/cjs/client/utils/environments.js +2 -2
  5. package/dist/cjs/extractors/block/index.js +3 -3
  6. package/dist/cjs/extractors/common/actions/extractPreviewAction.js +2 -2
  7. package/dist/cjs/extractors/common/byline/extractByline.js +17 -5
  8. package/dist/cjs/extractors/common/lozenge/utils.js +1 -1
  9. package/dist/cjs/extractors/common/utils.js +1 -1
  10. package/dist/cjs/extractors/constants.js +1 -1
  11. package/dist/cjs/in-product.js +8 -8
  12. package/dist/cjs/index.js +74 -32
  13. package/dist/cjs/providers/editor/transformer.js +6 -2
  14. package/dist/cjs/state/actions/constants.js +1 -1
  15. package/dist/cjs/state/actions/index.js +14 -7
  16. package/dist/cjs/state/analytics/index.js +32 -84
  17. package/dist/cjs/state/analytics/ufoExperiences.js +63 -0
  18. package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +114 -0
  19. package/dist/cjs/state/context/index.js +3 -2
  20. package/dist/cjs/state/helpers.js +1 -1
  21. package/dist/cjs/state/hooks/useSmartLink.js +6 -6
  22. package/dist/cjs/state/index.js +4 -4
  23. package/dist/cjs/utils/analytics/analytics.js +7 -7
  24. package/dist/cjs/utils/analytics/index.js +27 -27
  25. package/dist/cjs/utils/index.js +1 -1
  26. package/dist/cjs/utils/mocks.js +1 -1
  27. package/dist/cjs/utils/performance.js +1 -1
  28. package/dist/cjs/version.json +1 -1
  29. package/dist/cjs/view/BlockCard/index.js +1 -1
  30. package/dist/cjs/view/Card/index.js +9 -2
  31. package/dist/cjs/view/CardWithUrl/component-lazy/LazyFallback.js +1 -1
  32. package/dist/cjs/view/CardWithUrl/component-lazy/index.js +1 -1
  33. package/dist/cjs/view/CardWithUrl/component.js +8 -3
  34. package/dist/cjs/view/CardWithUrl/loader.js +106 -134
  35. package/dist/cjs/view/EmbedCard/index.js +1 -1
  36. package/dist/es2019/client/utils/environments.js +1 -1
  37. package/dist/es2019/extractors/block/index.js +2 -2
  38. package/dist/es2019/extractors/common/actions/extractPreviewAction.js +2 -2
  39. package/dist/es2019/extractors/common/byline/extractByline.js +16 -5
  40. package/dist/es2019/index.js +1 -1
  41. package/dist/es2019/providers/editor/transformer.js +4 -2
  42. package/dist/es2019/state/actions/index.js +10 -5
  43. package/dist/es2019/state/analytics/index.js +2 -40
  44. package/dist/es2019/state/analytics/ufoExperiences.js +43 -0
  45. package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +76 -0
  46. package/dist/es2019/state/hooks/useSmartLink.js +4 -5
  47. package/dist/es2019/utils/analytics/analytics.js +6 -6
  48. package/dist/es2019/version.json +1 -1
  49. package/dist/es2019/view/BlockCard/index.js +2 -2
  50. package/dist/es2019/view/Card/index.js +8 -2
  51. package/dist/es2019/view/CardWithUrl/component-lazy/index.js +1 -1
  52. package/dist/es2019/view/CardWithUrl/component.js +8 -3
  53. package/dist/es2019/view/CardWithUrl/loader.js +82 -91
  54. package/dist/es2019/view/EmbedCard/index.js +2 -2
  55. package/dist/esm/client/utils/environments.js +1 -1
  56. package/dist/esm/extractors/block/index.js +2 -2
  57. package/dist/esm/extractors/common/actions/extractPreviewAction.js +2 -2
  58. package/dist/esm/extractors/common/byline/extractByline.js +16 -5
  59. package/dist/esm/index.js +1 -1
  60. package/dist/esm/providers/editor/transformer.js +6 -2
  61. package/dist/esm/state/actions/index.js +13 -7
  62. package/dist/esm/state/analytics/index.js +2 -80
  63. package/dist/esm/state/analytics/ufoExperiences.js +43 -0
  64. package/dist/esm/state/analytics/useSmartLinkAnalytics.js +102 -0
  65. package/dist/esm/state/hooks/useSmartLink.js +6 -6
  66. package/dist/esm/utils/analytics/analytics.js +6 -6
  67. package/dist/esm/version.json +1 -1
  68. package/dist/esm/view/BlockCard/index.js +2 -2
  69. package/dist/esm/view/Card/index.js +8 -2
  70. package/dist/esm/view/CardWithUrl/component-lazy/index.js +1 -1
  71. package/dist/esm/view/CardWithUrl/component.js +8 -3
  72. package/dist/esm/view/CardWithUrl/loader.js +101 -130
  73. package/dist/esm/view/EmbedCard/index.js +2 -2
  74. package/dist/types/extractors/block/types.d.ts +1 -1
  75. package/dist/types/extractors/common/actions/extractPreviewAction.d.ts +1 -1
  76. package/dist/types/index.d.ts +1 -1
  77. package/dist/types/state/analytics/index.d.ts +3 -32
  78. package/dist/types/state/analytics/ufoExperiences.d.ts +7 -0
  79. package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +31 -0
  80. package/dist/types/state/context/provider.d.ts +1 -0
  81. package/dist/types/state/hooks/useSmartLink.d.ts +5 -6
  82. package/dist/types/utils/analytics/analytics.d.ts +3 -3
  83. package/dist/types/utils/test-utils.d.ts +1 -0
  84. package/dist/types/view/Card/index.d.ts +2 -1
  85. package/dist/types/view/CardWithUrl/component-lazy/LazyIntersectionObserverCard.d.ts +1 -0
  86. package/dist/types/view/CardWithUrl/component-lazy/LazyLazilyRenderCard.d.ts +1 -0
  87. package/dist/types/view/CardWithUrl/component-lazy/index.d.ts +2 -1
  88. package/dist/types/view/CardWithUrl/component.d.ts +1 -0
  89. package/dist/types/view/CardWithUrl/loader.d.ts +2 -15
  90. package/package.json +19 -15
package/CHANGELOG.md CHANGED
@@ -1,5 +1,103 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 17.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [`47f58da5946`](https://bitbucket.org/atlassian/atlassian-frontend/commits/47f58da5946) - ED-13322, ED-13324, ED-13326, ED-13323, ED-13204: Upgrade and support react-intl@^5.18.1 including breaking API changes, types and tests in atlassian-frontend packages
8
+
9
+ What changed: Upgraded our react-intl support from ^2.6.0 to ^5.18.1. This means editor packages now rely on consumers installing ^5.18.1, otherwise editor usage of react-intl will mismatch with actual installed react-intl APIs.
10
+ Why change was made: As part of a coordinated upgrade effort across AF packages, as react-intl v2 is quite dated.
11
+ How consumer should update their code: Ensure react-intl ^5.18.1 is installed in consuming applications.
12
+
13
+ Upgrade guide: To consume atlassian-frontend packages that use react-intl5 setup a second provider for the new version, using an npm alias
14
+
15
+ ```js
16
+ "react-intl": "^2.6.0",
17
+ "react-intl-next": "npm:react-intl@^5.18.1",
18
+ ```
19
+
20
+ ```js
21
+ import { IntlProvider } from 'react-intl';
22
+ import { IntlProvider as IntlNextProvider } from 'react-intl-next';
23
+
24
+ return (
25
+ <IntlProvider
26
+ key={locale}
27
+ data-test-language={locale}
28
+ locale={locale}
29
+ defaultLocale={DEFAULT_LOCALE}
30
+ messages={messages}
31
+ >
32
+ <IntlNextProvider
33
+ key={locale}
34
+ data-test-language={locale}
35
+ locale={locale}
36
+ defaultLocale={DEFAULT_LOCALE}
37
+ messages={messages}
38
+ >
39
+ {children}
40
+ </IntlNextProvider>
41
+ </IntlProvider>
42
+ );
43
+ ```
44
+
45
+ ### Patch Changes
46
+
47
+ - Updated dependencies
48
+
49
+ ## 16.3.0
50
+
51
+ ### Minor Changes
52
+
53
+ - [`af29def3dac`](https://bitbucket.org/atlassian/atlassian-frontend/commits/af29def3dac) - expose missing smart-card classnames
54
+
55
+ ```
56
+ import {
57
+ blockCardResolvedViewByClassName,
58
+ blockCardForbiddenViewLinkClassName,
59
+ blockCardContentClassName,
60
+ blockCardContentHeaderClassName,
61
+ blockCardContentHeaderNameClassName,
62
+ blockCardNotFoundViewClassName,
63
+ blockCardErroredViewClassName,
64
+ } from '@atlaskit/smart-card'
65
+
66
+ css`
67
+ .${blockCardContentHeaderNameClassName} {
68
+ background-color: red;
69
+ }
70
+ `
71
+ ```
72
+
73
+ - [`e7b325a766c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e7b325a766c) - [ux] Jira Work Management (JWM) Calendar view links will be converted into smart link embed by default
74
+ - [`b2664acc865`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b2664acc865) - [ux] Jira Work Management (JWM) Timeline view links will be converted into smart link embed by default
75
+
76
+ ### Patch Changes
77
+
78
+ - [`bea1d5c0a96`](https://bitbucket.org/atlassian/atlassian-frontend/commits/bea1d5c0a96) - Add UFO instrumentation for action invocation. Send extensionKey for client actions as intended, instead of definitionId
79
+ - [`89aa3e3f314`](https://bitbucket.org/atlassian/atlassian-frontend/commits/89aa3e3f314) - Update dependency of dropdown menu to the lite mode version. Update all usages to cater to the new API. The padding within dropdown menu items is 8px more, which makes the menu look bigger.
80
+ - Updated dependencies
81
+
82
+ ## 16.2.1
83
+
84
+ ### Patch Changes
85
+
86
+ - [`d7f743bbbdd`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d7f743bbbdd) - useCallback for dispatchAnalytics to prevent multiple events firing on hover
87
+
88
+ ## 16.2.0
89
+
90
+ ### Minor Changes
91
+
92
+ - [`0448db49f68`](https://bitbucket.org/atlassian/atlassian-frontend/commits/0448db49f68) - Implement UFO instrumentation events pattern
93
+
94
+ ### Patch Changes
95
+
96
+ - [`df4e03438f2`](https://bitbucket.org/atlassian/atlassian-frontend/commits/df4e03438f2) - Add post render authentication experience using UFO
97
+ - [`7d13155a61c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7d13155a61c) - Updated smart links to UFO with perf metrics
98
+ - [`572581a2ae3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/572581a2ae3) - Polaris (Jira Product Discovery) anonymous views unfurling embed by default.
99
+ - Updated dependencies
100
+
3
101
  ## 16.1.1
4
102
 
5
103
  ### Patch Changes
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.request = request;
9
8
  exports.NetworkError = void 0;
9
+ exports.request = request;
10
10
 
11
11
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
12
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.isErrorResponse = exports.isSuccessfulResponse = void 0;
6
+ exports.isSuccessfulResponse = exports.isErrorResponse = void 0;
7
7
 
8
8
  // Used to catch any other errors - not server-side.
9
9
  var isSuccessfulResponse = function isSuccessfulResponse(response) {
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.getResolverUrl = exports.getBaseUrl = exports.BaseUrls = void 0;
6
+ exports.getResolverUrl = exports.getBaseUrl = exports.default = exports.BaseUrls = void 0;
7
7
  var devBaseUrl = 'https://api-private.dev.atlassian.com';
8
- var stgBaseUrl = 'https://api-private.stg.atlassian.com';
8
+ var stgBaseUrl = 'https://commerce-components-preview.dev.atlassian.com/gateway/api';
9
9
  var prodBaseUrl = 'https://api-private.atlassian.com';
10
10
  var BaseUrls = {
11
11
  dev: devBaseUrl,
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.extractBlockProps = exports.extractBlockUsers = exports.extractBlockActions = void 0;
8
+ exports.extractBlockUsers = exports.extractBlockProps = exports.extractBlockActions = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
 
@@ -67,10 +67,10 @@ var extractBlockActions = function extractBlockActions(props, jsonLd, opts, plat
67
67
  if (opts) {
68
68
  var handleInvoke = opts.handleInvoke,
69
69
  handleAnalytics = opts.handleAnalytics,
70
- definitionId = opts.definitionId,
70
+ extensionKey = opts.extensionKey,
71
71
  testId = opts.testId;
72
72
  var actions = (0, _extractActions.extractActions)(jsonLd, handleInvoke);
73
- var previewAction = (0, _extractPreviewAction.extractPreviewAction)(definitionId, props, jsonLd, handleInvoke, handleAnalytics, testId, platform); // The previewAction should always be the last action
73
+ var previewAction = (0, _extractPreviewAction.extractPreviewAction)(extensionKey, props, jsonLd, handleInvoke, handleAnalytics, testId, platform); // The previewAction should always be the last action
74
74
 
75
75
  if (previewAction) {
76
76
  actions.push(previewAction);
@@ -66,7 +66,7 @@ var getInvokeOpts = function getInvokeOpts(key, action, source) {
66
66
  };
67
67
 
68
68
  var extractPreviewAction = function extractPreviewAction() {
69
- var definitionId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'empty-object-provider';
69
+ var extensionKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'empty-object-provider';
70
70
  var viewProps = arguments.length > 1 ? arguments[1] : undefined;
71
71
  var jsonLd = arguments.length > 2 ? arguments[2] : undefined;
72
72
  var handleInvoke = arguments.length > 3 ? arguments[3] : undefined;
@@ -82,7 +82,7 @@ var extractPreviewAction = function extractPreviewAction() {
82
82
 
83
83
  if (metadataFromJsonLd.src) {
84
84
  // Build action using instrumentation hooks.
85
- var key = definitionId;
85
+ var key = extensionKey;
86
86
  var previewAction = (0, _mediaUi.PreviewAction)(_objectSpread(_objectSpread({}, metadata), {}, {
87
87
  testId: testId,
88
88
  onOpen: function onOpen() {
@@ -9,7 +9,9 @@ exports.extractByline = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
- var _reactIntl = require("react-intl");
12
+ var _reactIntlNext = require("react-intl-next");
13
+
14
+ var _intlUtils = require("@formatjs/intl-utils");
13
15
 
14
16
  var _extractPersonUpdatedBy = require("../person/extractPersonUpdatedBy");
15
17
 
@@ -24,15 +26,25 @@ var extractByline = function extractByline(jsonLd) {
24
26
  var createdAt = (0, _extractDateCreated.extractDateCreated)(jsonLd);
25
27
 
26
28
  if (updatedAt) {
29
+ var _selectUnit = (0, _intlUtils.selectUnit)(new Date(updatedAt).getTime()),
30
+ value = _selectUnit.value,
31
+ unit = _selectUnit.unit;
32
+
27
33
  var updatedBy = (0, _extractPersonUpdatedBy.extractPersonUpdatedBy)(jsonLd);
28
- return /*#__PURE__*/_react.default.createElement("span", null, "Updated ", updatedBy && "by ".concat(updatedBy.name), ' ', /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedRelative, {
29
- value: updatedAt
34
+ return /*#__PURE__*/_react.default.createElement("span", null, "Updated ", updatedBy && "by ".concat(updatedBy.name), ' ', /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedRelativeTime, {
35
+ value: value,
36
+ unit: unit
30
37
  }));
31
38
  } else if (createdAt) {
39
+ var _selectUnit2 = (0, _intlUtils.selectUnit)(new Date(createdAt).getTime()),
40
+ _value = _selectUnit2.value,
41
+ _unit = _selectUnit2.unit;
42
+
32
43
  var createdBy = (0, _extractPersonCreatedBy.extractPersonCreatedBy)(jsonLd);
33
44
  var createdByPerson = extractFirstPerson(createdBy);
34
- return /*#__PURE__*/_react.default.createElement("span", null, "Created ", createdByPerson && "by ".concat(createdByPerson.name), ' ', /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedRelative, {
35
- value: createdAt
45
+ return /*#__PURE__*/_react.default.createElement("span", null, "Created ", createdByPerson && "by ".concat(createdByPerson.name), ' ', /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedRelativeTime, {
46
+ value: _value,
47
+ unit: _unit
36
48
  }));
37
49
  }
38
50
  };
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.OMIT_STATES = exports.VALID_STATES = exports.isValidAppearance = void 0;
6
+ exports.isValidAppearance = exports.VALID_STATES = exports.OMIT_STATES = void 0;
7
7
  var VALID_APPEARANCES = ['default', 'success', 'removed', 'inprogress', 'new', 'moved'];
8
8
 
9
9
  var isValidAppearance = function isValidAppearance(appearance) {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.extractPersonFromJsonLd = exports.extractUrlFromIconJsonLd = exports.extractUrlFromLinkJsonLd = void 0;
6
+ exports.extractUrlFromLinkJsonLd = exports.extractUrlFromIconJsonLd = exports.extractPersonFromJsonLd = void 0;
7
7
 
8
8
  var extractUrlFromLinkJsonLd = function extractUrlFromLinkJsonLd(link) {
9
9
  if (typeof link === 'string') {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.JIRA_CUSTOM_TASK_TYPE = exports.JIRA_PROBLEM = exports.JIRA_CHANGE = exports.JIRA_SERVICE_REQUEST = exports.JIRA_INCIDENT = exports.JIRA_EPIC = exports.JIRA_BUG = exports.JIRA_STORY = exports.JIRA_SUB_TASK = exports.JIRA_TASK = exports.JIRA_GENERATOR_ID = exports.CONFLUENCE_GENERATOR_ID = void 0;
6
+ exports.JIRA_TASK = exports.JIRA_SUB_TASK = exports.JIRA_STORY = exports.JIRA_SERVICE_REQUEST = exports.JIRA_PROBLEM = exports.JIRA_INCIDENT = exports.JIRA_GENERATOR_ID = exports.JIRA_EPIC = exports.JIRA_CUSTOM_TASK_TYPE = exports.JIRA_CHANGE = exports.JIRA_BUG = exports.CONFLUENCE_GENERATOR_ID = void 0;
7
7
  var CONFLUENCE_GENERATOR_ID = 'https://www.atlassian.com/#Confluence';
8
8
  exports.CONFLUENCE_GENERATOR_ID = CONFLUENCE_GENERATOR_ID;
9
9
  var JIRA_GENERATOR_ID = 'https://www.atlassian.com/#Jira'; // To support icons for all Jira task types.
@@ -3,12 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "InlineCardPageObject", {
7
- enumerable: true,
8
- get: function get() {
9
- return _tests_external__.InlineCardPageObject;
10
- }
11
- });
12
6
  Object.defineProperty(exports, "BlockCardPageObject", {
13
7
  enumerable: true,
14
8
  get: function get() {
@@ -21,10 +15,10 @@ Object.defineProperty(exports, "EmbedCardPageObject", {
21
15
  return _tests_external__.EmbedCardPageObject;
22
16
  }
23
17
  });
24
- Object.defineProperty(exports, "inlineSmartLinkRendersTestCase", {
18
+ Object.defineProperty(exports, "InlineCardPageObject", {
25
19
  enumerable: true,
26
20
  get: function get() {
27
- return _tests_external__.inlineSmartLinkRendersTestCase;
21
+ return _tests_external__.InlineCardPageObject;
28
22
  }
29
23
  });
30
24
  Object.defineProperty(exports, "blockSmartLinkRendersTestCase", {
@@ -39,5 +33,11 @@ Object.defineProperty(exports, "embedSmartLinkRendersTestCase", {
39
33
  return _tests_external__.embedSmartLinkRendersTestCase;
40
34
  }
41
35
  });
36
+ Object.defineProperty(exports, "inlineSmartLinkRendersTestCase", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _tests_external__.inlineSmartLinkRendersTestCase;
40
+ }
41
+ });
42
42
 
43
43
  var _tests_external__ = require("./__tests_external__");
package/dist/cjs/index.js CHANGED
@@ -5,16 +5,28 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- Object.defineProperty(exports, "Provider", {
8
+ Object.defineProperty(exports, "APIError", {
9
9
  enumerable: true,
10
10
  get: function get() {
11
- return _state.SmartCardProvider;
11
+ return _errors.APIError;
12
12
  }
13
13
  });
14
- Object.defineProperty(exports, "SmartCardContext", {
14
+ Object.defineProperty(exports, "Card", {
15
15
  enumerable: true,
16
16
  get: function get() {
17
- return _state.SmartCardContext;
17
+ return _Card.Card;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "Client", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _client.default;
24
+ }
25
+ });
26
+ Object.defineProperty(exports, "Context", {
27
+ enumerable: true,
28
+ get: function get() {
29
+ return _context.default;
18
30
  }
19
31
  });
20
32
  Object.defineProperty(exports, "EditorCardProvider", {
@@ -23,76 +35,82 @@ Object.defineProperty(exports, "EditorCardProvider", {
23
35
  return _editor.EditorCardProvider;
24
36
  }
25
37
  });
26
- Object.defineProperty(exports, "editorCardProvider", {
38
+ Object.defineProperty(exports, "EmbedResizeMessageListener", {
27
39
  enumerable: true,
28
40
  get: function get() {
29
- return _editor.editorCardProvider;
41
+ return _EmbedResizeMessageListener.EmbedResizeMessageListener;
30
42
  }
31
43
  });
32
- Object.defineProperty(exports, "Client", {
44
+ Object.defineProperty(exports, "Provider", {
33
45
  enumerable: true,
34
46
  get: function get() {
35
- return _client.default;
47
+ return _state.SmartCardProvider;
36
48
  }
37
49
  });
38
- Object.defineProperty(exports, "APIError", {
50
+ Object.defineProperty(exports, "SmartCardContext", {
39
51
  enumerable: true,
40
52
  get: function get() {
41
- return _errors.APIError;
53
+ return _state.SmartCardContext;
42
54
  }
43
55
  });
44
- Object.defineProperty(exports, "Card", {
56
+ Object.defineProperty(exports, "SmartLinkEvents", {
45
57
  enumerable: true,
46
58
  get: function get() {
47
- return _Card.Card;
59
+ return _analytics.SmartLinkEvents;
48
60
  }
49
61
  });
50
- Object.defineProperty(exports, "Context", {
62
+ Object.defineProperty(exports, "blockCardContentClassName", {
51
63
  enumerable: true,
52
64
  get: function get() {
53
- return _context.default;
65
+ return _classNames.blockCardContentClassName;
54
66
  }
55
67
  });
56
- Object.defineProperty(exports, "EmbedResizeMessageListener", {
68
+ Object.defineProperty(exports, "blockCardContentHeaderClassName", {
57
69
  enumerable: true,
58
70
  get: function get() {
59
- return _EmbedResizeMessageListener.EmbedResizeMessageListener;
71
+ return _classNames.blockCardContentHeaderClassName;
60
72
  }
61
73
  });
62
- Object.defineProperty(exports, "embedHeaderHeight", {
74
+ Object.defineProperty(exports, "blockCardContentHeaderNameClassName", {
63
75
  enumerable: true,
64
76
  get: function get() {
65
- return _embeds.embedHeaderHeight;
77
+ return _classNames.blockCardContentHeaderNameClassName;
66
78
  }
67
79
  });
68
- Object.defineProperty(exports, "SmartLinkEvents", {
80
+ Object.defineProperty(exports, "blockCardErroredViewClassName", {
69
81
  enumerable: true,
70
82
  get: function get() {
71
- return _analytics.SmartLinkEvents;
83
+ return _classNames.blockCardErroredViewClassName;
72
84
  }
73
85
  });
74
- Object.defineProperty(exports, "useSmartLinkEvents", {
86
+ Object.defineProperty(exports, "blockCardForbiddenViewClassName", {
75
87
  enumerable: true,
76
88
  get: function get() {
77
- return _useSmartLinkEvents.useSmartLinkEvents;
89
+ return _classNames.blockCardForbiddenViewClassName;
78
90
  }
79
91
  });
80
- Object.defineProperty(exports, "contentFooterClassName", {
92
+ Object.defineProperty(exports, "blockCardForbiddenViewLinkClassName", {
81
93
  enumerable: true,
82
94
  get: function get() {
83
- return _classNames.contentFooterClassName;
95
+ return _classNames.blockCardForbiddenViewLinkClassName;
84
96
  }
85
97
  });
86
- Object.defineProperty(exports, "metadataListClassName", {
98
+ Object.defineProperty(exports, "blockCardIconImageClassName", {
87
99
  enumerable: true,
88
100
  get: function get() {
89
- return _classNames.metadataListClassName;
101
+ return _classNames.blockCardIconImageClassName;
90
102
  }
91
103
  });
92
- Object.defineProperty(exports, "blockCardResolvingViewClassName", {
104
+ Object.defineProperty(exports, "blockCardNotFoundViewClassName", {
93
105
  enumerable: true,
94
106
  get: function get() {
95
- return _classNames.blockCardResolvingViewClassName;
107
+ return _classNames.blockCardNotFoundViewClassName;
108
+ }
109
+ });
110
+ Object.defineProperty(exports, "blockCardResolvedViewByClassName", {
111
+ enumerable: true,
112
+ get: function get() {
113
+ return _classNames.blockCardResolvedViewByClassName;
96
114
  }
97
115
  });
98
116
  Object.defineProperty(exports, "blockCardResolvedViewClassName", {
@@ -101,16 +119,28 @@ Object.defineProperty(exports, "blockCardResolvedViewClassName", {
101
119
  return _classNames.blockCardResolvedViewClassName;
102
120
  }
103
121
  });
104
- Object.defineProperty(exports, "blockCardForbiddenViewClassName", {
122
+ Object.defineProperty(exports, "blockCardResolvingViewClassName", {
105
123
  enumerable: true,
106
124
  get: function get() {
107
- return _classNames.blockCardForbiddenViewClassName;
125
+ return _classNames.blockCardResolvingViewClassName;
108
126
  }
109
127
  });
110
- Object.defineProperty(exports, "blockCardIconImageClassName", {
128
+ Object.defineProperty(exports, "contentFooterClassName", {
111
129
  enumerable: true,
112
130
  get: function get() {
113
- return _classNames.blockCardIconImageClassName;
131
+ return _classNames.contentFooterClassName;
132
+ }
133
+ });
134
+ Object.defineProperty(exports, "editorCardProvider", {
135
+ enumerable: true,
136
+ get: function get() {
137
+ return _editor.editorCardProvider;
138
+ }
139
+ });
140
+ Object.defineProperty(exports, "embedHeaderHeight", {
141
+ enumerable: true,
142
+ get: function get() {
143
+ return _embeds.embedHeaderHeight;
114
144
  }
115
145
  });
116
146
  Object.defineProperty(exports, "loadingPlaceholderClassName", {
@@ -119,6 +149,18 @@ Object.defineProperty(exports, "loadingPlaceholderClassName", {
119
149
  return _LazyFallback.loadingPlaceholderClassName;
120
150
  }
121
151
  });
152
+ Object.defineProperty(exports, "metadataListClassName", {
153
+ enumerable: true,
154
+ get: function get() {
155
+ return _classNames.metadataListClassName;
156
+ }
157
+ });
158
+ Object.defineProperty(exports, "useSmartLinkEvents", {
159
+ enumerable: true,
160
+ get: function get() {
161
+ return _useSmartLinkEvents.useSmartLinkEvents;
162
+ }
163
+ });
122
164
 
123
165
  var _state = require("./state");
124
166
 
@@ -16,7 +16,11 @@ var isJiraRoadMap = function isJiraRoadMap(url) {
16
16
  };
17
17
 
18
18
  var isPolarisView = function isPolarisView(url) {
19
- return url.match(/^https:\/\/.*?\/jira\/polaris\/projects\/[^\/]+?\/ideas\/view\/\d+$/);
19
+ return url.match(/^https:\/\/.*?\/jira\/polaris\/projects\/[^\/]+?\/ideas\/view\/\d+$|^https:\/\/.*?\/secure\/JiraProductDiscoveryAnonymous\.jspa\?hash=\w+|^https:\/\/.*?\/jira\/polaris\/share\/\w+/);
20
+ };
21
+
22
+ var isJwmView = function isJwmView(url) {
23
+ return url.match(/^https:\/\/.*?\/jira\/core\/projects\/[^\/]+?\/(timeline|calendar)\/?/);
20
24
  };
21
25
 
22
26
  var isSlackMessage = function isSlackMessage(url) {
@@ -62,7 +66,7 @@ var Transformer = /*#__PURE__*/function () {
62
66
  }, {
63
67
  key: "toAdf",
64
68
  value: function toAdf(url, appearance) {
65
- if (isJiraRoadMap(url) || isPolarisView(url)) {
69
+ if (isJiraRoadMap(url) || isPolarisView(url) || isJwmView(url)) {
66
70
  return this.buildEmbedAdf(url);
67
71
  } else if (isSlackMessage(url)) {
68
72
  return this.buildBlockAdf(url);
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ERROR_MESSAGE_FATAL = exports.ERROR_MESSAGE_OAUTH = exports.ANALYTICS_FALLBACK = exports.ANALYTICS_ERROR = exports.ANALYTICS_RESOLVING = exports.ACTION_PRELOAD = exports.ACTION_ERROR_FALLBACK = exports.ACTION_ERROR = exports.ACTION_RESOLVED = exports.ACTION_RESOLVING = exports.ACTION_PENDING = void 0;
6
+ exports.ERROR_MESSAGE_OAUTH = exports.ERROR_MESSAGE_FATAL = exports.ANALYTICS_RESOLVING = exports.ANALYTICS_FALLBACK = exports.ANALYTICS_ERROR = exports.ACTION_RESOLVING = exports.ACTION_RESOLVED = exports.ACTION_PRELOAD = exports.ACTION_PENDING = exports.ACTION_ERROR_FALLBACK = exports.ACTION_ERROR = void 0;
7
7
  var ACTION_PENDING = 'pending';
8
8
  exports.ACTION_PENDING = ACTION_PENDING;
9
9
  var ACTION_RESOLVING = 'resolving';
@@ -31,6 +31,8 @@ var _errors = require("../../client/errors");
31
31
 
32
32
  var _jsonld = require("../../utils/jsonld");
33
33
 
34
+ var _analytics = require("../analytics");
35
+
34
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); }
35
37
 
36
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; }
@@ -124,7 +126,7 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
124
126
  isReloading = _args.length > 1 && _args[1] !== undefined ? _args[1] : false;
125
127
 
126
128
  if (!(isReloading || !hasData)) {
127
- _context.next = 4;
129
+ _context.next = 6;
128
130
  break;
129
131
  }
130
132
 
@@ -134,13 +136,18 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
134
136
  return handleResolvedLinkError(resourceUrl, error);
135
137
  }));
136
138
 
137
- case 4:
139
+ case 6:
140
+ (0, _analytics.addMetadataToExperience)('smart-link-rendered', id, {
141
+ cached: true
142
+ });
143
+
144
+ case 7:
138
145
  case "end":
139
146
  return _context.stop();
140
147
  }
141
148
  }
142
149
  }, _callee);
143
- })), [url, hasData, connections.client, handleResolvedLinkResponse, handleResolvedLinkError]);
150
+ })), [url, hasData, connections.client, handleResolvedLinkResponse, handleResolvedLinkError, id]);
144
151
  var register = (0, _react.useCallback)(function () {
145
152
  if (!details) {
146
153
  dispatch((0, _helpers.cardAction)(_constants.ACTION_PENDING, {
@@ -178,10 +185,10 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
178
185
  analytics.screen.authPopupEvent(definitionId, extensionKey);
179
186
  (0, _outboundAuthFlowClient.auth)(services[0].url).then(function () {
180
187
  analytics.track.appAccountConnected(definitionId, extensionKey);
181
- analytics.operational.connectSucceededEvent(definitionId, extensionKey);
188
+ analytics.operational.connectSucceededEvent(id, definitionId, extensionKey);
182
189
  reload();
183
190
  }, function (err) {
184
- analytics.operational.connectFailedEvent(definitionId, extensionKey, err.type);
191
+ analytics.operational.connectFailedEvent(id, definitionId, extensionKey, err.type);
185
192
 
186
193
  if (err.type === 'auth_window_closed') {
187
194
  analytics.ui.closedAuthEvent(appearance, definitionId, extensionKey);
@@ -190,7 +197,7 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
190
197
  reload();
191
198
  });
192
199
  }
193
- }, [analytics.ui, analytics.screen, analytics.track, analytics.operational, reload, details, status]);
200
+ }, [analytics.ui, analytics.screen, analytics.track, analytics.operational, id, reload, details, status]);
194
201
  var invoke = (0, _react.useCallback)( /*#__PURE__*/function () {
195
202
  var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(opts, appearance) {
196
203
  var key, action, source, markName, response;
@@ -205,7 +212,7 @@ var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
205
212
  measure.mark(markName, 'pending');
206
213
  _context2.prev = 4;
207
214
  // Begin analytics instrumentation.
208
- analytics.ui.actionClickedEvent(key, action.type, source); // Invoke action - either client-side or server-side.
215
+ analytics.ui.actionClickedEvent(id, key, action.type, source, opts.type); // Invoke action - either client-side or server-side.
209
216
 
210
217
  if (!(opts.type === 'client')) {
211
218
  _context2.next = 12;