@atlaskit/media-ui 16.5.0 → 17.2.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 (200) hide show
  1. package/CHANGELOG.md +80 -0
  2. package/dist/cjs/BlockCard/components/Byline.js +4 -2
  3. package/dist/cjs/BlockCard/components/Content.js +6 -2
  4. package/dist/cjs/BlockCard/components/ContentHeader.js +6 -2
  5. package/dist/cjs/BlockCard/components/Icon.js +3 -3
  6. package/dist/cjs/BlockCard/components/Link.js +3 -1
  7. package/dist/cjs/BlockCard/components/Modal.js +13 -21
  8. package/dist/cjs/BlockCard/components/ModalHeader.js +7 -2
  9. package/dist/cjs/BlockCard/components/Name.js +6 -2
  10. package/dist/cjs/BlockCard/views/ErroredView.js +5 -1
  11. package/dist/cjs/BlockCard/views/ForbiddenView.js +5 -2
  12. package/dist/cjs/BlockCard/views/NotFoundView.js +5 -1
  13. package/dist/cjs/BlockCard/views/ResolvedView.js +5 -2
  14. package/dist/cjs/EmbedCard/components/Frame.js +1 -1
  15. package/dist/cjs/MediaInlineCard/ErroredView/index.js +93 -0
  16. package/dist/cjs/MediaInlineCard/Frame/index.js +98 -0
  17. package/dist/cjs/MediaInlineCard/Frame/styled.js +54 -0
  18. package/dist/cjs/MediaInlineCard/Icon.js +30 -0
  19. package/dist/cjs/MediaInlineCard/IconAndTitleLayout/index.js +131 -0
  20. package/dist/cjs/MediaInlineCard/IconAndTitleLayout/styled.js +72 -0
  21. package/dist/cjs/MediaInlineCard/LoadedView/index.js +66 -0
  22. package/dist/cjs/MediaInlineCard/LoadingView/index.js +85 -0
  23. package/dist/cjs/MediaInlineCard/LoadingView/styled.js +19 -0
  24. package/dist/cjs/MediaInlineCard/index.js +29 -0
  25. package/dist/cjs/MediaInlineCard/styled.js +25 -0
  26. package/dist/cjs/classNames.js +52 -0
  27. package/dist/cjs/codeViewer.js +8 -0
  28. package/dist/cjs/customMediaPlayer/analytics/events/screen/customMediaPlayer.js +35 -0
  29. package/dist/cjs/customMediaPlayer/analytics/events/track/playCount.js +35 -0
  30. package/dist/cjs/customMediaPlayer/analytics/events/track/played.js +35 -0
  31. package/dist/cjs/customMediaPlayer/analytics/events/ui/mediaButtonClicked.js +33 -0
  32. package/dist/cjs/customMediaPlayer/analytics/events/ui/playPauseBlanketClicked.js +32 -0
  33. package/dist/cjs/customMediaPlayer/analytics/events/ui/playbackSpeedChanged.js +32 -0
  34. package/dist/cjs/customMediaPlayer/analytics/events/ui/shortcutPressed.js +33 -0
  35. package/dist/cjs/customMediaPlayer/analytics/events/ui/timeRangeNavigated.js +33 -0
  36. package/dist/cjs/customMediaPlayer/analytics/index.js +89 -0
  37. package/dist/cjs/customMediaPlayer/analytics/utils/analytics.js +29 -0
  38. package/dist/cjs/customMediaPlayer/analytics/utils/playbackAttributes.js +40 -0
  39. package/dist/cjs/customMediaPlayer/fullscreen.js +4 -2
  40. package/dist/cjs/customMediaPlayer/icons.js +61 -0
  41. package/dist/cjs/customMediaPlayer/index.js +345 -83
  42. package/dist/cjs/customMediaPlayer/playbackSpeedControls.js +4 -2
  43. package/dist/cjs/customMediaPlayer/timeRange.js +6 -1
  44. package/dist/cjs/customMediaPlayer/types.js +5 -0
  45. package/dist/cjs/ellipsify.js +42 -40
  46. package/dist/cjs/index.js +22 -2
  47. package/dist/cjs/locales.js +17 -0
  48. package/dist/cjs/mediaImage/index.js +8 -4
  49. package/dist/cjs/mediaImage/styled.js +32 -4
  50. package/dist/cjs/messages.js +22 -7
  51. package/dist/cjs/shortcut.js +12 -5
  52. package/dist/cjs/version.json +1 -1
  53. package/dist/es2019/BlockCard/components/Byline.js +4 -2
  54. package/dist/es2019/BlockCard/components/Content.js +3 -1
  55. package/dist/es2019/BlockCard/components/ContentHeader.js +3 -1
  56. package/dist/es2019/BlockCard/components/Icon.js +3 -3
  57. package/dist/es2019/BlockCard/components/Link.js +3 -1
  58. package/dist/es2019/BlockCard/components/Modal.js +30 -19
  59. package/dist/es2019/BlockCard/components/ModalHeader.js +60 -55
  60. package/dist/es2019/BlockCard/components/Name.js +3 -1
  61. package/dist/es2019/BlockCard/views/ErroredView.js +2 -0
  62. package/dist/es2019/BlockCard/views/ForbiddenView.js +3 -1
  63. package/dist/es2019/BlockCard/views/NotFoundView.js +2 -0
  64. package/dist/es2019/BlockCard/views/ResolvedView.js +3 -1
  65. package/dist/es2019/EmbedCard/components/Frame.js +1 -1
  66. package/dist/es2019/MediaInlineCard/ErroredView/index.js +43 -0
  67. package/dist/es2019/MediaInlineCard/Frame/index.js +60 -0
  68. package/dist/es2019/MediaInlineCard/Frame/styled.js +60 -0
  69. package/dist/es2019/MediaInlineCard/Icon.js +23 -0
  70. package/dist/es2019/MediaInlineCard/IconAndTitleLayout/index.js +90 -0
  71. package/dist/es2019/MediaInlineCard/IconAndTitleLayout/styled.js +103 -0
  72. package/dist/es2019/MediaInlineCard/LoadedView/index.js +25 -0
  73. package/dist/es2019/MediaInlineCard/LoadingView/index.js +42 -0
  74. package/dist/es2019/MediaInlineCard/LoadingView/styled.js +6 -0
  75. package/dist/es2019/MediaInlineCard/index.js +3 -0
  76. package/dist/es2019/MediaInlineCard/styled.js +9 -0
  77. package/dist/es2019/classNames.js +8 -3
  78. package/dist/es2019/codeViewer.js +8 -0
  79. package/dist/es2019/customMediaPlayer/analytics/events/screen/customMediaPlayer.js +16 -0
  80. package/dist/es2019/customMediaPlayer/analytics/events/track/playCount.js +16 -0
  81. package/dist/es2019/customMediaPlayer/analytics/events/track/played.js +16 -0
  82. package/dist/es2019/customMediaPlayer/analytics/events/ui/mediaButtonClicked.js +18 -0
  83. package/dist/es2019/customMediaPlayer/analytics/events/ui/playPauseBlanketClicked.js +17 -0
  84. package/dist/es2019/customMediaPlayer/analytics/events/ui/playbackSpeedChanged.js +17 -0
  85. package/dist/es2019/customMediaPlayer/analytics/events/ui/shortcutPressed.js +18 -0
  86. package/dist/es2019/customMediaPlayer/analytics/events/ui/timeRangeNavigated.js +18 -0
  87. package/dist/es2019/customMediaPlayer/analytics/index.js +9 -0
  88. package/dist/es2019/customMediaPlayer/analytics/utils/analytics.js +14 -0
  89. package/dist/es2019/customMediaPlayer/analytics/utils/playbackAttributes.js +31 -0
  90. package/dist/es2019/customMediaPlayer/fullscreen.js +4 -2
  91. package/dist/es2019/customMediaPlayer/icons.js +49 -0
  92. package/dist/es2019/customMediaPlayer/index.js +357 -78
  93. package/dist/es2019/customMediaPlayer/playbackSpeedControls.js +4 -2
  94. package/dist/es2019/customMediaPlayer/timeRange.js +9 -1
  95. package/dist/es2019/customMediaPlayer/types.js +1 -0
  96. package/dist/es2019/ellipsify.js +22 -16
  97. package/dist/es2019/index.js +2 -1
  98. package/dist/es2019/locales.js +3 -0
  99. package/dist/es2019/mediaImage/index.js +8 -4
  100. package/dist/es2019/mediaImage/styled.js +29 -8
  101. package/dist/es2019/messages.js +22 -7
  102. package/dist/es2019/shortcut.js +12 -5
  103. package/dist/es2019/version.json +1 -1
  104. package/dist/esm/BlockCard/components/Byline.js +4 -2
  105. package/dist/esm/BlockCard/components/Content.js +3 -1
  106. package/dist/esm/BlockCard/components/ContentHeader.js +3 -1
  107. package/dist/esm/BlockCard/components/Icon.js +3 -3
  108. package/dist/esm/BlockCard/components/Link.js +3 -1
  109. package/dist/esm/BlockCard/components/Modal.js +31 -22
  110. package/dist/esm/BlockCard/components/ModalHeader.js +6 -2
  111. package/dist/esm/BlockCard/components/Name.js +3 -1
  112. package/dist/esm/BlockCard/views/ErroredView.js +2 -0
  113. package/dist/esm/BlockCard/views/ForbiddenView.js +3 -1
  114. package/dist/esm/BlockCard/views/NotFoundView.js +2 -0
  115. package/dist/esm/BlockCard/views/ResolvedView.js +3 -1
  116. package/dist/esm/EmbedCard/components/Frame.js +1 -1
  117. package/dist/esm/MediaInlineCard/ErroredView/index.js +70 -0
  118. package/dist/esm/MediaInlineCard/Frame/index.js +84 -0
  119. package/dist/esm/MediaInlineCard/Frame/styled.js +39 -0
  120. package/dist/esm/MediaInlineCard/Icon.js +15 -0
  121. package/dist/esm/MediaInlineCard/IconAndTitleLayout/index.js +113 -0
  122. package/dist/esm/MediaInlineCard/IconAndTitleLayout/styled.js +33 -0
  123. package/dist/esm/MediaInlineCard/LoadedView/index.js +50 -0
  124. package/dist/esm/MediaInlineCard/LoadingView/index.js +66 -0
  125. package/dist/esm/MediaInlineCard/LoadingView/styled.js +7 -0
  126. package/dist/esm/MediaInlineCard/index.js +3 -0
  127. package/dist/esm/MediaInlineCard/styled.js +11 -0
  128. package/dist/esm/classNames.js +8 -3
  129. package/dist/esm/codeViewer.js +8 -0
  130. package/dist/esm/customMediaPlayer/analytics/events/screen/customMediaPlayer.js +23 -0
  131. package/dist/esm/customMediaPlayer/analytics/events/track/playCount.js +23 -0
  132. package/dist/esm/customMediaPlayer/analytics/events/track/played.js +23 -0
  133. package/dist/esm/customMediaPlayer/analytics/events/ui/mediaButtonClicked.js +23 -0
  134. package/dist/esm/customMediaPlayer/analytics/events/ui/playPauseBlanketClicked.js +22 -0
  135. package/dist/esm/customMediaPlayer/analytics/events/ui/playbackSpeedChanged.js +22 -0
  136. package/dist/esm/customMediaPlayer/analytics/events/ui/shortcutPressed.js +23 -0
  137. package/dist/esm/customMediaPlayer/analytics/events/ui/timeRangeNavigated.js +23 -0
  138. package/dist/esm/customMediaPlayer/analytics/index.js +9 -0
  139. package/dist/esm/customMediaPlayer/analytics/utils/analytics.js +14 -0
  140. package/dist/esm/customMediaPlayer/analytics/utils/playbackAttributes.js +29 -0
  141. package/dist/esm/customMediaPlayer/fullscreen.js +4 -2
  142. package/dist/esm/customMediaPlayer/icons.js +49 -0
  143. package/dist/esm/customMediaPlayer/index.js +354 -78
  144. package/dist/esm/customMediaPlayer/playbackSpeedControls.js +4 -2
  145. package/dist/esm/customMediaPlayer/timeRange.js +6 -1
  146. package/dist/esm/customMediaPlayer/types.js +1 -0
  147. package/dist/esm/ellipsify.js +38 -36
  148. package/dist/esm/index.js +2 -1
  149. package/dist/esm/locales.js +3 -0
  150. package/dist/esm/mediaImage/index.js +8 -4
  151. package/dist/esm/mediaImage/styled.js +31 -4
  152. package/dist/esm/messages.js +22 -7
  153. package/dist/esm/shortcut.js +12 -5
  154. package/dist/esm/version.json +1 -1
  155. package/dist/types/BlockCard/components/Byline.d.ts +2 -1
  156. package/dist/types/BlockCard/components/Content.d.ts +1 -0
  157. package/dist/types/BlockCard/components/ContentHeader.d.ts +1 -0
  158. package/dist/types/BlockCard/components/Link.d.ts +2 -1
  159. package/dist/types/BlockCard/components/ModalHeader.d.ts +2 -2
  160. package/dist/types/BlockCard/components/Name.d.ts +1 -0
  161. package/dist/types/BlockCard/views/ErroredView.d.ts +1 -0
  162. package/dist/types/BlockCard/views/ForbiddenView.d.ts +1 -0
  163. package/dist/types/BlockCard/views/NotFoundView.d.ts +1 -0
  164. package/dist/types/BlockCard/views/ResolvedView.d.ts +1 -0
  165. package/dist/types/MediaInlineCard/ErroredView/index.d.ts +16 -0
  166. package/dist/types/MediaInlineCard/Frame/index.d.ts +17 -0
  167. package/dist/types/MediaInlineCard/Frame/styled.d.ts +5 -0
  168. package/dist/types/MediaInlineCard/Icon.d.ts +3 -0
  169. package/dist/types/MediaInlineCard/IconAndTitleLayout/index.d.ts +18 -0
  170. package/dist/types/MediaInlineCard/IconAndTitleLayout/styled.d.ts +12 -0
  171. package/dist/types/MediaInlineCard/LoadedView/index.d.ts +18 -0
  172. package/dist/types/MediaInlineCard/LoadingView/index.d.ts +17 -0
  173. package/dist/types/MediaInlineCard/LoadingView/styled.d.ts +2 -0
  174. package/dist/types/MediaInlineCard/index.d.ts +6 -0
  175. package/dist/types/MediaInlineCard/styled.d.ts +2 -0
  176. package/dist/types/classNames.d.ts +7 -2
  177. package/dist/types/customMediaPlayer/analytics/events/screen/customMediaPlayer.d.ts +5 -0
  178. package/dist/types/customMediaPlayer/analytics/events/track/playCount.d.ts +5 -0
  179. package/dist/types/customMediaPlayer/analytics/events/track/played.d.ts +5 -0
  180. package/dist/types/customMediaPlayer/analytics/events/ui/mediaButtonClicked.d.ts +5 -0
  181. package/dist/types/customMediaPlayer/analytics/events/ui/playPauseBlanketClicked.d.ts +5 -0
  182. package/dist/types/customMediaPlayer/analytics/events/ui/playbackSpeedChanged.d.ts +5 -0
  183. package/dist/types/customMediaPlayer/analytics/events/ui/shortcutPressed.d.ts +5 -0
  184. package/dist/types/customMediaPlayer/analytics/events/ui/timeRangeNavigated.d.ts +5 -0
  185. package/dist/types/customMediaPlayer/analytics/index.d.ts +11 -0
  186. package/dist/types/customMediaPlayer/analytics/utils/analytics.d.ts +19 -0
  187. package/dist/types/customMediaPlayer/analytics/utils/playbackAttributes.d.ts +24 -0
  188. package/dist/types/customMediaPlayer/icons.d.ts +3 -0
  189. package/dist/types/customMediaPlayer/index.d.ts +44 -30
  190. package/dist/types/customMediaPlayer/playbackSpeedControls.d.ts +1 -0
  191. package/dist/types/customMediaPlayer/timeRange.d.ts +1 -0
  192. package/dist/types/customMediaPlayer/types.d.ts +4 -0
  193. package/dist/types/index.d.ts +3 -1
  194. package/dist/types/locales.d.ts +4 -0
  195. package/dist/types/mediaImage/index.d.ts +2 -0
  196. package/dist/types/mediaImage/styled.d.ts +5 -2
  197. package/dist/types/messages.d.ts +1 -1
  198. package/dist/types/shortcut.d.ts +15 -4
  199. package/locales/package.json +7 -0
  200. package/package.json +17 -14
@@ -0,0 +1,11 @@
1
+ export { createCustomMediaPlayerScreenEvent } from './events/screen/customMediaPlayer';
2
+ export { createMediaButtonClickedEvent } from './events/ui/mediaButtonClicked';
3
+ export { createPlaybackSpeedChangedEvent } from './events/ui/playbackSpeedChanged';
4
+ export { createPlayPauseBlanketClickedEvent } from './events/ui/playPauseBlanketClicked';
5
+ export { createMediaShortcutPressedEvent } from './events/ui/shortcutPressed';
6
+ export { createTimeRangeNavigatedEvent } from './events/ui/timeRangeNavigated';
7
+ export { createFirstPlayedTrackEvent } from './events/track/playCount';
8
+ export { createPlayedTrackEvent } from './events/track/played';
9
+ export type { CustomMediaPlayerUIEvent, CustomMediaPlayerUIEventPayload, CustomMediaPlayerAnalyticsEventPayload, } from './utils/analytics';
10
+ export { createAndFireMediaCustomMediaPlayerEvent, fireAnalyticsEvent, relevantFeatureFlagNames, } from './utils/analytics';
11
+ export type { PlaybackAttributes, PlaybackState, WithPlaybackProps, WithMediaPlayerState, } from './utils/playbackAttributes';
@@ -0,0 +1,19 @@
1
+ import { CreateUIAnalyticsEvent } from '@atlaskit/analytics-next';
2
+ import { MediaFeatureFlags, UIAttributes, UIEventPayload } from '@atlaskit/media-common';
3
+ import { CustomMediaPlayerScreenEventPayload } from '../events/screen/customMediaPlayer';
4
+ import { MediaButtonClickEventPayload } from '../events/ui/mediaButtonClicked';
5
+ import { PlaybackSpeedChangeEventPayload } from '../events/ui/playbackSpeedChanged';
6
+ import { PlayPauseBlanketClickEventPayload } from '../events/ui/playPauseBlanketClicked';
7
+ import { ShortcutPressEventPayload } from '../events/ui/shortcutPressed';
8
+ import { TimeRangeNavigateEventPayload } from '../events/ui/timeRangeNavigated';
9
+ import { FirstPlayedTrackEventPayload } from '../events/track/playCount';
10
+ import { PlayedTrackEventPayload } from '../events/track/played';
11
+ import { CustomMediaPlayerType } from '../../types';
12
+ export declare type CustomMediaPlayerUIEventPayload = UIEventPayload<UIAttributes & {
13
+ type: CustomMediaPlayerType;
14
+ }, 'default', 'customMediaPlayer'>;
15
+ export declare type CustomMediaPlayerUIEvent = 'mediaButtonClick' | 'shortcutPress' | 'playPauseBlanketClick' | 'timeRangeNavigate' | 'volumeRangeNavigate' | 'playbackSpeedChange';
16
+ export declare type CustomMediaPlayerAnalyticsEventPayload = CustomMediaPlayerScreenEventPayload | MediaButtonClickEventPayload | PlaybackSpeedChangeEventPayload | PlayPauseBlanketClickEventPayload | ShortcutPressEventPayload | TimeRangeNavigateEventPayload | CustomMediaPlayerUIEventPayload | FirstPlayedTrackEventPayload | PlayedTrackEventPayload;
17
+ export declare const relevantFeatureFlagNames: Array<keyof MediaFeatureFlags>;
18
+ export declare function fireAnalyticsEvent(payload: CustomMediaPlayerAnalyticsEventPayload, createAnalyticsEvent?: CreateUIAnalyticsEvent): void;
19
+ export declare const createAndFireMediaCustomMediaPlayerEvent: (payload: CustomMediaPlayerAnalyticsEventPayload) => (createAnalyticsEvent: CreateUIAnalyticsEvent) => import("@atlaskit/analytics-next").UIAnalyticsEvent;
@@ -0,0 +1,24 @@
1
+ import { VideoState, VideoStatus } from 'react-video-renderer';
2
+ export declare type WithPlaybackProps = {
3
+ readonly isAutoPlay: boolean;
4
+ readonly isHDAvailable?: boolean;
5
+ readonly isHDActive?: boolean;
6
+ };
7
+ export declare type WithMediaPlayerState = {
8
+ isLargePlayer: boolean;
9
+ isFullScreenEnabled: boolean;
10
+ playbackSpeed: number;
11
+ };
12
+ export declare type PlaybackState = WithPlaybackProps & WithMediaPlayerState & Partial<VideoState>;
13
+ export declare type PlaybackAttributes = WithPlaybackProps & WithMediaPlayerState & {
14
+ durationInSec?: number;
15
+ absoluteTimeInSec?: number;
16
+ relativeTime?: number;
17
+ status?: VideoStatus;
18
+ volume?: number;
19
+ isMuted?: boolean;
20
+ };
21
+ export declare type WithPlaybackAttributes = {
22
+ playbackAttributes: Partial<PlaybackAttributes>;
23
+ };
24
+ export declare function createPlaybackAttributes(playbackState: PlaybackState): Partial<PlaybackAttributes>;
@@ -0,0 +1,3 @@
1
+ import type { GlyphProps } from '@atlaskit/icon/types';
2
+ export declare function SkipTenBackwardIcon(props: GlyphProps): JSX.Element;
3
+ export declare function SkipTenForwardIcon(props: GlyphProps): JSX.Element;
@@ -1,17 +1,18 @@
1
1
  import React from 'react';
2
2
  import { Component } from 'react';
3
- import { SetVolumeFunction, NavigateFunction, VideoState, VideoActions } from 'react-video-renderer';
3
+ import { WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
4
+ import { MediaFeatureFlags } from '@atlaskit/media-common';
4
5
  import { NumericalCardDimensions } from '@atlaskit/media-common';
6
+ import { CustomMediaPlayerType } from './types';
7
+ import { WithPlaybackProps, WithMediaPlayerState } from './analytics';
5
8
  import { InjectedIntlProps } from 'react-intl';
6
9
  import { WithShowControlMethodProp } from '../types';
7
10
  import { TimeSaverConfig } from './timeSaver';
8
- export interface CustomMediaPlayerProps extends WithShowControlMethodProp {
9
- readonly type: 'audio' | 'video';
11
+ export interface CustomMediaPlayerProps extends WithPlaybackProps, WithShowControlMethodProp {
12
+ readonly type: CustomMediaPlayerType;
10
13
  readonly src: string;
11
- readonly isHDActive?: boolean;
14
+ readonly fileId?: string;
12
15
  readonly onHDToggleClick?: () => void;
13
- readonly isHDAvailable?: boolean;
14
- readonly isAutoPlay: boolean;
15
16
  readonly isShortcutEnabled?: boolean;
16
17
  readonly lastWatchTimeConfig?: TimeSaverConfig;
17
18
  readonly onCanPlay?: () => void;
@@ -19,43 +20,56 @@ export interface CustomMediaPlayerProps extends WithShowControlMethodProp {
19
20
  readonly onDownloadClick?: () => void;
20
21
  readonly onFirstPlay?: () => void;
21
22
  readonly originalDimensions?: NumericalCardDimensions;
23
+ readonly featureFlags?: MediaFeatureFlags;
22
24
  }
23
- export interface CustomMediaPlayerState {
24
- isLargePlayer: boolean;
25
- isFullScreenEnabled: boolean;
26
- playbackSpeed: number;
25
+ export interface CustomMediaPlayerState extends WithMediaPlayerState {
27
26
  }
28
- export declare type ToggleButtonAction = () => void;
29
- export declare class CustomMediaPlayer extends Component<CustomMediaPlayerProps & InjectedIntlProps, CustomMediaPlayerState> {
27
+ export declare type Action = () => void;
28
+ export declare class CustomMediaPlayerBase extends Component<CustomMediaPlayerProps & InjectedIntlProps & WithAnalyticsEventsProps, CustomMediaPlayerState> {
30
29
  videoWrapperRef?: HTMLElement;
31
30
  private actions?;
31
+ private videoState;
32
32
  private wasPlayedOnce;
33
+ private lastCurrentTime;
33
34
  private readonly timeSaver;
35
+ private clickToTogglePlayTimoutId;
34
36
  state: CustomMediaPlayerState;
35
37
  componentDidMount(): void;
36
38
  componentWillUnmount(): void;
37
- onFullScreenChange: (e: Event) => void;
38
- onTimeChange: (navigate: NavigateFunction) => (value: number) => void;
39
- onVolumeChange: (setVolume: SetVolumeFunction) => (value: number) => void;
40
- onCurrentTimeChange: (currentTime: number, duration: number) => void;
41
- shortcutHandler: (toggleButtonAction: ToggleButtonAction) => () => void;
42
- renderCurrentTime: ({ currentTime, duration }: VideoState) => JSX.Element;
43
- renderHDButton: () => JSX.Element | undefined;
39
+ private onFullScreenChange;
40
+ private onTimeChanged;
41
+ private onVolumeChanged;
42
+ private onCurrentTimeChange;
43
+ private renderCurrentTime;
44
+ private renderHDButton;
44
45
  private onPlaybackSpeedChange;
45
46
  private renderSpeedControls;
46
- renderVolume: ({ isMuted, volume }: VideoState, actions: VideoActions, showSlider: boolean) => JSX.Element;
47
- onFullScreenClick: () => void;
48
- onResize: (width: number) => void;
49
- saveVideoWrapperRef: (el?: HTMLElement | undefined) => HTMLElement | undefined;
50
- renderFullScreenButton: () => JSX.Element | undefined;
51
- renderDownloadButton: () => JSX.Element | undefined;
52
- renderSpinner: () => JSX.Element;
47
+ private renderVolume;
48
+ private toggleFullscreen;
49
+ private onFullScreenButtonClick;
50
+ private onResize;
51
+ private saveVideoWrapperRef;
52
+ private renderFullScreenButton;
53
+ private renderDownloadButton;
54
+ private renderShortcuts;
55
+ private renderPlayPauseButton;
56
+ private renderSkipBackwardButton;
57
+ private renderSkipForwardButton;
58
+ private renderSpinner;
53
59
  private setActions;
54
60
  pause: () => void;
55
61
  private play;
62
+ private getMediaButtonClickHandler;
63
+ private getKeyboardShortcutHandler;
64
+ private createAndFireUIEvent;
65
+ private onViewed;
66
+ private resetPendingPlayPauseToggleTimer;
67
+ private doubleClickToFullscreen;
68
+ private togglePlayByBlanketClick;
69
+ private startPlayByBlanketClick;
70
+ private pausePlayByBlanketClick;
71
+ private startPlayByButtonClick;
72
+ private pausePlayByButtonClick;
56
73
  render(): JSX.Element;
57
74
  }
58
- declare const _default: React.ComponentClass<CustomMediaPlayerProps, any> & {
59
- WrappedComponent: ReactIntl.ComponentConstructor<CustomMediaPlayerProps & InjectedIntlProps>;
60
- };
61
- export default _default;
75
+ export declare const CustomMediaPlayer: React.ForwardRefExoticComponent<Pick<Pick<CustomMediaPlayerProps & WithAnalyticsEventsProps, "src" | "type" | "onError" | "onCanPlay" | "isAutoPlay" | "isHDAvailable" | "isHDActive" | "originalDimensions" | "fileId" | "onHDToggleClick" | "isShortcutEnabled" | "lastWatchTimeConfig" | "onDownloadClick" | "onFirstPlay" | "featureFlags" | "showControls"> & React.RefAttributes<any>, "src" | "type" | "onError" | "onCanPlay" | "key" | "isAutoPlay" | "isHDAvailable" | "isHDActive" | "originalDimensions" | "fileId" | "onHDToggleClick" | "isShortcutEnabled" | "lastWatchTimeConfig" | "onDownloadClick" | "onFirstPlay" | "featureFlags" | "showControls"> & React.RefAttributes<any>>;
@@ -6,6 +6,7 @@ export interface PlaybackSpeedControlsProps {
6
6
  playbackSpeed: number;
7
7
  onPlaybackSpeedChange: (playbackSpeed: number) => void;
8
8
  originalDimensions?: NumericalCardDimensions;
9
+ onClick?: () => void;
9
10
  }
10
11
  export interface PlaybackSpeedControlsState {
11
12
  popupHeight: number;
@@ -7,6 +7,7 @@ export interface TimeRangeProps {
7
7
  onChange: (newTime: number) => void;
8
8
  disableThumbTooltip: boolean;
9
9
  isAlwaysActive: boolean;
10
+ onChanged?: () => void;
10
11
  }
11
12
  export interface TimeRangeState {
12
13
  isDragging: boolean;
@@ -0,0 +1,4 @@
1
+ export declare type CustomMediaPlayerType = 'audio' | 'video';
2
+ export declare type WithCustomMediaPlayerType = {
3
+ type: CustomMediaPlayerType;
4
+ };
@@ -8,6 +8,8 @@ export { AuthorizeAction, BlockCardErroredView, BlockCardNotFoundView, BlockCard
8
8
  export type { BlockCardResolvedViewProps } from './BlockCard';
9
9
  export { InlineCardErroredView, InlineCardForbiddenView, InlineCardResolvedView, InlineCardResolvingView, InlineCardUnauthorizedView, } from './InlineCard';
10
10
  export type { InlineCardErroredViewProps, InlineCardForbiddenViewProps, InlineCardResolvedViewProps, InlineCardResolvingViewProps, InlineCardUnauthorizedViewProps, } from './InlineCard';
11
+ export { MediaInlineCardErroredView, MediaInlineCardLoadedView, MediaInlineCardLoadingView, } from './MediaInlineCard';
12
+ export type { MediaInlineCardErroredViewProps, MediaInlineCardLoadedViewProps, MediaInlineCardLoadingViewProps, } from './MediaInlineCard';
11
13
  export { CardLinkView } from './LinkView';
12
14
  export { Ellipsify } from './ellipsify';
13
15
  export type { EllipsifyProps } from './ellipsify';
@@ -25,7 +27,7 @@ export { ExifOrientation, getCssFromImageOrientation, getImageInfo, getMetaTagNu
25
27
  export type { FileInfo, ImageInfo, ImageMetaData, ImageMetaDataTags, } from './imageMetaData';
26
28
  export { dataURItoFile, fileToArrayBuffer, fileToDataURI, getFileInfo, getFileInfoFromSrc, loadImage, findParentByClassname, getMimeIcon, } from './util';
27
29
  export { MimeTypeIcon } from './mime-type-icon';
28
- export { default as CustomMediaPlayer } from './customMediaPlayer/index';
30
+ export { CustomMediaPlayer } from './customMediaPlayer/index';
29
31
  export { TimeRange } from './customMediaPlayer/timeRange';
30
32
  export type { TimeRangeProps, TimeRangeState, } from './customMediaPlayer/timeRange';
31
33
  export { hideControlsClassName } from './classNames';
@@ -0,0 +1,4 @@
1
+ declare const locales: {
2
+ [key: string]: any;
3
+ };
4
+ export { locales };
@@ -9,6 +9,8 @@ export interface MediaImageProps {
9
9
  crossOrigin?: '' | 'anonymous' | 'use-credentials';
10
10
  onImageLoad?: (loadedImage: HTMLImageElement) => void;
11
11
  onImageError?: () => void;
12
+ loading?: 'auto' | 'lazy' | 'eager';
13
+ forceSyncDisplay?: boolean;
12
14
  }
13
15
  export interface MediaImageState {
14
16
  isImageLoaded: boolean;
@@ -1,2 +1,5 @@
1
- /// <reference types="react" />
2
- export declare const ImageComponent: import("styled-components").StyledComponentClass<import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, any, import("react").DetailedHTMLProps<import("react").ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>>;
1
+ import React from 'react';
2
+ export declare const ImageComponent: React.FC<React.ClassAttributes<HTMLImageElement> & React.ImgHTMLAttributes<HTMLImageElement> & {
3
+ loading?: 'auto' | 'lazy' | 'eager';
4
+ imageRef?: ((instance: HTMLImageElement | null) => void) | React.RefObject<HTMLImageElement> | null;
5
+ }>;
@@ -1,6 +1,6 @@
1
1
  import { FormattedMessage } from 'react-intl';
2
2
  export declare type RequestAccessMessageKey = 'request_access_description' | 'click_to_join_description' | 'request_access_pending_description' | 'click_to_join' | 'request_access' | 'request_access_pending' | 'forbidden_description' | 'request_denied_description';
3
- export declare type MessageKey = 'retry' | 'failed_to_load' | 'recent_uploads' | 'upload_file' | 'drag_and_drop_your_files' | 'drag_and_drop_your_files_and_folders' | 'drop_your_files' | 'upload' | 'cancel' | 'search_all_gifs' | 'cant_retrieve_gifs' | 'cant_retrieve_files' | 'check_your_network' | 'try_again' | 'try_another_account' | 'no_gifs_found' | 'no_gifs_found_suggestion' | 'load_more_gifs' | 'add_account' | 'unlink_account' | 'upload_file_from' | 'connect_to' | 'connect_account_description' | 'connect_link_account' | 'connect_link_account_card' | 'connect_link_account_card_name' | 'connect_link_account_card_description' | 'invalid_permissions' | 'invalid_permissions_description' | 'upload_an_avatar' | 'loading' | 'loading_file' | 'save' | 'or' | 'upload_photo' | 'default_avatars' | 'drag_and_drop_images_here' | 'upload_image' | 'image_url_invalid_error' | 'image_format_invalid_error' | 'image_size_too_large_error' | 'something_went_wrong' | 'might_be_a_hiccup' | 'couldnt_generate_preview' | 'couldnt_generate_encrypted_entry_preview' | 'cant_preview_file_type' | 'item_not_found_in_list' | 'not_found_title' | 'not_found_description' | 'no_pdf_artifacts' | 'give_feedback' | 'try_downloading_file' | 'webgl_warning_description' | 'unable_to_annotate_image' | 'learn_more' | 'accounts' | 'actions' | 'error_hint_retry' | 'error_hint_critical' | 'close' | 'could_not_load_editor' | 'could_not_save_image' | 'could_not_load_link' | 'annotate' | 'annotate_tool_arrow' | 'annotate_tool_text' | 'annotate_tool_shape' | 'annotate_tool_brush' | 'annotate_tool_blur' | 'annotate_tool_line_thickness' | 'annotate_tool_color' | 'annotate_confirmation_close_anyway' | 'annotate_confirmation_heading' | 'annotate_confirmation_content' | 'drop_your_files_here' | 'share_files_instantly' | 'insert_files' | 'zoom_out' | 'zoom_in' | 'remove_image' | 'play' | 'pause' | 'disable_fullscreen' | 'enable_fullscreen' | 'error_loading_file' | 'error_generating_preview' | 'download' | 'unknown' | 'document' | 'audio' | 'video' | 'image' | 'archive' | 'email' | 'text' | 'search' | 'view' | 'viewIn' | 'viewOriginal' | 'playbackSpeed' | 'playbackDefaultSpeed' | 'preview' | 'preview_unavailable' | 'preview_currently_unavailable' | 'creating_preview' | 'couldnt_load_file' | 'error_429' | 'preview_rateLimited' | 'close_and_reopen' | 'viewer_rateLimited' | 'zip_entry_load_fail' | RequestAccessMessageKey;
3
+ export declare type MessageKey = 'retry' | 'failed_to_load' | 'failed_to_upload' | 'recent_uploads' | 'upload_file' | 'drag_and_drop_your_files' | 'drag_and_drop_your_files_and_folders' | 'drop_your_files' | 'upload' | 'cancel' | 'search_all_gifs' | 'cant_retrieve_gifs' | 'cant_retrieve_files' | 'check_your_network' | 'try_again' | 'try_another_account' | 'no_gifs_found' | 'no_gifs_found_suggestion' | 'load_more_gifs' | 'add_account' | 'unlink_account' | 'upload_file_from' | 'connect_to' | 'connect_account_description' | 'connect_link_account' | 'connect_link_account_card' | 'connect_link_account_card_name' | 'connect_link_account_card_description' | 'invalid_permissions' | 'invalid_permissions_description' | 'upload_an_avatar' | 'loading' | 'loading_file' | 'save' | 'or' | 'upload_photo' | 'default_avatars' | 'drag_and_drop_images_here' | 'upload_image' | 'image_url_invalid_error' | 'image_format_invalid_error' | 'image_size_too_large_error' | 'something_went_wrong' | 'might_be_a_hiccup' | 'couldnt_generate_preview' | 'couldnt_generate_encrypted_entry_preview' | 'cant_preview_file_type' | 'item_not_found_in_list' | 'not_found_title' | 'not_found_description' | 'no_pdf_artifacts' | 'give_feedback' | 'try_downloading_file' | 'webgl_warning_description' | 'unable_to_annotate_image' | 'learn_more' | 'accounts' | 'actions' | 'error_hint_retry' | 'error_hint_critical' | 'close' | 'could_not_load_editor' | 'could_not_save_image' | 'could_not_load_link' | 'annotate' | 'annotate_tool_arrow' | 'annotate_tool_text' | 'annotate_tool_shape' | 'annotate_tool_brush' | 'annotate_tool_blur' | 'annotate_tool_line_thickness' | 'annotate_tool_color' | 'annotate_confirmation_close_anyway' | 'annotate_confirmation_heading' | 'annotate_confirmation_content' | 'drop_your_files_here' | 'share_files_instantly' | 'insert_files' | 'zoom_out' | 'zoom_in' | 'remove_image' | 'play' | 'pause' | 'disable_fullscreen' | 'enable_fullscreen' | 'error_loading_file' | 'error_generating_preview' | 'download' | 'unknown' | 'document' | 'audio' | 'video' | 'image' | 'archive' | 'email' | 'text' | 'displayThumbnail' | 'search' | 'view' | 'viewIn' | 'viewOriginal' | 'playbackSpeed' | 'skipBackward' | 'skipForward' | 'playbackDefaultSpeed' | 'preview' | 'preview_unavailable' | 'preview_currently_unavailable' | 'creating_preview' | 'couldnt_load_file' | 'error_429' | 'close_and_reopen' | 'viewer_rateLimited' | 'zip_entry_load_fail' | RequestAccessMessageKey;
4
4
  declare type Messages = {
5
5
  [K in MessageKey]: FormattedMessage.MessageDescriptor;
6
6
  };
@@ -1,12 +1,22 @@
1
1
  import { Component } from 'react';
2
2
  export declare const keyCodes: {
3
- space: number;
4
- m: number;
3
+ space: string;
4
+ m: string;
5
+ rightArrow: string;
6
+ leftArrow: string;
5
7
  };
6
- export interface ShortcutProps {
8
+ declare type WithKeyCode = {
9
+ /** @deprecated use code: string instead */
7
10
  keyCode: number;
11
+ code?: never;
12
+ };
13
+ declare type WithCode = {
14
+ code: string;
15
+ keyCode?: never;
16
+ };
17
+ export declare type ShortcutProps = {
8
18
  handler: () => void;
9
- }
19
+ } & (WithKeyCode | WithCode);
10
20
  export declare class Shortcut extends Component<ShortcutProps, {}> {
11
21
  componentDidMount(): void;
12
22
  componentWillUnmount(): void;
@@ -15,3 +25,4 @@ export declare class Shortcut extends Component<ShortcutProps, {}> {
15
25
  private init;
16
26
  private release;
17
27
  }
28
+ export {};
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "@atlaskit/media-ui/locales",
3
+ "main": "../dist/cjs/locales.js",
4
+ "module": "../dist/esm/locales.js",
5
+ "module:es2019": "../dist/es2019/locales.js",
6
+ "types": "../dist/types/locales.d.ts"
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/media-ui",
3
- "version": "16.5.0",
3
+ "version": "17.2.0",
4
4
  "description": "Includes common components and utilities used by other media packages",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -28,6 +28,7 @@
28
28
  "./errorIcon": "./src/errorIcon.tsx",
29
29
  "./types": "./src/types.ts",
30
30
  "./formatDate": "./src/formatDate.ts",
31
+ "./locales": "./src/locales.ts",
31
32
  ".": "./src/index.ts"
32
33
  },
33
34
  "atlassian": {
@@ -39,25 +40,23 @@
39
40
  }
40
41
  },
41
42
  "dependencies": {
42
- "@atlaskit/avatar": "^20.4.0",
43
- "@atlaskit/avatar-group": "^8.4.0",
43
+ "@atlaskit/analytics-next": "^8.2.0",
44
+ "@atlaskit/avatar": "^20.5.0",
45
+ "@atlaskit/avatar-group": "^8.5.0",
44
46
  "@atlaskit/button": "^16.1.0",
45
- "@atlaskit/code": "^14.1.0",
47
+ "@atlaskit/code": "^14.3.0",
46
48
  "@atlaskit/droplist": "^11.0.0",
47
- "@atlaskit/field-base": "^15.0.0",
48
- "@atlaskit/icon": "^21.7.0",
49
+ "@atlaskit/icon": "^21.9.0",
49
50
  "@atlaskit/icon-file-type": "^6.3.0",
50
51
  "@atlaskit/item": "^12.0.0",
51
52
  "@atlaskit/locale": "^2.3.0",
52
53
  "@atlaskit/lozenge": "^11.1.0",
53
- "@atlaskit/media-common": "^2.8.0",
54
- "@atlaskit/modal-dialog": "^11.7.0",
55
- "@atlaskit/page": "^12.0.0",
56
- "@atlaskit/select": "^15.0.0",
54
+ "@atlaskit/media-common": "^2.10.0",
55
+ "@atlaskit/modal-dialog": "^12.2.0",
56
+ "@atlaskit/select": "^15.2.0",
57
57
  "@atlaskit/spinner": "^15.1.0",
58
- "@atlaskit/textfield": "^5.1.0",
59
- "@atlaskit/theme": "^11.4.0",
60
- "@atlaskit/tooltip": "^17.4.0",
58
+ "@atlaskit/theme": "^12.0.0",
59
+ "@atlaskit/tooltip": "^17.5.0",
61
60
  "@atlaskit/width-detector": "^3.0.0",
62
61
  "@babel/runtime": "^7.0.0",
63
62
  "@emotion/core": "^10.0.9",
@@ -77,13 +76,17 @@
77
76
  "styled-components": "^3.2.6"
78
77
  },
79
78
  "devDependencies": {
79
+ "@atlaskit/analytics-listeners": "^8.1.2",
80
80
  "@atlaskit/build-utils": "*",
81
81
  "@atlaskit/button": "^16.1.0",
82
82
  "@atlaskit/checkbox": "^12.3.0",
83
83
  "@atlaskit/docs": "*",
84
+ "@atlaskit/field-base": "^15.0.5",
84
85
  "@atlaskit/media-integration-test-helpers": "^2.5.0",
85
- "@atlaskit/media-test-helpers": "^28.7.0",
86
+ "@atlaskit/media-test-helpers": "^28.9.0",
87
+ "@atlaskit/page": "^12.0.6",
86
88
  "@atlaskit/ssr": "*",
89
+ "@atlaskit/textfield": "^5.0.5",
87
90
  "@atlaskit/visual-regression": "*",
88
91
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
89
92
  "@testing-library/jest-dom": "^4.1.0",