@atlaskit/media-card 70.9.0 → 72.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 (181) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/cjs/errors.js +109 -6
  3. package/dist/cjs/files/cardImageView/index.js +58 -89
  4. package/dist/cjs/files/index.js +0 -6
  5. package/dist/cjs/index.js +16 -6
  6. package/dist/cjs/root/card/cardAnalytics.js +33 -19
  7. package/dist/cjs/root/card/cardConstants.js +8 -0
  8. package/dist/cjs/root/card/cardSSRView.js +114 -0
  9. package/dist/cjs/root/card/cardState.js +50 -0
  10. package/dist/cjs/root/card/getCardPreview/cache.js +49 -0
  11. package/dist/cjs/root/card/getCardPreview/filePreviewStatus.js +50 -0
  12. package/dist/cjs/root/card/getCardPreview/helpers.js +215 -0
  13. package/dist/cjs/root/card/getCardPreview/index.js +225 -0
  14. package/dist/cjs/root/card/getCardStatus.js +16 -21
  15. package/dist/cjs/root/card/index.js +339 -398
  16. package/dist/cjs/root/cardView.js +108 -56
  17. package/dist/cjs/root/index.js +9 -1
  18. package/dist/cjs/root/inline/loader.js +22 -21
  19. package/dist/cjs/root/inline/{inlineMediaCard.js → mediaInlineCard.js} +66 -24
  20. package/dist/cjs/root/inlinePlayer.js +5 -15
  21. package/dist/cjs/root/ui/Breakpoint.js +13 -0
  22. package/dist/cjs/root/ui/common.js +5 -11
  23. package/dist/cjs/root/ui/iconMessage/index.js +17 -9
  24. package/dist/cjs/root/ui/imageRenderer/imageRenderer.js +32 -115
  25. package/dist/cjs/root/ui/loadingRateLimited/loadingRateLimited.js +2 -2
  26. package/dist/cjs/root/ui/progressBar/progressBar.js +2 -2
  27. package/dist/cjs/root/ui/progressBar/styled.js +3 -1
  28. package/dist/cjs/root/ui/styled.js +17 -80
  29. package/dist/cjs/root/ui/styledSSR.js +108 -0
  30. package/dist/cjs/root/ui/titleBox/failedTitleBox.js +7 -3
  31. package/dist/cjs/root/ui/titleBox/styled.js +3 -1
  32. package/dist/cjs/utils/analytics.js +26 -43
  33. package/dist/cjs/utils/dimensionComparer.js +1 -1
  34. package/dist/cjs/utils/document.js +12 -0
  35. package/dist/cjs/utils/getDataURIDimension.js +13 -2
  36. package/dist/cjs/utils/metadata.js +11 -3
  37. package/dist/cjs/utils/objectURLCache.js +6 -0
  38. package/dist/cjs/utils/resizeModeToMediaImageProps.js +13 -0
  39. package/dist/cjs/utils/shouldDisplayImageThumbnail.js +1 -1
  40. package/dist/cjs/utils/videoSnapshot.js +45 -0
  41. package/dist/cjs/version.json +1 -1
  42. package/dist/es2019/errors.js +52 -2
  43. package/dist/es2019/files/cardImageView/index.js +12 -46
  44. package/dist/es2019/files/index.js +1 -1
  45. package/dist/es2019/index.js +3 -3
  46. package/dist/es2019/root/card/cardAnalytics.js +23 -17
  47. package/dist/es2019/root/card/cardConstants.js +1 -0
  48. package/dist/es2019/root/card/cardSSRView.js +93 -0
  49. package/dist/es2019/root/card/cardState.js +26 -0
  50. package/dist/es2019/root/card/getCardPreview/cache.js +29 -0
  51. package/dist/es2019/root/card/getCardPreview/filePreviewStatus.js +35 -0
  52. package/dist/es2019/root/card/getCardPreview/helpers.js +83 -0
  53. package/dist/es2019/root/card/getCardPreview/index.js +129 -0
  54. package/dist/es2019/root/card/getCardStatus.js +11 -15
  55. package/dist/es2019/root/card/index.js +292 -276
  56. package/dist/es2019/root/cardView.js +107 -53
  57. package/dist/es2019/root/index.js +2 -1
  58. package/dist/es2019/root/inline/loader.js +16 -15
  59. package/dist/es2019/root/inline/mediaInlineCard.js +127 -0
  60. package/dist/es2019/root/inlinePlayer.js +5 -13
  61. package/dist/es2019/root/ui/Breakpoint.js +6 -0
  62. package/dist/es2019/root/ui/common.js +1 -7
  63. package/dist/es2019/root/ui/iconMessage/index.js +10 -6
  64. package/dist/es2019/root/ui/imageRenderer/imageRenderer.js +22 -74
  65. package/dist/es2019/root/ui/loadingRateLimited/loadingRateLimited.js +1 -1
  66. package/dist/es2019/root/ui/progressBar/progressBar.js +1 -1
  67. package/dist/es2019/root/ui/progressBar/styled.js +2 -1
  68. package/dist/es2019/root/ui/styled.js +4 -64
  69. package/dist/es2019/root/ui/styledSSR.js +93 -0
  70. package/dist/es2019/root/ui/titleBox/failedTitleBox.js +5 -3
  71. package/dist/es2019/root/ui/titleBox/styled.js +2 -1
  72. package/dist/es2019/utils/analytics.js +29 -40
  73. package/dist/es2019/utils/dimensionComparer.js +1 -1
  74. package/dist/es2019/utils/document.js +1 -0
  75. package/dist/es2019/utils/getDataURIDimension.js +8 -0
  76. package/dist/es2019/utils/metadata.js +12 -4
  77. package/dist/es2019/utils/objectURLCache.js +5 -0
  78. package/dist/es2019/utils/resizeModeToMediaImageProps.js +6 -0
  79. package/dist/es2019/utils/shouldDisplayImageThumbnail.js +1 -1
  80. package/dist/es2019/utils/videoSnapshot.js +7 -0
  81. package/dist/es2019/version.json +1 -1
  82. package/dist/esm/errors.js +85 -2
  83. package/dist/esm/files/cardImageView/index.js +55 -87
  84. package/dist/esm/files/index.js +1 -1
  85. package/dist/esm/index.js +3 -3
  86. package/dist/esm/root/card/cardAnalytics.js +23 -18
  87. package/dist/esm/root/card/cardConstants.js +1 -0
  88. package/dist/esm/root/card/cardSSRView.js +92 -0
  89. package/dist/esm/root/card/cardState.js +32 -0
  90. package/dist/esm/root/card/getCardPreview/cache.js +33 -0
  91. package/dist/esm/root/card/getCardPreview/filePreviewStatus.js +35 -0
  92. package/dist/esm/root/card/getCardPreview/helpers.js +194 -0
  93. package/dist/esm/root/card/getCardPreview/index.js +174 -0
  94. package/dist/esm/root/card/getCardStatus.js +13 -17
  95. package/dist/esm/root/card/index.js +349 -401
  96. package/dist/esm/root/cardView.js +105 -52
  97. package/dist/esm/root/index.js +2 -1
  98. package/dist/esm/root/inline/loader.js +23 -22
  99. package/dist/esm/root/inline/{inlineMediaCard.js → mediaInlineCard.js} +62 -22
  100. package/dist/esm/root/inlinePlayer.js +5 -13
  101. package/dist/esm/root/ui/Breakpoint.js +6 -0
  102. package/dist/esm/root/ui/common.js +1 -7
  103. package/dist/esm/root/ui/iconMessage/index.js +12 -7
  104. package/dist/esm/root/ui/imageRenderer/imageRenderer.js +24 -106
  105. package/dist/esm/root/ui/loadingRateLimited/loadingRateLimited.js +1 -1
  106. package/dist/esm/root/ui/progressBar/progressBar.js +1 -1
  107. package/dist/esm/root/ui/progressBar/styled.js +2 -1
  108. package/dist/esm/root/ui/styled.js +13 -61
  109. package/dist/esm/root/ui/styledSSR.js +76 -0
  110. package/dist/esm/root/ui/titleBox/failedTitleBox.js +6 -3
  111. package/dist/esm/root/ui/titleBox/styled.js +2 -1
  112. package/dist/esm/utils/analytics.js +22 -35
  113. package/dist/esm/utils/dimensionComparer.js +1 -1
  114. package/dist/esm/utils/document.js +3 -0
  115. package/dist/esm/utils/getDataURIDimension.js +8 -0
  116. package/dist/esm/utils/metadata.js +12 -4
  117. package/dist/esm/utils/objectURLCache.js +6 -0
  118. package/dist/esm/utils/resizeModeToMediaImageProps.js +6 -0
  119. package/dist/esm/utils/shouldDisplayImageThumbnail.js +1 -1
  120. package/dist/esm/utils/videoSnapshot.js +31 -0
  121. package/dist/esm/version.json +1 -1
  122. package/dist/types/__tests_external__/page-objects/MediaCard.d.ts +4 -3
  123. package/dist/types/errors.d.ts +24 -2
  124. package/dist/types/files/cardImageView/index.d.ts +5 -12
  125. package/dist/types/files/cardImageView/styled.d.ts +1 -1
  126. package/dist/types/files/index.d.ts +1 -1
  127. package/dist/types/index.d.ts +9 -12
  128. package/dist/types/root/card/cardAnalytics.d.ts +5 -7
  129. package/dist/types/root/card/cardConstants.d.ts +1 -0
  130. package/dist/types/root/card/cardSSRView.d.ts +13 -0
  131. package/dist/types/root/card/cardState.d.ts +5 -0
  132. package/dist/types/root/card/getCardPreview/cache.d.ts +18 -0
  133. package/dist/types/root/card/getCardPreview/filePreviewStatus.d.ts +5 -0
  134. package/dist/types/root/card/getCardPreview/helpers.d.ts +9 -0
  135. package/dist/types/root/card/getCardPreview/index.d.ts +44 -0
  136. package/dist/types/root/card/getCardStatus.d.ts +4 -14
  137. package/dist/types/root/card/index.d.ts +17 -21
  138. package/dist/types/root/cardView.d.ts +12 -8
  139. package/dist/types/root/index.d.ts +1 -0
  140. package/dist/types/root/inline/loader.d.ts +8 -8
  141. package/dist/types/root/inline/{inlineMediaCard.d.ts → mediaInlineCard.d.ts} +4 -4
  142. package/dist/types/root/inlinePlayer.d.ts +1 -1
  143. package/dist/types/root/ui/Breakpoint.d.ts +4 -0
  144. package/dist/types/root/ui/common.d.ts +1 -4
  145. package/dist/types/root/ui/iconMessage/index.d.ts +7 -2
  146. package/dist/types/root/ui/iconWrapper/styled.d.ts +1 -1
  147. package/dist/types/root/ui/imageRenderer/imageRenderer.d.ts +2 -16
  148. package/dist/types/root/ui/loadingRateLimited/loadingRateLimited.d.ts +1 -1
  149. package/dist/types/root/ui/loadingRateLimited/styled.d.ts +1 -1
  150. package/dist/types/root/ui/progressBar/progressBar.d.ts +1 -1
  151. package/dist/types/root/ui/progressBar/styled.d.ts +1 -1
  152. package/dist/types/root/ui/styled.d.ts +3 -10
  153. package/dist/types/root/ui/styledSSR.d.ts +16 -0
  154. package/dist/types/root/ui/titleBox/failedTitleBox.d.ts +3 -1
  155. package/dist/types/root/ui/titleBox/styled.d.ts +1 -1
  156. package/dist/types/root/ui/titleBox/titleBox.d.ts +1 -1
  157. package/dist/types/types.d.ts +15 -1
  158. package/dist/types/utils/analytics.d.ts +20 -21
  159. package/dist/types/utils/cardDimensions.d.ts +5 -1
  160. package/dist/types/utils/dimensionComparer.d.ts +1 -1
  161. package/dist/types/utils/document.d.ts +2 -0
  162. package/dist/types/utils/getDataURIDimension.d.ts +3 -1
  163. package/dist/types/utils/index.d.ts +1 -0
  164. package/dist/types/utils/lazyContent/styled.d.ts +1 -1
  165. package/dist/types/utils/lightCards/types.d.ts +1 -1
  166. package/dist/types/utils/metadata.d.ts +2 -2
  167. package/dist/types/utils/objectURLCache.d.ts +2 -1
  168. package/dist/types/utils/resizeModeToMediaImageProps.d.ts +5 -0
  169. package/dist/types/utils/shouldDisplayImageThumbnail.d.ts +1 -1
  170. package/dist/types/utils/videoSnapshot.d.ts +1 -0
  171. package/example-helpers/index.tsx +21 -0
  172. package/package.json +19 -17
  173. package/dist/cjs/root/card/getCardPreview.js +0 -173
  174. package/dist/cjs/utils/fileAttributesContext.js +0 -40
  175. package/dist/es2019/root/card/getCardPreview.js +0 -86
  176. package/dist/es2019/root/inline/inlineMediaCard.js +0 -92
  177. package/dist/es2019/utils/fileAttributesContext.js +0 -19
  178. package/dist/esm/root/card/getCardPreview.js +0 -153
  179. package/dist/esm/utils/fileAttributesContext.js +0 -18
  180. package/dist/types/root/card/getCardPreview.d.ts +0 -8
  181. package/dist/types/utils/fileAttributesContext.d.ts +0 -10
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { Breakpoint } from '../common';
2
+ import { Breakpoint } from '../Breakpoint';
3
3
  export declare function generateResponsiveStyles(breakpoint: Breakpoint, positionBottom: boolean, multiplier?: number): string;
4
4
  export declare type StyledBarProps = {
5
5
  progress: number;
@@ -1,12 +1,6 @@
1
1
  /// <reference types="react" />
2
- import { CardDimensions, CardAppearance } from '../..';
3
- import { Breakpoint } from './common';
4
- export declare const calcBreakpointSize: (wrapperWidth?: number) => Breakpoint;
5
- export interface NewFileExperienceWrapperProps {
6
- breakpoint: Breakpoint;
7
- dimensions?: CardDimensions;
8
- appearance?: CardAppearance;
9
- mediaType?: string;
2
+ import { BaseNewFileExperienceWrapperProps } from './styledSSR';
3
+ export interface NewFileExperienceWrapperProps extends BaseNewFileExperienceWrapperProps {
10
4
  shouldUsePointerCursor: boolean;
11
5
  disableOverlay: boolean;
12
6
  displayBackground: boolean;
@@ -15,5 +9,4 @@ export interface NewFileExperienceWrapperProps {
15
9
  isTickBoxSelectable: boolean;
16
10
  shouldDisplayTooltip: boolean;
17
11
  }
18
- export declare const NewFileExperienceWrapper: import("styled-components").StyledComponentClass<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & NewFileExperienceWrapperProps, any, import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & NewFileExperienceWrapperProps>;
19
- export declare const CardImageContainer: import("styled-components").StyledComponentClass<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, any, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
12
+ export declare const NewFileExperienceWrapper: import("styled-components").StyledComponentClass<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & BaseNewFileExperienceWrapperProps & NewFileExperienceWrapperProps, any, import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & BaseNewFileExperienceWrapperProps & NewFileExperienceWrapperProps>;
@@ -0,0 +1,16 @@
1
+ /// <reference types="react" />
2
+ import { CardDimensions, CardAppearance } from '../..';
3
+ import { Breakpoint } from './Breakpoint';
4
+ export interface BaseNewFileExperienceWrapperProps {
5
+ breakpoint: Breakpoint;
6
+ dimensions?: CardDimensions;
7
+ appearance?: CardAppearance;
8
+ shouldUsePointerCursor: boolean;
9
+ displayBackground: boolean;
10
+ disableOverlay: boolean;
11
+ selected: boolean;
12
+ }
13
+ export declare const SSRFileExperienceWrapper: import("styled-components").StyledComponentClass<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & BaseNewFileExperienceWrapperProps, any, import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & BaseNewFileExperienceWrapperProps>;
14
+ export declare const getWrapperDimensions: (dimensions?: CardDimensions | undefined, appearance?: "image" | "auto" | "square" | "horizontal" | undefined) => string;
15
+ export declare const CardImageContainer: import("styled-components").StyledComponentClass<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, any, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
16
+ export declare const calcBreakpointSize: (wrapperWidth?: number) => Breakpoint;
@@ -1,7 +1,9 @@
1
1
  import React from 'react';
2
- import { Breakpoint } from '../common';
2
+ import { Breakpoint } from '../Breakpoint';
3
+ import { FormattedMessage } from 'react-intl';
3
4
  export declare type OnRetryFunction = () => void;
4
5
  export declare type FailedTitleBoxProps = {
5
6
  breakpoint: Breakpoint;
7
+ customMessage?: FormattedMessage.MessageDescriptor;
6
8
  };
7
9
  export declare const FailedTitleBox: React.FC<FailedTitleBoxProps>;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { Breakpoint } from '../common';
2
+ import { Breakpoint } from '../Breakpoint';
3
3
  export declare type TitleBoxWrapperProps = {
4
4
  breakpoint: Breakpoint;
5
5
  titleBoxBgColor?: string;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react-intl" />
2
2
  import React from 'react';
3
3
  import { TitleBoxIcon as TitleBoxIconType } from '../../../index';
4
- import { Breakpoint } from '../common';
4
+ import { Breakpoint } from '../Breakpoint';
5
5
  export declare type TitleBoxProps = {
6
6
  name: string;
7
7
  breakpoint: Breakpoint;
@@ -1 +1,15 @@
1
- export declare type CardStatus = 'uploading' | 'loading' | 'processing' | 'complete' | 'error' | 'failed-processing';
1
+ export declare type CardStatus = 'uploading' | 'loading' | 'processing' | 'loading-preview' | 'complete' | 'error' | 'failed-processing';
2
+ export declare type FilePreviewStatus = {
3
+ hasFilesize: boolean;
4
+ isPreviewable: boolean;
5
+ hasPreview: boolean;
6
+ isSupportedByBrowser: boolean;
7
+ };
8
+ export declare type CardAppearance = 'auto' | 'image' | 'square' | 'horizontal';
9
+ export declare type CardDimensionValue = number | string;
10
+ export declare type CardPreviewSource = 'local' | 'remote' | 'cache-local' | 'cache-remote' | 'external';
11
+ export interface CardPreview {
12
+ dataURI: string;
13
+ orientation?: number;
14
+ source: CardPreviewSource;
15
+ }
@@ -1,39 +1,38 @@
1
1
  import { FileDetails, MediaClientErrorReason, RequestMetadata } from '@atlaskit/media-client';
2
- import { FileAttributes, OperationalEventPayload, UIEventPayload, WithFileAttributes, SuccessAttributes, FailureAttributes } from '@atlaskit/media-common';
2
+ import { FileAttributes, PerformanceAttributes, OperationalEventPayload, UIEventPayload, WithFileAttributes, WithPerformanceAttributes, SuccessAttributes, FailureAttributes, ScreenEventPayload, ScreenAttributes } from '@atlaskit/media-common';
3
3
  import { CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
4
4
  import { MediaCardError, MediaCardErrorPrimaryReason } from '../errors';
5
- export declare enum RenderEventAction {
6
- COMMENCED = "commenced",
7
- SUCCEEDED = "succeeded",
8
- FAILED = "failed"
9
- }
10
5
  export declare type FileUriFailReason = 'local-uri' | 'remote-uri' | `unknown-uri`;
11
6
  export declare type FailedErrorFailReason = MediaCardErrorPrimaryReason | 'nativeError';
12
- export declare type RenderEventFailReason = FailedErrorFailReason | 'failed-processing' | FileUriFailReason | 'external-uri';
13
- export declare type RenderFailedEventPayload = OperationalEventPayload<WithFileAttributes & FailureAttributes & {
14
- failReason: RenderEventFailReason;
7
+ export declare type RenderFailedEventPayload = OperationalEventPayload<WithFileAttributes & WithPerformanceAttributes & FailureAttributes & {
8
+ failReason: FailedErrorFailReason | 'failed-processing';
15
9
  error?: MediaClientErrorReason | 'nativeError';
16
10
  request?: RequestMetadata;
17
- }, RenderEventAction.FAILED, 'mediaCardRender'>;
18
- export declare type RenderSucceededEventPayload = OperationalEventPayload<WithFileAttributes & SuccessAttributes, RenderEventAction.SUCCEEDED, 'mediaCardRender'>;
19
- export declare type RenderCommencedEventPayload = OperationalEventPayload<WithFileAttributes, RenderEventAction.COMMENCED, 'mediaCardRender'>;
11
+ }, 'failed', 'mediaCardRender'>;
12
+ export declare type RenderSucceededEventPayload = OperationalEventPayload<WithFileAttributes & WithPerformanceAttributes & SuccessAttributes, 'succeeded', 'mediaCardRender'>;
13
+ export declare type RenderCommencedEventPayload = OperationalEventPayload<WithFileAttributes & WithPerformanceAttributes, 'commenced', 'mediaCardRender'>;
20
14
  export declare type CopiedFileEventPayload = UIEventPayload<{}, 'copied', string>;
21
15
  export declare type ClickedEventPayload = UIEventPayload<{
22
16
  label?: string;
23
17
  }, 'clicked', string>;
24
- export declare type MediaCardAnalyticsEventPayload = RenderCommencedEventPayload | RenderSucceededEventPayload | RenderFailedEventPayload | CopiedFileEventPayload | ClickedEventPayload;
25
- export declare const getFileAttributes: (metadata: FileDetails, fileStatus?: "error" | "uploading" | "processing" | "processed" | "failed-processing" | undefined) => FileAttributes;
26
- export declare const getRenderCommencedEventPayload: (fileAttributes: FileAttributes) => RenderCommencedEventPayload;
27
- export declare const getRenderSucceededEventPayload: (fileAttributes: FileAttributes) => RenderSucceededEventPayload;
28
- export declare const getFailedFileUriFailReason: (fileStatus?: "error" | "uploading" | "processing" | "processed" | "failed-processing" | undefined) => FileUriFailReason;
29
- export declare const getRenderFailedFileUriPayload: (fileAttributes: FileAttributes) => RenderFailedEventPayload;
30
- export declare const getRenderFailedExternalUriPayload: (fileAttributes: FileAttributes) => RenderFailedEventPayload;
18
+ export declare type RenderScreenEventPayload = Omit<ScreenEventPayload<ScreenAttributes, 'mediaCardRenderScreen'>, 'attributes'> & {
19
+ attributes: {
20
+ type: string | undefined;
21
+ fileAttributes: FileAttributes;
22
+ };
23
+ };
24
+ export declare type MediaCardAnalyticsEventPayload = RenderCommencedEventPayload | RenderSucceededEventPayload | RenderFailedEventPayload | CopiedFileEventPayload | ClickedEventPayload | RenderScreenEventPayload;
25
+ export declare const getFileAttributes: (metadata: FileDetails, fileStatus?: "failed-processing" | "uploading" | "processing" | "processed" | "error" | undefined) => FileAttributes;
26
+ export declare const getRenderPreviewableCardPayload: (fileAttributes: FileAttributes) => RenderScreenEventPayload;
27
+ export declare const getRenderCommencedEventPayload: (fileAttributes: FileAttributes, performanceAttributes: PerformanceAttributes) => RenderCommencedEventPayload;
28
+ export declare const getRenderSucceededEventPayload: (fileAttributes: FileAttributes, performanceAttributes?: PerformanceAttributes | undefined) => RenderSucceededEventPayload;
29
+ export declare const getRenderFailedExternalUriPayload: (fileAttributes: FileAttributes, performanceAttributes: PerformanceAttributes) => RenderFailedEventPayload;
31
30
  export declare const getRenderErrorFailReason: (error: MediaCardError) => FailedErrorFailReason;
32
31
  export declare const getRenderErrorErrorReason: (error: MediaCardError) => MediaClientErrorReason | 'nativeError';
33
32
  export declare const getRenderErrorErrorDetail: (error: MediaCardError) => string;
34
33
  export declare const getRenderErrorRequestMetadata: (error: MediaCardError) => RequestMetadata | undefined;
35
- export declare const getRenderErrorEventPayload: (fileAttributes: FileAttributes, error: MediaCardError) => RenderFailedEventPayload;
36
- export declare const getRenderFailedFileStatusPayload: (fileAttributes: FileAttributes) => RenderFailedEventPayload;
34
+ export declare const getRenderErrorEventPayload: (fileAttributes: FileAttributes, performanceAttributes: PerformanceAttributes, error: MediaCardError) => RenderFailedEventPayload;
35
+ export declare const getRenderFailedFileStatusPayload: (fileAttributes: FileAttributes, performanceAttributes: PerformanceAttributes) => RenderFailedEventPayload;
37
36
  export declare const getCopiedFilePayload: (fileId: string) => CopiedFileEventPayload;
38
37
  export declare function fireMediaCardEvent(payload: MediaCardAnalyticsEventPayload, createAnalyticsEvent?: CreateUIAnalyticsEvent): void;
39
38
  export declare const createAndFireMediaCardEvent: (payload: MediaCardAnalyticsEventPayload) => (createAnalyticsEvent: CreateUIAnalyticsEvent) => import("@atlaskit/analytics-next").UIAnalyticsEvent;
@@ -1,4 +1,8 @@
1
- import { CardDimensions } from '..';
1
+ import { CardDimensionValue } from '../types';
2
+ export interface CardDimensions {
3
+ width?: CardDimensionValue;
4
+ height?: CardDimensionValue;
5
+ }
2
6
  export declare const defaultSmallCardDimensions: {
3
7
  width: string;
4
8
  height: number;
@@ -1,3 +1,3 @@
1
1
  import { CardDimensions } from '../';
2
2
  export declare const canCompareDimension: (current?: string | number | undefined, next?: string | number | undefined) => boolean;
3
- export declare const isBigger: (current: CardDimensions, next: CardDimensions) => boolean;
3
+ export declare const isBigger: (current?: CardDimensions | undefined, next?: CardDimensions | undefined) => boolean;
@@ -0,0 +1,2 @@
1
+ declare const _default: () => Document;
2
+ export default _default;
@@ -1,7 +1,9 @@
1
- import { CardDimensions } from '..';
1
+ import { CardDimensions } from './cardDimensions';
2
2
  import { ElementDimension } from './getElementDimension';
3
+ import { NumericalCardDimensions } from '@atlaskit/media-common';
3
4
  export declare type getDataURIDimensionOptions = {
4
5
  element?: Element | null;
5
6
  dimensions?: CardDimensions;
6
7
  };
7
8
  export declare const getDataURIDimension: (dimension: ElementDimension, options: getDataURIDimensionOptions) => number;
9
+ export declare const getRequestedDimensions: (options: getDataURIDimensionOptions) => NumericalCardDimensions;
@@ -12,3 +12,4 @@ export { isValidPercentageUnit } from './isValidPercentageUnit';
12
12
  export { getElementDimension } from './getElementDimension';
13
13
  export type { ElementDimension } from './getElementDimension';
14
14
  export { containsPixelUnit } from './containsPixelUnit';
15
+ export type { CardDimensions } from './cardDimensions';
@@ -1,5 +1,5 @@
1
1
  import { LazilyRenderProps } from 'react-lazily-render';
2
2
  import { StyledComponentClass } from 'styled-components';
3
- export declare const Wrapper: StyledComponentClass<LazilyRenderProps, any, Pick<LazilyRenderProps, "children" | "className" | "placeholder" | "content" | "offset" | "component" | "onRender" | "scrollContainer"> & {
3
+ export declare const Wrapper: StyledComponentClass<LazilyRenderProps, any, Pick<LazilyRenderProps, "className" | "placeholder" | "children" | "content" | "offset" | "component" | "onRender" | "scrollContainer"> & {
4
4
  theme?: any;
5
5
  }>;
@@ -1,4 +1,4 @@
1
- import { CardDimensions } from '../..';
1
+ import { CardDimensions } from '../../utils/cardDimensions';
2
2
  import { MediaFeatureFlags } from '@atlaskit/media-common';
3
3
  export interface StaticCardProps {
4
4
  dimensions?: CardDimensions;
@@ -1,2 +1,2 @@
1
- import { FileState, FileDetails } from '@atlaskit/media-client';
2
- export declare const getFileDetails: (state: FileState) => FileDetails;
1
+ import { FileDetails, Identifier, ErrorFileState } from '@atlaskit/media-client';
2
+ export declare const getFileDetails: (identifier: Identifier, fileState?: import("@atlaskit/media-client").UploadingFileState | import("@atlaskit/media-client").ProcessingFileState | import("@atlaskit/media-client").ProcessedFileState | ErrorFileState | import("@atlaskit/media-client").ProcessingFailedState | undefined) => FileDetails;
@@ -1,4 +1,4 @@
1
- import { CardPreview } from '../root/card/getCardPreview';
1
+ import { CardPreview } from '../';
2
2
  export declare const PREVIEW_CACHE_LRU_SIZE = 50;
3
3
  export declare class ObjectURLCache {
4
4
  private readonly cache;
@@ -6,5 +6,6 @@ export declare class ObjectURLCache {
6
6
  has(key: string): boolean;
7
7
  get(key: string): CardPreview | undefined;
8
8
  set(key: string, value: CardPreview): void;
9
+ remove(key: string): void;
9
10
  }
10
11
  export declare const createObjectURLCache: () => ObjectURLCache;
@@ -0,0 +1,5 @@
1
+ import { ImageResizeMode } from '@atlaskit/media-client';
2
+ export declare function resizeModeToMediaImageProps(resizeMode?: ImageResizeMode): {
3
+ crop: boolean;
4
+ stretch: boolean;
5
+ };
@@ -1,3 +1,3 @@
1
1
  import { MediaItemType } from '@atlaskit/media-client';
2
2
  import { CardStatus } from '..';
3
- export declare const shouldDisplayImageThumbnail: (cardStatus: CardStatus, mediaItemType: MediaItemType, dataURI?: string | undefined, mediaType?: "audio" | "video" | "doc" | "image" | "archive" | "unknown" | undefined, mimeType?: string | undefined) => boolean;
3
+ export declare const shouldDisplayImageThumbnail: (cardStatus: CardStatus, mediaItemType: MediaItemType, dataURI?: string | undefined, mediaType?: "audio" | "video" | "image" | "doc" | "archive" | "unknown" | undefined, mimeType?: string | undefined) => boolean;
@@ -0,0 +1 @@
1
+ export declare const takeSnapshot: (blob: Blob) => Promise<string>;
@@ -3,6 +3,8 @@
3
3
  import React from 'react';
4
4
  import { FileItem, Identifier } from '@atlaskit/media-client';
5
5
  import {
6
+ createPollingMaxAttemptsError,
7
+ createRateLimitedError,
6
8
  createStorybookMediaClientConfig,
7
9
  FeatureFlagsWrapper,
8
10
  } from '@atlaskit/media-test-helpers';
@@ -11,6 +13,7 @@ import AnnotateIcon from '@atlaskit/icon/glyph/media-services/annotate';
11
13
  import { SelectableCard } from './selectableCard';
12
14
  import { Card, CardAppearance, CardEvent, CardAction } from '../src';
13
15
  import { relevantFeatureFlagNames } from '../src/root/card/cardAnalytics';
16
+ import { MediaCardError } from '../src/errors';
14
17
 
15
18
  const mediaClientConfig = createStorybookMediaClientConfig();
16
19
 
@@ -121,3 +124,21 @@ export const MainWrapper: React.FC = ({ children }) => (
121
124
  {children}
122
125
  </FeatureFlagsWrapper>
123
126
  );
127
+
128
+ export const mediaCardErrorState = (
129
+ error?: string,
130
+ ): MediaCardError | undefined => {
131
+ switch (error) {
132
+ case 'rateLimitedError':
133
+ return new MediaCardError('error-file-state', createRateLimitedError());
134
+ case 'pollingMaxAttemptsError':
135
+ return new MediaCardError(
136
+ 'error-file-state',
137
+ createPollingMaxAttemptsError(),
138
+ );
139
+ case 'uploadError':
140
+ return new MediaCardError('upload');
141
+ default:
142
+ return undefined;
143
+ }
144
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/media-card",
3
- "version": "70.9.0",
3
+ "version": "72.0.0",
4
4
  "description": "Includes all media card related components, CardView, CardViewSmall, Card...",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -30,21 +30,21 @@
30
30
  "dependencies": {
31
31
  "@atlaskit/analytics-next": "^8.2.0",
32
32
  "@atlaskit/dropdown-menu": "^10.1.0",
33
- "@atlaskit/editor-shared-styles": "^1.3.0",
34
- "@atlaskit/icon": "^21.7.0",
35
- "@atlaskit/media-client": "^14.0.0",
36
- "@atlaskit/media-common": "^2.8.0",
37
- "@atlaskit/media-ui": "^16.4.0",
33
+ "@atlaskit/editor-shared-styles": "^1.6.0",
34
+ "@atlaskit/icon": "^21.9.0",
35
+ "@atlaskit/in-product-testing": "^0.1.0",
36
+ "@atlaskit/media-client": "^14.3.0",
37
+ "@atlaskit/media-common": "^2.9.0",
38
+ "@atlaskit/media-ui": "^17.1.0",
38
39
  "@atlaskit/media-viewer": "^45.8.0",
39
- "@atlaskit/spinner": "^15.0.0",
40
- "@atlaskit/theme": "^11.4.0",
41
- "@atlaskit/tooltip": "^17.3.0",
40
+ "@atlaskit/spinner": "^15.1.0",
41
+ "@atlaskit/theme": "^12.0.0",
42
+ "@atlaskit/tooltip": "^17.5.0",
42
43
  "@babel/runtime": "^7.0.0",
43
44
  "classnames": "^2.2.5",
44
45
  "eventemitter2": "^4.1.0",
45
46
  "lru-fast": "^0.2.2",
46
47
  "react-lazily-render": "^1.2.0",
47
- "uuid": "^3.1.0",
48
48
  "video-snapshot": "^1.0.11"
49
49
  },
50
50
  "peerDependencies": {
@@ -58,17 +58,18 @@
58
58
  "@atlaskit/analytics-listeners": "^8.0.0",
59
59
  "@atlaskit/analytics-namespaced-context": "^6.3.0",
60
60
  "@atlaskit/build-utils": "*",
61
- "@atlaskit/button": "^16.0.0",
62
- "@atlaskit/checkbox": "^12.2.0",
61
+ "@atlaskit/button": "^16.1.0",
62
+ "@atlaskit/checkbox": "^12.3.0",
63
63
  "@atlaskit/docs": "*",
64
- "@atlaskit/field-radio-group": "^8.0.0",
65
- "@atlaskit/field-range": "^9.0.0",
66
64
  "@atlaskit/item": "^12.0.0",
67
65
  "@atlaskit/media-core": "^32.2.0",
68
- "@atlaskit/media-test-helpers": "^28.7.0",
66
+ "@atlaskit/media-test-helpers": "^28.8.0",
67
+ "@atlaskit/radio": "^5.3.2",
68
+ "@atlaskit/range": "^5.1.0",
69
+ "@atlaskit/select": "^15.2.1",
69
70
  "@atlaskit/ssr": "*",
70
- "@atlaskit/textfield": "^5.0.0",
71
- "@atlaskit/toggle": "^12.2.0",
71
+ "@atlaskit/textfield": "^5.1.0",
72
+ "@atlaskit/toggle": "^12.3.0",
72
73
  "@atlaskit/visual-regression": "*",
73
74
  "@atlaskit/webdriver-runner": "*",
74
75
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
@@ -83,6 +84,7 @@
83
84
  "react-intl": "^2.6.0",
84
85
  "rxjs": "^5.5.0",
85
86
  "typescript": "3.9.6",
87
+ "uuid": "^3.1.0",
86
88
  "wait-for-expect": "^1.2.0"
87
89
  },
88
90
  "prettier": "@atlassian/atlassian-frontend-prettier-config-1.0.1"
@@ -1,173 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.getCardPreviewFromBackend = exports.getCardPreviewFromFileState = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _videoSnapshot = _interopRequireDefault(require("video-snapshot"));
15
-
16
- var _mediaClient = require("@atlaskit/media-client");
17
-
18
- var _mediaUi = require("@atlaskit/media-ui");
19
-
20
- var _errors = require("../../errors");
21
-
22
- var getCardPreviewFromFileState = /*#__PURE__*/function () {
23
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(fileState) {
24
- var _yield$fileState$prev, value, type, mediaType, orientation, dataURI, snapshoter, _dataURI;
25
-
26
- return _regenerator.default.wrap(function _callee$(_context) {
27
- while (1) {
28
- switch (_context.prev = _context.next) {
29
- case 0:
30
- if (!((0, _mediaClient.isErrorFileState)(fileState) || !(0, _mediaClient.isPreviewableFileState)(fileState) || !(0, _mediaClient.isMimeTypeSupportedByBrowser)(fileState.mimeType) && fileState.status !== 'processed' || ['error', 'failed-processing'].includes(fileState.status))) {
31
- _context.next = 2;
32
- break;
33
- }
34
-
35
- return _context.abrupt("return");
36
-
37
- case 2:
38
- _context.prev = 2;
39
- _context.next = 5;
40
- return fileState.preview;
41
-
42
- case 5:
43
- _yield$fileState$prev = _context.sent;
44
- value = _yield$fileState$prev.value;
45
-
46
- if (!(value instanceof Blob)) {
47
- _context.next = 25;
48
- break;
49
- }
50
-
51
- type = value.type;
52
- mediaType = (0, _mediaClient.getMediaTypeFromMimeType)(type);
53
-
54
- if (!(mediaType === 'image')) {
55
- _context.next = 16;
56
- break;
57
- }
58
-
59
- _context.next = 13;
60
- return (0, _mediaUi.getOrientation)(value);
61
-
62
- case 13:
63
- orientation = _context.sent;
64
- dataURI = URL.createObjectURL(value);
65
- return _context.abrupt("return", {
66
- dataURI: dataURI,
67
- orientation: orientation
68
- });
69
-
70
- case 16:
71
- if (!(mediaType === 'video')) {
72
- _context.next = 23;
73
- break;
74
- }
75
-
76
- snapshoter = new _videoSnapshot.default(value);
77
- _context.next = 20;
78
- return snapshoter.takeSnapshot();
79
-
80
- case 20:
81
- _dataURI = _context.sent;
82
- snapshoter.end();
83
- return _context.abrupt("return", {
84
- dataURI: _dataURI,
85
- orientation: 1
86
- });
87
-
88
- case 23:
89
- _context.next = 26;
90
- break;
91
-
92
- case 25:
93
- return _context.abrupt("return", {
94
- dataURI: value,
95
- orientation: 1
96
- });
97
-
98
- case 26:
99
- _context.next = 31;
100
- break;
101
-
102
- case 28:
103
- _context.prev = 28;
104
- _context.t0 = _context["catch"](2);
105
- throw new _errors.MediaCardError('local-preview-get', _context.t0);
106
-
107
- case 31:
108
- case "end":
109
- return _context.stop();
110
- }
111
- }
112
- }, _callee, null, [[2, 28]]);
113
- }));
114
-
115
- return function getCardPreviewFromFileState(_x) {
116
- return _ref.apply(this, arguments);
117
- };
118
- }();
119
-
120
- exports.getCardPreviewFromFileState = getCardPreviewFromFileState;
121
-
122
- var getCardPreviewFromBackend = /*#__PURE__*/function () {
123
- var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(mediaClient, identifier, fileState, requestedDimensions, resizeMode) {
124
- var id, collectionName, width, height, mode, blob;
125
- return _regenerator.default.wrap(function _callee2$(_context2) {
126
- while (1) {
127
- switch (_context2.prev = _context2.next) {
128
- case 0:
129
- id = identifier.id, collectionName = identifier.collectionName;
130
- width = requestedDimensions.width, height = requestedDimensions.height;
131
- mode = resizeMode === 'stretchy-fit' ? 'full-fit' : resizeMode;
132
-
133
- if (!(0, _mediaClient.isImageRepresentationReady)(fileState)) {
134
- _context2.next = 14;
135
- break;
136
- }
137
-
138
- _context2.prev = 4;
139
- _context2.next = 7;
140
- return mediaClient.getImage(id, {
141
- collection: collectionName,
142
- mode: mode,
143
- width: width,
144
- height: height,
145
- allowAnimated: true
146
- });
147
-
148
- case 7:
149
- blob = _context2.sent;
150
- return _context2.abrupt("return", {
151
- dataURI: URL.createObjectURL(blob),
152
- orientation: 1
153
- });
154
-
155
- case 11:
156
- _context2.prev = 11;
157
- _context2.t0 = _context2["catch"](4);
158
- throw new _errors.MediaCardError('remote-preview-fetch', _context2.t0);
159
-
160
- case 14:
161
- case "end":
162
- return _context2.stop();
163
- }
164
- }
165
- }, _callee2, null, [[4, 11]]);
166
- }));
167
-
168
- return function getCardPreviewFromBackend(_x2, _x3, _x4, _x5, _x6) {
169
- return _ref2.apply(this, arguments);
170
- };
171
- }();
172
-
173
- exports.getCardPreviewFromBackend = getCardPreviewFromBackend;
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.withFileAttributes = withFileAttributes;
11
- exports.FileAttributesProvider = void 0;
12
-
13
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
14
-
15
- var _react = _interopRequireWildcard(require("react"));
16
-
17
- 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); }
18
-
19
- 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; }
20
-
21
- var FileAttributesContext = /*#__PURE__*/_react.default.createContext(null);
22
-
23
- var FileAttributesProvider = function FileAttributesProvider(_ref) {
24
- var children = _ref.children,
25
- data = _ref.data;
26
- return data ? /*#__PURE__*/_react.default.createElement(FileAttributesContext.Provider, {
27
- value: data
28
- }, children) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
29
- };
30
-
31
- exports.FileAttributesProvider = FileAttributesProvider;
32
-
33
- function withFileAttributes(Component) {
34
- return function (props) {
35
- var fileAttributes = (0, _react.useContext)(FileAttributesContext);
36
- return fileAttributes ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, props, {
37
- fileAttributes: fileAttributes
38
- })) : /*#__PURE__*/_react.default.createElement(Component, props);
39
- };
40
- }