@atlaskit/smart-card 18.0.21 → 19.0.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.
- package/CHANGELOG.md +49 -0
- package/dist/cjs/client/index.js +6 -379
- package/dist/cjs/constants.js +4 -4
- package/dist/cjs/extractors/embed/index.js +2 -2
- package/dist/cjs/extractors/hover/extractMetadata.js +31 -0
- package/dist/cjs/index.js +7 -13
- package/dist/cjs/state/actions/constants.js +1 -13
- package/dist/cjs/state/actions/index.js +20 -22
- package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +2 -2
- package/dist/cjs/state/config/index.js +2 -2
- package/dist/cjs/state/helpers.js +1 -9
- package/dist/cjs/state/hooks/usePrefetch.js +2 -2
- package/dist/cjs/state/index.js +4 -4
- package/dist/cjs/state/renderers/index.js +2 -2
- package/dist/cjs/state/store/index.js +5 -5
- package/dist/cjs/utils/mocks.js +2 -2
- package/dist/cjs/utils/test-utils.js +2 -2
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/FlexibleCard/components/actions/action/index.js +2 -2
- package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.js +1 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/block/index.js +3 -2
- package/dist/cjs/view/FlexibleCard/components/blocks/element-group/index.js +1 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/footer-block/index.js +1 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/metadata-block/index.js +1 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/preview-block/index.js +1 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/snippet-block/index.js +1 -0
- package/dist/cjs/view/FlexibleCard/components/blocks/title-block/index.js +2 -1
- package/dist/cjs/view/FlexibleCard/components/container/index.js +19 -6
- package/dist/cjs/view/FlexibleCard/components/container/layered-link/index.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/elements/avatar-group/index.js +2 -2
- package/dist/cjs/view/FlexibleCard/components/elements/badge/index.js +2 -2
- package/dist/cjs/view/FlexibleCard/components/elements/date-time/index.js +2 -2
- package/dist/cjs/view/FlexibleCard/components/elements/icon/index.js +2 -2
- package/dist/cjs/view/FlexibleCard/components/elements/index.js +2 -2
- package/dist/cjs/view/FlexibleCard/components/elements/link/index.js +3 -3
- package/dist/cjs/view/FlexibleCard/components/elements/lozenge/index.js +2 -2
- package/dist/cjs/view/FlexibleCard/components/elements/media/index.js +2 -2
- package/dist/cjs/view/FlexibleCard/components/elements/text/index.js +2 -2
- package/dist/cjs/view/HoverCard/index.js +11 -2
- package/dist/cjs/view/HoverCard/utils.js +36 -0
- package/dist/es2019/client/index.js +1 -214
- package/dist/es2019/constants.js +4 -4
- package/dist/es2019/extractors/embed/index.js +1 -1
- package/dist/es2019/extractors/hover/extractMetadata.js +18 -0
- package/dist/es2019/index.js +4 -4
- package/dist/es2019/state/actions/constants.js +0 -6
- package/dist/es2019/state/actions/index.js +4 -4
- package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +1 -1
- package/dist/es2019/state/config/index.js +1 -1
- package/dist/es2019/state/helpers.js +0 -5
- package/dist/es2019/state/hooks/usePrefetch.js +1 -1
- package/dist/es2019/state/index.js +1 -1
- package/dist/es2019/state/renderers/index.js +1 -1
- package/dist/es2019/state/store/index.js +2 -2
- package/dist/es2019/utils/mocks.js +1 -1
- package/dist/es2019/utils/test-utils.js +1 -1
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/FlexibleCard/components/actions/action/index.js +2 -2
- package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/block/index.js +3 -2
- package/dist/es2019/view/FlexibleCard/components/blocks/element-group/index.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/footer-block/index.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/metadata-block/index.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/preview-block/index.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/snippet-block/index.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/blocks/title-block/index.js +2 -1
- package/dist/es2019/view/FlexibleCard/components/container/index.js +19 -6
- package/dist/es2019/view/FlexibleCard/components/container/layered-link/index.js +5 -0
- package/dist/es2019/view/FlexibleCard/components/elements/avatar-group/index.js +2 -2
- package/dist/es2019/view/FlexibleCard/components/elements/badge/index.js +2 -2
- package/dist/es2019/view/FlexibleCard/components/elements/date-time/index.js +2 -2
- package/dist/es2019/view/FlexibleCard/components/elements/icon/index.js +2 -2
- package/dist/es2019/view/FlexibleCard/components/elements/index.js +2 -2
- package/dist/es2019/view/FlexibleCard/components/elements/link/index.js +3 -3
- package/dist/es2019/view/FlexibleCard/components/elements/lozenge/index.js +2 -2
- package/dist/es2019/view/FlexibleCard/components/elements/media/index.js +2 -2
- package/dist/es2019/view/FlexibleCard/components/elements/text/index.js +2 -2
- package/dist/es2019/view/HoverCard/index.js +27 -18
- package/dist/es2019/view/HoverCard/utils.js +27 -0
- package/dist/esm/client/index.js +1 -360
- package/dist/esm/constants.js +4 -4
- package/dist/esm/extractors/embed/index.js +1 -1
- package/dist/esm/extractors/hover/extractMetadata.js +22 -0
- package/dist/esm/index.js +4 -4
- package/dist/esm/state/actions/constants.js +0 -6
- package/dist/esm/state/actions/index.js +4 -4
- package/dist/esm/state/analytics/useSmartLinkAnalytics.js +1 -1
- package/dist/esm/state/config/index.js +1 -1
- package/dist/esm/state/helpers.js +0 -5
- package/dist/esm/state/hooks/usePrefetch.js +1 -1
- package/dist/esm/state/index.js +1 -1
- package/dist/esm/state/renderers/index.js +1 -1
- package/dist/esm/state/store/index.js +2 -2
- package/dist/esm/utils/mocks.js +1 -1
- package/dist/esm/utils/test-utils.js +1 -1
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/FlexibleCard/components/actions/action/index.js +2 -2
- package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.js +1 -0
- package/dist/esm/view/FlexibleCard/components/blocks/block/index.js +3 -2
- package/dist/esm/view/FlexibleCard/components/blocks/element-group/index.js +1 -0
- package/dist/esm/view/FlexibleCard/components/blocks/footer-block/index.js +1 -0
- package/dist/esm/view/FlexibleCard/components/blocks/metadata-block/index.js +1 -0
- package/dist/esm/view/FlexibleCard/components/blocks/preview-block/index.js +1 -0
- package/dist/esm/view/FlexibleCard/components/blocks/snippet-block/index.js +1 -0
- package/dist/esm/view/FlexibleCard/components/blocks/title-block/index.js +2 -1
- package/dist/esm/view/FlexibleCard/components/container/index.js +19 -6
- package/dist/esm/view/FlexibleCard/components/container/layered-link/index.js +5 -0
- package/dist/esm/view/FlexibleCard/components/elements/avatar-group/index.js +2 -2
- package/dist/esm/view/FlexibleCard/components/elements/badge/index.js +2 -2
- package/dist/esm/view/FlexibleCard/components/elements/date-time/index.js +2 -2
- package/dist/esm/view/FlexibleCard/components/elements/icon/index.js +2 -2
- package/dist/esm/view/FlexibleCard/components/elements/index.js +2 -2
- package/dist/esm/view/FlexibleCard/components/elements/link/index.js +3 -3
- package/dist/esm/view/FlexibleCard/components/elements/lozenge/index.js +2 -2
- package/dist/esm/view/FlexibleCard/components/elements/media/index.js +2 -2
- package/dist/esm/view/FlexibleCard/components/elements/text/index.js +2 -2
- package/dist/esm/view/HoverCard/index.js +10 -3
- package/dist/esm/view/HoverCard/utils.js +27 -0
- package/dist/types/__tests_external__/page-objects/BaseCard.d.ts +1 -2
- package/dist/types/client/index.d.ts +1 -18
- package/dist/types/constants.d.ts +4 -4
- package/dist/types/extractors/block/index.d.ts +1 -1
- package/dist/types/extractors/common/title-prefix/extractTitlePrefix.d.ts +1 -1
- package/dist/types/extractors/flexible/icon/extract-icon-renderer.d.ts +1 -1
- package/dist/types/extractors/flexible/icon/index.d.ts +1 -1
- package/dist/types/extractors/flexible/index.d.ts +1 -1
- package/dist/types/extractors/hover/extractMetadata.d.ts +3 -0
- package/dist/types/extractors/inline/index.d.ts +1 -1
- package/dist/types/index.d.ts +6 -6
- package/dist/types/model/invoke-opts.d.ts +1 -14
- package/dist/types/state/actions/constants.d.ts +0 -6
- package/dist/types/state/actions/types.d.ts +2 -13
- package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +1 -2
- package/dist/types/state/config/index.d.ts +1 -1
- package/dist/types/state/helpers.d.ts +1 -3
- package/dist/types/state/hooks/useSmartLink.d.ts +6 -6
- package/dist/types/state/index.d.ts +3 -3
- package/dist/types/state/reducers/types.d.ts +1 -1
- package/dist/types/state/renderers/index.d.ts +1 -1
- package/dist/types/state/store/index.d.ts +2 -2
- package/dist/types/state/types.d.ts +1 -1
- package/dist/types/types.d.ts +2 -2
- package/dist/types/utils/analytics/analytics.d.ts +1 -1
- package/dist/types/utils/analytics/index.d.ts +1 -2
- package/dist/types/utils/performance.d.ts +1 -1
- package/dist/types/view/BlockCard/types.d.ts +1 -1
- package/dist/types/view/Card/types.d.ts +2 -3
- package/dist/types/view/FlexibleCard/components/actions/action/index.d.ts +2 -2
- package/dist/types/view/FlexibleCard/components/actions/action/types.d.ts +43 -0
- package/dist/types/view/FlexibleCard/components/blocks/action-group/index.d.ts +1 -0
- package/dist/types/view/FlexibleCard/components/blocks/action-group/types.d.ts +25 -0
- package/dist/types/view/FlexibleCard/components/blocks/block/index.d.ts +3 -2
- package/dist/types/view/FlexibleCard/components/blocks/element-group/index.d.ts +1 -0
- package/dist/types/view/FlexibleCard/components/blocks/footer-block/index.d.ts +1 -0
- package/dist/types/view/FlexibleCard/components/blocks/footer-block/types.d.ts +8 -2
- package/dist/types/view/FlexibleCard/components/blocks/metadata-block/index.d.ts +1 -0
- package/dist/types/view/FlexibleCard/components/blocks/metadata-block/types.d.ts +22 -2
- package/dist/types/view/FlexibleCard/components/blocks/preview-block/index.d.ts +1 -0
- package/dist/types/view/FlexibleCard/components/blocks/snippet-block/index.d.ts +1 -0
- package/dist/types/view/FlexibleCard/components/blocks/snippet-block/types.d.ts +6 -2
- package/dist/types/view/FlexibleCard/components/blocks/title-block/index.d.ts +2 -1
- package/dist/types/view/FlexibleCard/components/blocks/title-block/types.d.ts +63 -13
- package/dist/types/view/FlexibleCard/components/blocks/types.d.ts +68 -2
- package/dist/types/view/FlexibleCard/components/common/loading-skeleton/types.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/container/index.d.ts +5 -1
- package/dist/types/view/FlexibleCard/components/container/layered-link/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/container/types.d.ts +20 -10
- package/dist/types/view/FlexibleCard/components/elements/avatar-group/index.d.ts +2 -2
- package/dist/types/view/FlexibleCard/components/elements/avatar-group/types.d.ts +12 -0
- package/dist/types/view/FlexibleCard/components/elements/badge/index.d.ts +2 -2
- package/dist/types/view/FlexibleCard/components/elements/badge/types.d.ts +10 -0
- package/dist/types/view/FlexibleCard/components/elements/date-time/index.d.ts +2 -2
- package/dist/types/view/FlexibleCard/components/elements/date-time/types.d.ts +6 -0
- package/dist/types/view/FlexibleCard/components/elements/icon/index.d.ts +2 -2
- package/dist/types/view/FlexibleCard/components/elements/icon/types.d.ts +16 -3
- package/dist/types/view/FlexibleCard/components/elements/index.d.ts +2 -2
- package/dist/types/view/FlexibleCard/components/elements/link/index.d.ts +3 -3
- package/dist/types/view/FlexibleCard/components/elements/link/types.d.ts +21 -1
- package/dist/types/view/FlexibleCard/components/elements/lozenge/index.d.ts +2 -2
- package/dist/types/view/FlexibleCard/components/elements/lozenge/types.d.ts +6 -0
- package/dist/types/view/FlexibleCard/components/elements/media/index.d.ts +2 -2
- package/dist/types/view/FlexibleCard/components/elements/media/types.d.ts +6 -0
- package/dist/types/view/FlexibleCard/components/elements/text/index.d.ts +2 -2
- package/dist/types/view/FlexibleCard/components/elements/text/types.d.ts +10 -0
- package/dist/types/view/FlexibleCard/components/elements/types.d.ts +11 -0
- package/dist/types/view/FlexibleCard/components/types.d.ts +1 -0
- package/dist/types/view/FlexibleCard/types.d.ts +73 -3
- package/dist/types/view/FlexibleCard/utils.d.ts +1 -1
- package/dist/types/view/HoverCard/types.d.ts +5 -0
- package/dist/types/view/HoverCard/utils.d.ts +2 -0
- package/dist/types/view/InlineCard/types.d.ts +1 -1
- package/docs-helpers/flexible-ui-action-item.tsx +6 -0
- package/docs-helpers/flexible-ui-actions-prop.tsx +6 -0
- package/docs-helpers/flexible-ui-element-item.tsx +6 -0
- package/docs-helpers/flexible-ui-prop.tsx +6 -0
- package/docs-helpers/flexible-ui.tsx +28 -0
- package/package.json +3 -9
- package/dist/cjs/client/api.js +0 -119
- package/dist/cjs/client/errors.js +0 -55
- package/dist/cjs/client/types/index.js +0 -5
- package/dist/cjs/client/types/requests.js +0 -5
- package/dist/cjs/client/types/responses.js +0 -31
- package/dist/cjs/client/utils/environments.js +0 -47
- package/dist/cjs/providers/editor/index.js +0 -283
- package/dist/cjs/providers/editor/transformer.js +0 -90
- package/dist/cjs/providers/editor/types.js +0 -5
- package/dist/cjs/state/actions/helpers.js +0 -18
- package/dist/cjs/state/context/index.js +0 -34
- package/dist/cjs/state/context/provider.js +0 -74
- package/dist/cjs/state/context/types.js +0 -5
- package/dist/cjs/state/reducers/index.js +0 -89
- package/dist/cjs/state/store/types.js +0 -5
- package/dist/es2019/client/api.js +0 -38
- package/dist/es2019/client/errors.js +0 -19
- package/dist/es2019/client/types/index.js +0 -1
- package/dist/es2019/client/types/requests.js +0 -1
- package/dist/es2019/client/types/responses.js +0 -19
- package/dist/es2019/client/utils/environments.js +0 -33
- package/dist/es2019/providers/editor/index.js +0 -82
- package/dist/es2019/providers/editor/transformer.js +0 -57
- package/dist/es2019/providers/editor/types.js +0 -1
- package/dist/es2019/state/actions/helpers.js +0 -8
- package/dist/es2019/state/context/index.js +0 -14
- package/dist/es2019/state/context/provider.js +0 -51
- package/dist/es2019/state/context/types.js +0 -1
- package/dist/es2019/state/reducers/index.js +0 -74
- package/dist/es2019/state/store/types.js +0 -1
- package/dist/esm/client/api.js +0 -98
- package/dist/esm/client/errors.js +0 -40
- package/dist/esm/client/types/index.js +0 -1
- package/dist/esm/client/types/requests.js +0 -1
- package/dist/esm/client/types/responses.js +0 -19
- package/dist/esm/client/utils/environments.js +0 -33
- package/dist/esm/providers/editor/index.js +0 -257
- package/dist/esm/providers/editor/transformer.js +0 -79
- package/dist/esm/providers/editor/types.js +0 -1
- package/dist/esm/state/actions/helpers.js +0 -9
- package/dist/esm/state/context/index.js +0 -14
- package/dist/esm/state/context/provider.js +0 -50
- package/dist/esm/state/context/types.js +0 -1
- package/dist/esm/state/reducers/index.js +0 -69
- package/dist/esm/state/store/types.js +0 -1
- package/dist/types/client/api.d.ts +0 -5
- package/dist/types/client/errors.d.ts +0 -9
- package/dist/types/client/types/index.d.ts +0 -13
- package/dist/types/client/types/requests.d.ts +0 -9
- package/dist/types/client/types/responses.d.ts +0 -19
- package/dist/types/client/utils/environments.d.ts +0 -12
- package/dist/types/providers/editor/index.d.ts +0 -22
- package/dist/types/providers/editor/transformer.d.ts +0 -8
- package/dist/types/providers/editor/types.d.ts +0 -19
- package/dist/types/state/actions/helpers.d.ts +0 -2
- package/dist/types/state/context/index.d.ts +0 -8
- package/dist/types/state/context/provider.d.ts +0 -5
- package/dist/types/state/context/types.d.ts +0 -39
- package/dist/types/state/reducers/index.d.ts +0 -4
- package/dist/types/state/store/types.d.ts +0 -18
|
@@ -65,9 +65,9 @@ const getMaxLines = maxLines => {
|
|
|
65
65
|
return maxLines;
|
|
66
66
|
};
|
|
67
67
|
/**
|
|
68
|
-
*
|
|
69
|
-
* @
|
|
70
|
-
* @param {LinkProps} LinkProps - The props necessary for the
|
|
68
|
+
* A base element that represent an anchor.
|
|
69
|
+
* @internal
|
|
70
|
+
* @param {LinkProps} LinkProps - The props necessary for the Link element.
|
|
71
71
|
* @see LinkIcon
|
|
72
72
|
*/
|
|
73
73
|
|
|
@@ -6,8 +6,8 @@ const styles = css`
|
|
|
6
6
|
line-height: inherit;
|
|
7
7
|
`;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
* @
|
|
9
|
+
* A base element that displays a Lozenge.
|
|
10
|
+
* @internal
|
|
11
11
|
* @param {LozengeProps} LozengeProps - The props necessary for the Lozenge element.
|
|
12
12
|
* @see State
|
|
13
13
|
*/
|
|
@@ -11,8 +11,8 @@ const getStyles = maxLines => css`
|
|
|
11
11
|
${getTruncateStyles(maxLines)}
|
|
12
12
|
`;
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
15
|
-
* @
|
|
14
|
+
* A base element that displays some Text.
|
|
15
|
+
* @internal
|
|
16
16
|
* @param {TextProps} TextProps - The props necessary for the Text element.
|
|
17
17
|
* @see Title
|
|
18
18
|
*/
|
|
@@ -3,7 +3,7 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
3
3
|
/** @jsx jsx */
|
|
4
4
|
import { jsx } from '@emotion/core';
|
|
5
5
|
import React, { useCallback, useRef, useMemo } from 'react';
|
|
6
|
-
import { TitleBlock, SnippetBlock, FooterBlock } from '../FlexibleCard/components/blocks';
|
|
6
|
+
import { TitleBlock, SnippetBlock, FooterBlock, MetadataBlock } from '../FlexibleCard/components/blocks';
|
|
7
7
|
import { Card } from '../Card';
|
|
8
8
|
import Popup from '@atlaskit/popup';
|
|
9
9
|
import { SmartLinkSize, ActionName } from '../../constants';
|
|
@@ -15,6 +15,8 @@ import { fireSmartLinkEvent } from '../../utils/analytics';
|
|
|
15
15
|
import { useSmartCardState as useLinkState } from '../../state/store';
|
|
16
16
|
import { useSmartLinkAnalytics } from '../../state/analytics';
|
|
17
17
|
import { getExtensionKey, getDefinitionId } from '../../state/helpers';
|
|
18
|
+
import { extractMetadata } from '../../extractors/hover/extractMetadata';
|
|
19
|
+
import { getSimulatedMetadata } from './utils';
|
|
18
20
|
export const HoverCardComponent = ({
|
|
19
21
|
children,
|
|
20
22
|
url,
|
|
@@ -89,22 +91,29 @@ export const HoverCardComponent = ({
|
|
|
89
91
|
};
|
|
90
92
|
}, [url, definitionId, extensionKey, analytics]);
|
|
91
93
|
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
94
|
+
const CardComponent = () => {
|
|
95
|
+
//TODO: EDM-3224 deleted simulated and use real JsonLd
|
|
96
|
+
const metadataElements = extractMetadata(getSimulatedMetadata(extensionKey));
|
|
97
|
+
return jsx("div", {
|
|
98
|
+
onMouseEnter: initShowCard,
|
|
99
|
+
onMouseLeave: initHideCard,
|
|
100
|
+
css: HoverCardContainer
|
|
101
|
+
}, jsx(Card, {
|
|
102
|
+
appearance: "block",
|
|
103
|
+
url: url,
|
|
104
|
+
ui: {
|
|
105
|
+
hideElevation: true,
|
|
106
|
+
size: SmartLinkSize.Large
|
|
107
|
+
}
|
|
108
|
+
}, jsx(TitleBlock, {
|
|
109
|
+
actions: [openAction]
|
|
110
|
+
}), jsx(MetadataBlock, {
|
|
111
|
+
primary: metadataElements.primary,
|
|
112
|
+
secondary: metadataElements.secondary
|
|
113
|
+
}), jsx(SnippetBlock, null), jsx(FooterBlock, {
|
|
114
|
+
actions: smartlinkActions
|
|
115
|
+
})));
|
|
116
|
+
};
|
|
108
117
|
|
|
109
118
|
const onClose = useCallback(() => setIsOpen(false), []);
|
|
110
119
|
return jsx(Popup, {
|
|
@@ -112,7 +121,7 @@ export const HoverCardComponent = ({
|
|
|
112
121
|
isOpen: isOpen,
|
|
113
122
|
onClose: onClose,
|
|
114
123
|
placement: "bottom-start",
|
|
115
|
-
content:
|
|
124
|
+
content: CardComponent,
|
|
116
125
|
trigger: triggerProps => jsx("span", _extends({}, triggerProps, {
|
|
117
126
|
onMouseEnter: initShowCard,
|
|
118
127
|
onMouseLeave: initHideCard
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export const getSimulatedMetadata = extensionKey => {
|
|
2
|
+
switch (extensionKey) {
|
|
3
|
+
case 'confluence-object-provider':
|
|
4
|
+
return {
|
|
5
|
+
metadata: {
|
|
6
|
+
primary: ['AuthorGroup', 'CreatedBy', 'CommentCount', 'ReactCount'],
|
|
7
|
+
secondary: []
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
case 'jira-object-provider':
|
|
12
|
+
return {
|
|
13
|
+
metadata: {
|
|
14
|
+
primary: ['AuthorGroup', 'State', 'Priority'],
|
|
15
|
+
secondary: []
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
default:
|
|
20
|
+
return {
|
|
21
|
+
metadata: {
|
|
22
|
+
primary: ['ModifiedOn'],
|
|
23
|
+
secondary: []
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
};
|
package/dist/esm/client/index.js
CHANGED
|
@@ -1,360 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
4
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
5
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
6
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
7
|
-
// import setimmediate to temporary fix dataloader 2.0.0 bug
|
|
8
|
-
// @see https://github.com/graphql/dataloader/issues/249
|
|
9
|
-
import 'setimmediate';
|
|
10
|
-
import DataLoader from 'dataloader';
|
|
11
|
-
import retry from 'async-retry';
|
|
12
|
-
import * as api from './api';
|
|
13
|
-
import { APIError } from './errors';
|
|
14
|
-
import { getResolverUrl } from './utils/environments';
|
|
15
|
-
import pThrottle from 'p-throttle';
|
|
16
|
-
import { isSuccessfulResponse, isErrorResponse } from './types/responses';
|
|
17
|
-
var MAX_BATCH_SIZE = 50;
|
|
18
|
-
var MIN_TIME_BETWEEN_BATCHES = 250;
|
|
19
|
-
|
|
20
|
-
var CardClient = /*#__PURE__*/function () {
|
|
21
|
-
function CardClient(envKey) {
|
|
22
|
-
var _this = this;
|
|
23
|
-
|
|
24
|
-
_classCallCheck(this, CardClient);
|
|
25
|
-
|
|
26
|
-
_defineProperty(this, "batchResolve", /*#__PURE__*/function () {
|
|
27
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(urls) {
|
|
28
|
-
var deDuplicatedUrls, resolvedUrls, map, i, url, data;
|
|
29
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
30
|
-
while (1) {
|
|
31
|
-
switch (_context.prev = _context.next) {
|
|
32
|
-
case 0:
|
|
33
|
-
// De-duplicate requested URLs (see `this.createLoader` for more detail).
|
|
34
|
-
deDuplicatedUrls = _toConsumableArray(new Set(urls));
|
|
35
|
-
resolvedUrls = [];
|
|
36
|
-
_context.prev = 2;
|
|
37
|
-
_context.next = 5;
|
|
38
|
-
return api.request('post', "".concat(_this.resolverUrl, "/resolve/batch"), deDuplicatedUrls.map(function (resourceUrl) {
|
|
39
|
-
return {
|
|
40
|
-
resourceUrl: resourceUrl
|
|
41
|
-
};
|
|
42
|
-
}));
|
|
43
|
-
|
|
44
|
-
case 5:
|
|
45
|
-
resolvedUrls = _context.sent;
|
|
46
|
-
_context.next = 11;
|
|
47
|
-
break;
|
|
48
|
-
|
|
49
|
-
case 8:
|
|
50
|
-
_context.prev = 8;
|
|
51
|
-
_context.t0 = _context["catch"](2);
|
|
52
|
-
// we make sure we return a valid dataloader response by creating an error
|
|
53
|
-
// response for each url
|
|
54
|
-
resolvedUrls = urls.map(function () {
|
|
55
|
-
var status = isErrorResponse(_context.t0) ? _context.t0.status : 500;
|
|
56
|
-
var errorResponse = {
|
|
57
|
-
status: status,
|
|
58
|
-
error: _context.t0
|
|
59
|
-
};
|
|
60
|
-
return errorResponse;
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
case 11:
|
|
64
|
-
// Reduce into a map to make accessing faster and easier.
|
|
65
|
-
map = {}; // NOTE: the batch endpoint returns the URLs in the same order they were given.
|
|
66
|
-
|
|
67
|
-
for (i = 0; i < deDuplicatedUrls.length; ++i) {
|
|
68
|
-
url = deDuplicatedUrls[i];
|
|
69
|
-
data = resolvedUrls[i];
|
|
70
|
-
map[url] = data;
|
|
71
|
-
} // Reconvert list back into the original order in which it was given to us.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return _context.abrupt("return", urls.map(function (originalUrl) {
|
|
75
|
-
return map[originalUrl];
|
|
76
|
-
}));
|
|
77
|
-
|
|
78
|
-
case 14:
|
|
79
|
-
case "end":
|
|
80
|
-
return _context.stop();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}, _callee, null, [[2, 8]]);
|
|
84
|
-
}));
|
|
85
|
-
|
|
86
|
-
return function (_x) {
|
|
87
|
-
return _ref.apply(this, arguments);
|
|
88
|
-
};
|
|
89
|
-
}());
|
|
90
|
-
|
|
91
|
-
this.resolverUrl = getResolverUrl(envKey);
|
|
92
|
-
this.loadersByDomain = {};
|
|
93
|
-
this.retryConfig = {
|
|
94
|
-
retries: 2
|
|
95
|
-
};
|
|
96
|
-
this.resolvedCache = {};
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
_createClass(CardClient, [{
|
|
100
|
-
key: "createLoader",
|
|
101
|
-
value: function createLoader() {
|
|
102
|
-
var batchResolveThrottler = pThrottle({
|
|
103
|
-
limit: 1,
|
|
104
|
-
interval: MIN_TIME_BETWEEN_BATCHES
|
|
105
|
-
});
|
|
106
|
-
var throttledBatchResolve = batchResolveThrottler(this.batchResolve);
|
|
107
|
-
return new DataLoader( // We place all calls to `batchResolve` in a limiter so we don't send off several simultaneous batch requests.
|
|
108
|
-
// This is for two reasons:
|
|
109
|
-
// 1: we want to avoid getting rate limited upstream (eg: forge and other APIs)
|
|
110
|
-
// 2: we want to avoid sending out heaps of requests from the client at once
|
|
111
|
-
function (urls) {
|
|
112
|
-
return throttledBatchResolve(urls);
|
|
113
|
-
}, {
|
|
114
|
-
maxBatchSize: MAX_BATCH_SIZE,
|
|
115
|
-
// NOTE: we turn off DataLoader's cache because it doesn't work for our use-case. Consider the following:
|
|
116
|
-
// - a smartlink to a restricted item is resolved to "forbidden" with a "request access button"
|
|
117
|
-
// - the user clicks "request access", and then following the auth prompts and gets access
|
|
118
|
-
// - the frontend now re-renders the smartlink, but due to DataLoader's caching, the previous "forbidden" state is
|
|
119
|
-
// because the smartlink's URL (which is the cache key) is exactly the same
|
|
120
|
-
//
|
|
121
|
-
// For this reason, we disable DataLoader's cache.
|
|
122
|
-
// This means that URLs will not be de-duplicated by DataLoader, so we perform the de-duplication logic
|
|
123
|
-
// ourselves in `this.batchResolve`.
|
|
124
|
-
cache: false
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
}, {
|
|
128
|
-
key: "getLoader",
|
|
129
|
-
value: function getLoader(hostname) {
|
|
130
|
-
if (!this.loadersByDomain[hostname]) {
|
|
131
|
-
this.loadersByDomain[hostname] = this.createLoader();
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
return this.loadersByDomain[hostname];
|
|
135
|
-
}
|
|
136
|
-
}, {
|
|
137
|
-
key: "prefetchData",
|
|
138
|
-
value: function () {
|
|
139
|
-
var _prefetchData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(url) {
|
|
140
|
-
var _this2 = this;
|
|
141
|
-
|
|
142
|
-
var hostname, loader, response, retriedResponse;
|
|
143
|
-
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
144
|
-
while (1) {
|
|
145
|
-
switch (_context3.prev = _context3.next) {
|
|
146
|
-
case 0:
|
|
147
|
-
// 1. Queue the URL as part of a dataloader batch.
|
|
148
|
-
hostname = new URL(url).hostname;
|
|
149
|
-
loader = this.getLoader(hostname);
|
|
150
|
-
_context3.next = 4;
|
|
151
|
-
return loader.load(url);
|
|
152
|
-
|
|
153
|
-
case 4:
|
|
154
|
-
response = _context3.sent;
|
|
155
|
-
|
|
156
|
-
if (!isSuccessfulResponse(response)) {
|
|
157
|
-
_context3.next = 9;
|
|
158
|
-
break;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
return _context3.abrupt("return", response.body);
|
|
162
|
-
|
|
163
|
-
case 9:
|
|
164
|
-
_context3.prev = 9;
|
|
165
|
-
_context3.next = 12;
|
|
166
|
-
return retry( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
167
|
-
var _response;
|
|
168
|
-
|
|
169
|
-
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
170
|
-
while (1) {
|
|
171
|
-
switch (_context2.prev = _context2.next) {
|
|
172
|
-
case 0:
|
|
173
|
-
if (_this2.resolvedCache[url]) {
|
|
174
|
-
_context2.next = 11;
|
|
175
|
-
break;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
_context2.next = 3;
|
|
179
|
-
return loader.load(url);
|
|
180
|
-
|
|
181
|
-
case 3:
|
|
182
|
-
_response = _context2.sent;
|
|
183
|
-
|
|
184
|
-
if (!isSuccessfulResponse(_response)) {
|
|
185
|
-
_context2.next = 8;
|
|
186
|
-
break;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
return _context2.abrupt("return", _response);
|
|
190
|
-
|
|
191
|
-
case 8:
|
|
192
|
-
throw new Error('Retry for URL failed');
|
|
193
|
-
|
|
194
|
-
case 9:
|
|
195
|
-
_context2.next = 12;
|
|
196
|
-
break;
|
|
197
|
-
|
|
198
|
-
case 11:
|
|
199
|
-
throw new Error('Retry unneeded - link has been resolved.');
|
|
200
|
-
|
|
201
|
-
case 12:
|
|
202
|
-
case "end":
|
|
203
|
-
return _context2.stop();
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
}, _callee2);
|
|
207
|
-
})), this.retryConfig);
|
|
208
|
-
|
|
209
|
-
case 12:
|
|
210
|
-
retriedResponse = _context3.sent;
|
|
211
|
-
return _context3.abrupt("return", retriedResponse.body);
|
|
212
|
-
|
|
213
|
-
case 16:
|
|
214
|
-
_context3.prev = 16;
|
|
215
|
-
_context3.t0 = _context3["catch"](9);
|
|
216
|
-
return _context3.abrupt("return", undefined);
|
|
217
|
-
|
|
218
|
-
case 19:
|
|
219
|
-
case "end":
|
|
220
|
-
return _context3.stop();
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}, _callee3, this, [[9, 16]]);
|
|
224
|
-
}));
|
|
225
|
-
|
|
226
|
-
function prefetchData(_x2) {
|
|
227
|
-
return _prefetchData.apply(this, arguments);
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
return prefetchData;
|
|
231
|
-
}()
|
|
232
|
-
}, {
|
|
233
|
-
key: "fetchData",
|
|
234
|
-
value: function () {
|
|
235
|
-
var _fetchData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(url) {
|
|
236
|
-
var hostname, loader, response, errorType, errorMessage;
|
|
237
|
-
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
238
|
-
while (1) {
|
|
239
|
-
switch (_context4.prev = _context4.next) {
|
|
240
|
-
case 0:
|
|
241
|
-
hostname = new URL(url).hostname;
|
|
242
|
-
loader = this.getLoader(hostname);
|
|
243
|
-
_context4.next = 4;
|
|
244
|
-
return loader.load(url);
|
|
245
|
-
|
|
246
|
-
case 4:
|
|
247
|
-
response = _context4.sent;
|
|
248
|
-
|
|
249
|
-
if (isSuccessfulResponse(response)) {
|
|
250
|
-
_context4.next = 23;
|
|
251
|
-
break;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
if (!response.error) {
|
|
255
|
-
_context4.next = 20;
|
|
256
|
-
break;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
errorType = response.error.type;
|
|
260
|
-
errorMessage = response.error.message; // this means there was a network error and we fallback to blue link
|
|
261
|
-
// without impacting SLO's
|
|
262
|
-
|
|
263
|
-
if (!(response.error instanceof api.NetworkError)) {
|
|
264
|
-
_context4.next = 11;
|
|
265
|
-
break;
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
throw new APIError('fallback', hostname, errorMessage, errorType);
|
|
269
|
-
|
|
270
|
-
case 11:
|
|
271
|
-
_context4.t0 = errorType;
|
|
272
|
-
_context4.next = _context4.t0 === 'ResolveBadRequestError' ? 14 : _context4.t0 === 'ResolveAuthError' ? 15 : _context4.t0 === 'ResolveUnsupportedError' ? 16 : _context4.t0 === 'ResolveFailedError' ? 17 : _context4.t0 === 'ResolveTimeoutError' ? 18 : _context4.t0 === 'InternalServerError' ? 19 : 20;
|
|
273
|
-
break;
|
|
274
|
-
|
|
275
|
-
case 14:
|
|
276
|
-
throw new APIError('fallback', hostname, errorMessage, errorType);
|
|
277
|
-
|
|
278
|
-
case 15:
|
|
279
|
-
throw new APIError('auth', hostname, errorMessage, errorType);
|
|
280
|
-
|
|
281
|
-
case 16:
|
|
282
|
-
throw new APIError('fatal', hostname, errorMessage, errorType);
|
|
283
|
-
|
|
284
|
-
case 17:
|
|
285
|
-
throw new APIError('error', hostname, errorMessage, errorType);
|
|
286
|
-
|
|
287
|
-
case 18:
|
|
288
|
-
throw new APIError('error', hostname, errorMessage, errorType);
|
|
289
|
-
|
|
290
|
-
case 19:
|
|
291
|
-
throw new APIError('error', hostname, errorMessage, errorType);
|
|
292
|
-
|
|
293
|
-
case 20:
|
|
294
|
-
throw new APIError('fatal', hostname, response.toString(), 'UnexpectedError');
|
|
295
|
-
|
|
296
|
-
case 23:
|
|
297
|
-
// Set a flag in the `resolvedCache` for this URL. The intent of this is
|
|
298
|
-
// to ensure that the exponential backoff method in `prefetchData` does
|
|
299
|
-
// not continue to retry fetching for this URL, especially if it was previously
|
|
300
|
-
// in a failed state. Note: this scenario only occurs on initial page load, if the
|
|
301
|
-
// user scrolls through the page very fast. Once the URL is visible, prefetching
|
|
302
|
-
// no longer takes place.
|
|
303
|
-
this.resolvedCache[url] = true; // Return the JSON-LD response back up!
|
|
304
|
-
|
|
305
|
-
return _context4.abrupt("return", response.body);
|
|
306
|
-
|
|
307
|
-
case 25:
|
|
308
|
-
case "end":
|
|
309
|
-
return _context4.stop();
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
}, _callee4, this);
|
|
313
|
-
}));
|
|
314
|
-
|
|
315
|
-
function fetchData(_x3) {
|
|
316
|
-
return _fetchData.apply(this, arguments);
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
return fetchData;
|
|
320
|
-
}()
|
|
321
|
-
}, {
|
|
322
|
-
key: "postData",
|
|
323
|
-
value: function () {
|
|
324
|
-
var _postData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(data) {
|
|
325
|
-
var request;
|
|
326
|
-
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
327
|
-
while (1) {
|
|
328
|
-
switch (_context5.prev = _context5.next) {
|
|
329
|
-
case 0:
|
|
330
|
-
request = {
|
|
331
|
-
key: data.key,
|
|
332
|
-
action: data.action,
|
|
333
|
-
context: data.context
|
|
334
|
-
};
|
|
335
|
-
_context5.next = 3;
|
|
336
|
-
return api.request('post', "".concat(this.resolverUrl, "/invoke"), request);
|
|
337
|
-
|
|
338
|
-
case 3:
|
|
339
|
-
return _context5.abrupt("return", _context5.sent);
|
|
340
|
-
|
|
341
|
-
case 4:
|
|
342
|
-
case "end":
|
|
343
|
-
return _context5.stop();
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
}, _callee5, this);
|
|
347
|
-
}));
|
|
348
|
-
|
|
349
|
-
function postData(_x4) {
|
|
350
|
-
return _postData.apply(this, arguments);
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
return postData;
|
|
354
|
-
}()
|
|
355
|
-
}]);
|
|
356
|
-
|
|
357
|
-
return CardClient;
|
|
358
|
-
}();
|
|
359
|
-
|
|
360
|
-
export { CardClient as default };
|
|
1
|
+
export { CardClient as default } from '@atlaskit/link-provider';
|
package/dist/esm/constants.js
CHANGED
|
@@ -109,9 +109,6 @@ export var ElementName;
|
|
|
109
109
|
ElementName["AuthorGroup"] = "AuthorGroup";
|
|
110
110
|
ElementName["CollaboratorGroup"] = "CollaboratorGroup";
|
|
111
111
|
ElementName["CommentCount"] = "CommentCount";
|
|
112
|
-
ElementName["ViewCount"] = "ViewCount";
|
|
113
|
-
ElementName["ReactCount"] = "ReactCount";
|
|
114
|
-
ElementName["VoteCount"] = "VoteCount";
|
|
115
112
|
ElementName["CreatedBy"] = "CreatedBy";
|
|
116
113
|
ElementName["CreatedOn"] = "CreatedOn";
|
|
117
114
|
ElementName["LinkIcon"] = "LinkIcon";
|
|
@@ -120,11 +117,14 @@ export var ElementName;
|
|
|
120
117
|
ElementName["Preview"] = "Preview";
|
|
121
118
|
ElementName["Priority"] = "Priority";
|
|
122
119
|
ElementName["ProgrammingLanguage"] = "ProgrammingLanguage";
|
|
120
|
+
ElementName["Provider"] = "Provider";
|
|
121
|
+
ElementName["ReactCount"] = "ReactCount";
|
|
123
122
|
ElementName["Snippet"] = "Snippet";
|
|
124
123
|
ElementName["State"] = "State";
|
|
125
124
|
ElementName["SubscriberCount"] = "SubscriberCount";
|
|
126
125
|
ElementName["Title"] = "Title";
|
|
127
|
-
ElementName["
|
|
126
|
+
ElementName["ViewCount"] = "ViewCount";
|
|
127
|
+
ElementName["VoteCount"] = "VoteCount";
|
|
128
128
|
})(ElementName || (ElementName = {}));
|
|
129
129
|
|
|
130
130
|
export var ActionName;
|
|
@@ -4,9 +4,9 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
4
4
|
|
|
5
5
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6
6
|
|
|
7
|
-
import { extractPreview } from '@atlaskit/linking-common';
|
|
8
7
|
import { extractLink, extractTitle } from '../common/primitives';
|
|
9
8
|
import { extractProvider } from '../common/context';
|
|
9
|
+
import { extractPreview } from '@atlaskit/linking-common';
|
|
10
10
|
import { extractIsTrusted } from '../common/meta/extractIsTrusted';
|
|
11
11
|
|
|
12
12
|
var extractEmbedPreview = function extractEmbedPreview(jsonLd, platform) {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ElementName } from '../../constants';
|
|
2
|
+
|
|
3
|
+
var elementNamesToItems = function elementNamesToItems(elementNames) {
|
|
4
|
+
return elementNames.filter(function (element) {
|
|
5
|
+
return element in ElementName;
|
|
6
|
+
}).map(function (elementName) {
|
|
7
|
+
return {
|
|
8
|
+
name: elementName,
|
|
9
|
+
testId: "".concat(elementName.toLowerCase(), "-metadata-element")
|
|
10
|
+
};
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export var extractMetadata = function extractMetadata(jsonLd) {
|
|
15
|
+
var _jsonLd$metadata, _metadata$primary, _metadata$secondary;
|
|
16
|
+
|
|
17
|
+
var metadata = (_jsonLd$metadata = jsonLd.metadata) !== null && _jsonLd$metadata !== void 0 ? _jsonLd$metadata : [];
|
|
18
|
+
return {
|
|
19
|
+
primary: elementNamesToItems((_metadata$primary = metadata.primary) !== null && _metadata$primary !== void 0 ? _metadata$primary : []),
|
|
20
|
+
secondary: elementNamesToItems((_metadata$secondary = metadata.secondary) !== null && _metadata$secondary !== void 0 ? _metadata$secondary : [])
|
|
21
|
+
};
|
|
22
|
+
};
|
package/dist/esm/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { SmartCardProvider as Provider, SmartCardContext } from './state';
|
|
2
|
-
export { EditorCardProvider, editorCardProvider } from '
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
2
|
+
export { EditorCardProvider, editorCardProvider } from '@atlaskit/link-provider';
|
|
3
|
+
export { APIError } from '@atlaskit/linking-common';
|
|
4
|
+
export { CardClient as Client } from '@atlaskit/link-provider';
|
|
5
5
|
export { Card } from './view/Card';
|
|
6
|
-
export {
|
|
6
|
+
export { SmartCardContext as Context } from '@atlaskit/link-provider';
|
|
7
7
|
export { EmbedResizeMessageListener } from './view/EmbedCard/EmbedResizeMessageListener';
|
|
8
8
|
export { embedHeaderHeight } from './view/EmbedCard/components/styled';
|
|
9
9
|
export { SmartLinkEvents } from './utils/analytics/analytics';
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
export var ACTION_PENDING = 'pending';
|
|
2
|
-
export var ACTION_RESOLVING = 'resolving';
|
|
3
|
-
export var ACTION_RESOLVED = 'resolved';
|
|
4
|
-
export var ACTION_ERROR = 'errored';
|
|
5
|
-
export var ACTION_ERROR_FALLBACK = 'fallback';
|
|
6
|
-
export var ACTION_PRELOAD = 'preload';
|
|
7
1
|
export var ANALYTICS_RESOLVING = 'resolving';
|
|
8
2
|
export var ANALYTICS_ERROR = 'errored';
|
|
9
3
|
export var ANALYTICS_FALLBACK = 'fallback';
|
|
@@ -2,12 +2,12 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
3
|
import { useMemo, useCallback } from 'react';
|
|
4
4
|
import { auth } from '@atlaskit/outbound-auth-flow-client';
|
|
5
|
-
import {
|
|
5
|
+
import { APIError } from '@atlaskit/linking-common';
|
|
6
|
+
import { useSmartLinkContext } from '@atlaskit/link-provider';
|
|
7
|
+
import { ACTION_PENDING, ACTION_RESOLVED, ACTION_ERROR, ACTION_ERROR_FALLBACK, cardAction } from '@atlaskit/linking-common';
|
|
6
8
|
import { getDefinitionId, getByDefinitionId, getServices, getStatus, getExtensionKey } from '../helpers';
|
|
7
|
-
import {
|
|
8
|
-
import { useSmartLinkContext } from '../context';
|
|
9
|
+
import { ERROR_MESSAGE_OAUTH, ERROR_MESSAGE_FATAL } from './constants';
|
|
9
10
|
import * as measure from '../../utils/performance';
|
|
10
|
-
import { APIError } from '../../client/errors';
|
|
11
11
|
import { getUnauthorizedJsonLd } from '../../utils/jsonld';
|
|
12
12
|
import { addMetadataToExperience } from '../analytics';
|
|
13
13
|
export var useSmartCardActions = function useSmartCardActions(id, url, analytics) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { uiAuthEvent, uiAuthAlternateAccountEvent, uiCardClickedEvent, uiActionClickedEvent, uiClosedAuthEvent, uiRenderSuccessEvent, uiHoverCardViewedEvent, uiHoverCardDismissedEvent, uiHoverCardOpenLinkClickedEvent, resolvedEvent as _resolvedEvent, unresolvedEvent as _unresolvedEvent, invokeSucceededEvent as _invokeSucceededEvent, invokeFailedEvent as _invokeFailedEvent, connectSucceededEvent as _connectSucceededEvent, connectFailedEvent as _connectFailedEvent, trackAppAccountConnected, screenAuthPopupEvent, instrumentEvent } from '../../utils/analytics';
|
|
2
1
|
import { useMemo } from 'react';
|
|
2
|
+
import { uiAuthEvent, uiAuthAlternateAccountEvent, uiCardClickedEvent, uiActionClickedEvent, uiClosedAuthEvent, uiRenderSuccessEvent, uiHoverCardViewedEvent, uiHoverCardDismissedEvent, uiHoverCardOpenLinkClickedEvent, resolvedEvent as _resolvedEvent, unresolvedEvent as _unresolvedEvent, invokeSucceededEvent as _invokeSucceededEvent, invokeFailedEvent as _invokeFailedEvent, connectSucceededEvent as _connectSucceededEvent, connectFailedEvent as _connectFailedEvent, trackAppAccountConnected, screenAuthPopupEvent, instrumentEvent } from '../../utils/analytics';
|
|
3
3
|
import { failUfoExperience, startUfoExperience, succeedUfoExperience } from './ufoExperiences';
|
|
4
4
|
export var useSmartLinkAnalytics = function useSmartLinkAnalytics(dispatchAnalytics) {
|
|
5
5
|
var ui = useMemo(function () {
|
|
@@ -6,11 +6,6 @@ export var getByDefinitionId = function getByDefinitionId(definitionId, store) {
|
|
|
6
6
|
return details && details.meta.definitionId === definitionId;
|
|
7
7
|
});
|
|
8
8
|
};
|
|
9
|
-
export var getUrl = function getUrl(store, url) {
|
|
10
|
-
return store.getState()[url] || {
|
|
11
|
-
status: 'pending'
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
9
|
export var getClickUrl = function getClickUrl(url, jsonLd) {
|
|
15
10
|
if (jsonLd && jsonLd.data) {
|
|
16
11
|
var visitUrl = extractVisitUrl(jsonLd.data);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
|
-
import { useSmartLinkContext } from '
|
|
4
|
+
import { useSmartLinkContext } from '@atlaskit/link-provider';
|
|
5
5
|
export function usePrefetch(url) {
|
|
6
6
|
var _useSmartLinkContext = useSmartLinkContext(),
|
|
7
7
|
store = _useSmartLinkContext.store,
|
package/dist/esm/state/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { SmartCardContext, SmartCardProvider, useSmartLinkContext } from '
|
|
1
|
+
export { SmartCardContext, SmartCardProvider, useSmartLinkContext } from '@atlaskit/link-provider';
|
|
2
2
|
export { useSmartLink, usePrefetch } from './hooks';
|