@clickview/player 0.0.0-dev.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.
- package/.eslintrc.json +3 -0
- package/.storybook/main.js +21 -0
- package/.storybook/preview-head.html +3 -0
- package/.storybook/stories/Base.stories.tsx +115 -0
- package/.storybook/stories/Clips.stories.tsx +64 -0
- package/.storybook/stories/Interactives.stories.tsx +65 -0
- package/.storybook/stories/Subtitles.stories.tsx +22 -0
- package/.storybook/stories/assets/chapters.vtt +19 -0
- package/.storybook/stories/assets/en.vtt +8 -0
- package/.storybook/stories/assets/es.vtt +8 -0
- package/.storybook/stories/assets/fr.vtt +8 -0
- package/.storybook/stories/assets/interactive.json +451 -0
- package/.storybook/stories/assets/sample_1280x720.mp4.jpg +0 -0
- package/.storybook/stories/assets/sample_1280x720.mp4.vtx +0 -0
- package/.storybook/stories/assets/thumbnails.vtt +62 -0
- package/.storybook/stories/assets/vertical.mp4 +0 -0
- package/.storybook/stories/utils/Wrap.tsx +18 -0
- package/.storybook/stories/utils/mock-playerapi.ts +181 -0
- package/.storybook/stories/utils/mock-setup.ts +23 -0
- package/README.md +1 -0
- package/dist/bundle.js +1 -0
- package/dist/font.scss +59 -0
- package/dist/libs/analytics/src/clients/CollectionApiClient.d.ts +48 -0
- package/dist/libs/analytics/src/constants/CountryRegionMapping.d.ts +7 -0
- package/dist/libs/analytics/src/constants/Regions.d.ts +6 -0
- package/dist/libs/analytics/src/enums/CountryCode.d.ts +5 -0
- package/dist/libs/analytics/src/enums/RegionName.d.ts +5 -0
- package/dist/libs/analytics/src/interfaces/AnalyticsTypes.d.ts +316 -0
- package/dist/libs/analytics/src/interfaces/Config.d.ts +3 -0
- package/dist/libs/analytics/src/interfaces/Folder.d.ts +3 -0
- package/dist/libs/analytics/src/interfaces/HashObject.d.ts +3 -0
- package/dist/libs/analytics/src/interfaces/Owner.d.ts +3 -0
- package/dist/libs/analytics/src/interfaces/Playlist.d.ts +3 -0
- package/dist/libs/analytics/src/interfaces/Rating.d.ts +4 -0
- package/dist/libs/analytics/src/interfaces/Region.d.ts +5 -0
- package/dist/libs/analytics/src/interfaces/RegionalUrl.d.ts +5 -0
- package/dist/libs/analytics/src/interfaces/Resource.d.ts +5 -0
- package/dist/libs/analytics/src/interfaces/Series.d.ts +3 -0
- package/dist/libs/analytics/src/interfaces/Subtitle.d.ts +4 -0
- package/dist/libs/analytics/src/interfaces/User.d.ts +17 -0
- package/dist/libs/analytics/src/interfaces/VersionData.d.ts +4 -0
- package/dist/libs/analytics/src/interfaces/Video.d.ts +16 -0
- package/dist/libs/analytics/src/interfaces/index.d.ts +15 -0
- package/dist/libs/analytics/src/interfaces/primitives/BaseObject.d.ts +7 -0
- package/dist/libs/analytics/src/models/AnalyticsEvent.d.ts +49 -0
- package/dist/libs/analytics/src/models/CollectionEvent.d.ts +61 -0
- package/dist/libs/analytics/src/utils/CollectionApiClientHelper.d.ts +6 -0
- package/dist/libs/analytics/src/utils/DataFormatHelper.d.ts +14 -0
- package/dist/libs/analytics/src/utils/EventWhitelistHelper.d.ts +19 -0
- package/dist/libs/analytics/src/utils/TypeHelper.d.ts +4 -0
- package/dist/libs/analytics/src/utils/UploadDataFormatHelper.d.ts +10 -0
- package/dist/libs/analytics/src/utils/UrlHelper.d.ts +3 -0
- package/dist/libs/analytics/src/utils/UserAgentHelper.d.ts +10 -0
- package/dist/libs/analytics/src/utils/VideoDataFormatHelper.d.ts +42 -0
- package/dist/libs/common/src/backbone/constants/CommonChannels.d.ts +5 -0
- package/dist/libs/common/src/backbone/core/AppLink.d.ts +37 -0
- package/dist/libs/common/src/backbone/core/BaseAppRouter.d.ts +99 -0
- package/dist/libs/common/src/backbone/core/BaseApplication.d.ts +76 -0
- package/dist/libs/common/src/backbone/core/BaseBehavior.d.ts +6 -0
- package/dist/libs/common/src/backbone/core/BaseCollection.d.ts +7 -0
- package/dist/libs/common/src/backbone/core/BaseCollectionView.d.ts +16 -0
- package/dist/libs/common/src/backbone/core/BaseError.d.ts +18 -0
- package/dist/libs/common/src/backbone/core/BaseLayoutView.d.ts +11 -0
- package/dist/libs/common/src/backbone/core/BaseModel.d.ts +27 -0
- package/dist/libs/common/src/backbone/core/BaseNestedModel.d.ts +21 -0
- package/dist/libs/common/src/backbone/core/BaseService.d.ts +10 -0
- package/dist/libs/common/src/backbone/core/BaseView.d.ts +131 -0
- package/dist/libs/common/src/backbone/core/EventNames.d.ts +16 -0
- package/dist/libs/common/src/backbone/core/LayoutService.d.ts +31 -0
- package/dist/libs/common/src/backbone/core/ListenToRadio.d.ts +3 -0
- package/dist/libs/common/src/backbone/core/LocationUtils.d.ts +23 -0
- package/dist/libs/common/src/backbone/core/Middleware.d.ts +10 -0
- package/dist/libs/common/src/backbone/core/Shell.d.ts +79 -0
- package/dist/libs/common/src/backbone/core/Types.d.ts +12 -0
- package/dist/libs/common/src/backbone/core/index.d.ts +18 -0
- package/dist/libs/common/src/backbone/errors/DevError.d.ts +4 -0
- package/dist/libs/common/src/backbone/index.d.ts +2 -0
- package/dist/libs/common/src/backbone/interfaces/StickitBinding.d.ts +38 -0
- package/dist/libs/common/src/backbone/services/EnvironmentVariables.d.ts +13 -0
- package/dist/libs/common/src/react/interfaces/HashObject.d.ts +3 -0
- package/dist/libs/shared/src/interfaces/models/primitives/BaseObject.d.ts +7 -0
- package/dist/player-app.css +71 -0
- package/dist/player-app.js +52 -0
- package/dist/projects/player/src/components/chapter-bar-items/chapter-bar-item.d.ts +79 -0
- package/dist/projects/player/src/components/chapter-bar-items/chapter-bar-items.d.ts +55 -0
- package/dist/projects/player/src/components/chapter-bar-items/chapter-bar-load-progress.d.ts +55 -0
- package/dist/projects/player/src/components/chapter-bar-items/chapter-bar-play-progress.d.ts +55 -0
- package/dist/projects/player/src/components/chapter-seek-bar/chapter-seek-bar.d.ts +1 -0
- package/dist/projects/player/src/components/chapters-button/chapter-menu-item.d.ts +60 -0
- package/dist/projects/player/src/components/chapters-button/chapters-button.d.ts +1 -0
- package/dist/projects/player/src/components/cog-button/cog-button.d.ts +38 -0
- package/dist/projects/player/src/components/collapserator/collapserator.d.ts +4 -0
- package/dist/projects/player/src/components/mouse-time-display/mouse-time-display.d.ts +3 -0
- package/dist/projects/player/src/components/playback-rate-button/playback-rate-button.d.ts +1 -0
- package/dist/projects/player/src/components/progress-control/progress-control.d.ts +1 -0
- package/dist/projects/player/src/components/quality-selector/quality-button.d.ts +1 -0
- package/dist/projects/player/src/components/quality-selector/quality-menu-item.d.ts +17 -0
- package/dist/projects/player/src/components/subs-caps-button/subs-caps-button.d.ts +1 -0
- package/dist/projects/player/src/components/thumbnail-display/thumbnail-display.d.ts +66 -0
- package/dist/projects/player/src/components/time-tooltip/time-tooltip.d.ts +15 -0
- package/dist/projects/player/src/components/time-wrapper/time-wrapper.d.ts +1 -0
- package/dist/projects/player/src/index.d.ts +12 -0
- package/dist/projects/player/src/interfaces/CollapsibleComponent.d.ts +10 -0
- package/dist/projects/player/src/interfaces/models/ApiError.d.ts +4 -0
- package/dist/projects/player/src/interfaces/models/PlaybackObject.d.ts +32 -0
- package/dist/projects/player/src/players/base-player.d.ts +64 -0
- package/dist/projects/player/src/players/create-clip-player.d.ts +16 -0
- package/dist/projects/player/src/players/interactive-player.d.ts +11 -0
- package/dist/projects/player/src/players/player.d.ts +15 -0
- package/dist/projects/player/src/plugins/clip-plugin/clip-plugin.d.ts +50 -0
- package/dist/projects/player/src/plugins/create-clip-plugin/components/clip-timepoint-selector/clip-timepoint-selector-handle.d.ts +54 -0
- package/dist/projects/player/src/plugins/create-clip-plugin/components/clip-timepoint-selector/clip-timepoint-selector.d.ts +89 -0
- package/dist/projects/player/src/plugins/create-clip-plugin/components/create-clip-seek-bar/create-clip-seek-bar.d.ts +14 -0
- package/dist/projects/player/src/plugins/create-clip-plugin/create-clip-plugin.d.ts +14 -0
- package/dist/projects/player/src/plugins/example-plugin/components/example-button/example-button.d.ts +1 -0
- package/dist/projects/player/src/plugins/example-plugin/components/example-react-button/example-react-button.d.ts +1 -0
- package/dist/projects/player/src/plugins/example-plugin/example-plugin.d.ts +2 -0
- package/dist/projects/player/src/plugins/fullscreen-on-rotate-plugin/fullscreen-on-rotate-plugin.d.ts +1 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/create-components/create-components.d.ts +4 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/create-components/create-short-answer.ts/create-short-answer.d.ts +10 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/create-components/create-type-selector/create-type-selector.d.ts +8 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/feedback/feedback.d.ts +7 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/incomplete-alert/incomplete-alert.d.ts +2 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/interactive/interactive-component.d.ts +1 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/seek-bar/interactive-bar-item.d.ts +21 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/seek-bar/interactive-bar-items.d.ts +66 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/timepoint/timepoint-component.d.ts +21 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/view-components/annotation/annotation-interaction.d.ts +3 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/view-components/image/image-interaction.d.ts +4 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/view-components/missing-word/missing-word-interaction.d.ts +9 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/view-components/multiple-choice/multiple-choice-interaction.d.ts +10 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/view-components/short-answer/short-answer-interaction.d.ts +9 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/view-components/view-components.d.ts +4 -0
- package/dist/projects/player/src/plugins/interactive-plugin/components/view-components/view-interaction-heading/view-interaction-heading.d.ts +8 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interactive-plugin.d.ts +1 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interfaces/InteractionComponent.d.ts +3 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interfaces/InteractionProps.d.ts +8 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interfaces/InteractiveMode.d.ts +4 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interfaces/SubmissionFunction.d.ts +2 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interfaces/ValidationFunction.d.ts +2 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interfaces/index.d.ts +6 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interfaces/models/ActionableItem.d.ts +6 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interfaces/models/Interaction.d.ts +14 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interfaces/models/InteractionType.d.ts +7 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interfaces/models/InteractionTypeId.d.ts +8 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interfaces/models/Interactive.d.ts +7 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interfaces/models/Timepoint.d.ts +9 -0
- package/dist/projects/player/src/plugins/interactive-plugin/interfaces/models/index.d.ts +6 -0
- package/dist/projects/player/src/plugins/interactive-plugin/utils/getInteractionComponents.d.ts +2 -0
- package/dist/projects/player/src/plugins/interactive-plugin/utils/getInteractionStateId.d.ts +2 -0
- package/dist/projects/player/src/plugins/interactive-plugin/utils/getSubmissionFunction.d.ts +2 -0
- package/dist/projects/player/src/plugins/interactive-plugin/utils/getTimepointStateId.d.ts +2 -0
- package/dist/projects/player/src/plugins/interactive-plugin/utils/getValidationFunction.d.ts +2 -0
- package/dist/projects/player/src/plugins/interactive-plugin/utils/useInteractiveTrack.d.ts +17 -0
- package/dist/projects/player/src/plugins/open-externally-plugin/components/open-externally-button.d.ts +1 -0
- package/dist/projects/player/src/plugins/open-externally-plugin/interfaces/ExternalLinkOptions.d.ts +3 -0
- package/dist/projects/player/src/plugins/open-externally-plugin/open-externally-plugin.d.ts +1 -0
- package/dist/projects/player/src/plugins/persist-volume-plugin/persist-volume-plugin.d.ts +1 -0
- package/dist/projects/player/src/plugins/persist-volume-plugin/persist-volume-plugin.test.d.ts +1 -0
- package/dist/projects/player/src/plugins/progress-reporter-plugin/progress-reporter-plugin.d.ts +9 -0
- package/dist/projects/player/src/plugins/progressive-files-plugin/ProgressiveFilesPluginOptions.d.ts +4 -0
- package/dist/projects/player/src/plugins/progressive-files-plugin/ProgressiveRepresentation.d.ts +10 -0
- package/dist/projects/player/src/plugins/progressive-files-plugin/interfaces/Source.d.ts +6 -0
- package/dist/projects/player/src/plugins/progressive-files-plugin/progressive-files-plugin.d.ts +38 -0
- package/dist/projects/player/src/plugins/touch-controls-plugin/components/touch-controls/touch-controls.d.ts +59 -0
- package/dist/projects/player/src/plugins/touch-controls-plugin/touch-controls-plugin.d.ts +1 -0
- package/dist/projects/player/src/react/CreateClipPlayer.d.ts +3 -0
- package/dist/projects/player/src/react/EmbeddedPlayer.d.ts +7 -0
- package/dist/projects/player/src/react/InteractivePlayer.d.ts +9 -0
- package/dist/projects/player/src/react/Player.d.ts +8 -0
- package/dist/projects/player/src/react/react-component.d.ts +56 -0
- package/dist/projects/player/src/services/analytics-service.d.ts +15 -0
- package/dist/projects/player/src/utils/ajax-helper.d.ts +6 -0
- package/dist/projects/player/src/utils/fn.d.ts +14 -0
- package/dist/projects/player/src/utils/formatTime.d.ts +5 -0
- package/dist/projects/player/src/utils/hotkeys.d.ts +5 -0
- package/dist/projects/player/src/utils/scrollbar-helper.d.ts +6 -0
- package/dist/projects/player/src/utils/track-helper.d.ts +7 -0
- package/dist/projects/player/test/players/test-player.d.ts +17 -0
- package/dist/projects/player/test/setupTests.d.ts +0 -0
- package/dist/projects/player/test/utils/test-helpers.d.ts +8 -0
- package/jest.config.js +13 -0
- package/package.json +58 -0
- package/test/players/test-player.ts +31 -0
- package/test/setupTests.ts +8 -0
- package/test/utils/test-helpers.ts +22 -0
- package/tooling/externals.js +56 -0
- package/tooling/font-webpack.config.js +44 -0
- package/typings/libs/videojs-contrib-quality-levels.d.ts +29 -0
- package/typings/utils/imports.d.ts +12 -0
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const custom = require('../tooling/webpack.config');
|
|
2
|
+
|
|
3
|
+
module.exports = {
|
|
4
|
+
stories: [
|
|
5
|
+
'./**/*.stories.@(js|jsx|ts|tsx)'
|
|
6
|
+
],
|
|
7
|
+
webpackFinal: (config) => {
|
|
8
|
+
return {
|
|
9
|
+
...config,
|
|
10
|
+
context: custom.context,
|
|
11
|
+
module: {
|
|
12
|
+
...config.module,
|
|
13
|
+
rules: custom.module.rules
|
|
14
|
+
},
|
|
15
|
+
plugins: [
|
|
16
|
+
...config.plugins,
|
|
17
|
+
...custom.plugins
|
|
18
|
+
]
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ClickViewPlayer } from '../../src/index';
|
|
3
|
+
import { mockplayerApi } from './utils/mock-playerapi';
|
|
4
|
+
import { mockSetups } from './utils/mock-setup';
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: 'Base'
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export const Default = () =>
|
|
11
|
+
<ClickViewPlayer viewKey='basic' fetch={mockplayerApi} />;
|
|
12
|
+
|
|
13
|
+
Default.storyName = 'Default';
|
|
14
|
+
|
|
15
|
+
export const Chapters = () =>
|
|
16
|
+
<ClickViewPlayer viewKey='chapters' fetch={mockplayerApi} />;
|
|
17
|
+
|
|
18
|
+
Chapters.storyName = 'Chapters';
|
|
19
|
+
|
|
20
|
+
export const Thumbnails = () =>
|
|
21
|
+
<ClickViewPlayer viewKey='chapters' fetch={mockplayerApi} setup={mockSetups.thumbnails} />;
|
|
22
|
+
|
|
23
|
+
Thumbnails.storyName = 'Thumbnails';
|
|
24
|
+
|
|
25
|
+
export const Vertical = () => (
|
|
26
|
+
<div style={{ width: '300px' }}>
|
|
27
|
+
<ClickViewPlayer viewKey='vertical' fetch={mockplayerApi} />
|
|
28
|
+
</div>
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
Vertical.storyName = 'Vertical';
|
|
32
|
+
|
|
33
|
+
export const NoControls = () =>
|
|
34
|
+
<ClickViewPlayer viewKey='basic' fetch={mockplayerApi} controls={false} />;
|
|
35
|
+
|
|
36
|
+
NoControls.storyName = 'No Controls';
|
|
37
|
+
|
|
38
|
+
export const OpenExternally = () =>
|
|
39
|
+
<ClickViewPlayer
|
|
40
|
+
viewKey='basic'
|
|
41
|
+
fetch={mockplayerApi}
|
|
42
|
+
getExternalLink={(options: any) => `https://online.clickview.com.au/share?sharecode=1ef15209&t=${options.currentTime}`}
|
|
43
|
+
/>;
|
|
44
|
+
|
|
45
|
+
OpenExternally.storyName = 'Open Externally';
|
|
46
|
+
|
|
47
|
+
export const Error = () =>
|
|
48
|
+
<ClickViewPlayer viewKey='error' fetch={mockplayerApi} />;
|
|
49
|
+
|
|
50
|
+
export const PlayerApi = () =>
|
|
51
|
+
<ClickViewPlayer viewKey='camwashere' />;
|
|
52
|
+
|
|
53
|
+
PlayerApi.storyName = 'Player API';
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* This story uses an intentionally invalid viewKey.
|
|
57
|
+
*/
|
|
58
|
+
export const PlayerApiError = () =>
|
|
59
|
+
<ClickViewPlayer viewKey='camwashere_error' />;
|
|
60
|
+
|
|
61
|
+
PlayerApiError.storyName = 'Player API Error';
|
|
62
|
+
|
|
63
|
+
export const MultipleQualities = () =>
|
|
64
|
+
<ClickViewPlayer viewKey='multipleQualities' fetch={mockplayerApi} />;
|
|
65
|
+
|
|
66
|
+
export const Poster = () =>
|
|
67
|
+
<ClickViewPlayer viewKey='poster' fetch={mockplayerApi} />;
|
|
68
|
+
|
|
69
|
+
export const Everything = () =>
|
|
70
|
+
<ClickViewPlayer
|
|
71
|
+
viewKey='everything'
|
|
72
|
+
fetch={mockplayerApi}
|
|
73
|
+
setup={mockSetups.everything}
|
|
74
|
+
getExternalLink={(options: any) => `https://online.clickview.com.au/share?sharecode=1ef15209&t=${options.currentTime}`}
|
|
75
|
+
/>;
|
|
76
|
+
|
|
77
|
+
export const StyleGuideline = () => {
|
|
78
|
+
const [ hidden, setHidden ] = React.useState(false);
|
|
79
|
+
|
|
80
|
+
function onClick(): void {
|
|
81
|
+
setHidden(!hidden);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return (
|
|
85
|
+
<div
|
|
86
|
+
style={{
|
|
87
|
+
width: '1100px',
|
|
88
|
+
height: '619px',
|
|
89
|
+
position: 'relative'
|
|
90
|
+
}}
|
|
91
|
+
>
|
|
92
|
+
<div
|
|
93
|
+
style={{
|
|
94
|
+
position: 'absolute',
|
|
95
|
+
top: '0px',
|
|
96
|
+
left: '0px',
|
|
97
|
+
right: '0px',
|
|
98
|
+
bottom: '0px',
|
|
99
|
+
backgroundImage: 'url(https://i.imgur.com/nqKupnk.png)',
|
|
100
|
+
zIndex: 2,
|
|
101
|
+
display: hidden ? 'none' : 'block'
|
|
102
|
+
}}
|
|
103
|
+
></div>
|
|
104
|
+
<div style={{ position: 'relative', zIndex: 1 }}>
|
|
105
|
+
<ClickViewPlayer
|
|
106
|
+
viewKey='everything'
|
|
107
|
+
fetch={mockplayerApi}
|
|
108
|
+
setup={mockSetups.everything}
|
|
109
|
+
/>
|
|
110
|
+
</div>
|
|
111
|
+
|
|
112
|
+
<button onClick={onClick}>Toggle</button>
|
|
113
|
+
</div>
|
|
114
|
+
)
|
|
115
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ClickViewPlayer, ClickViewCreateClipPlayer } from '../../src/index';
|
|
3
|
+
import { mockplayerApi } from './utils/mock-playerapi';
|
|
4
|
+
import { mockSetups } from './utils/mock-setup';
|
|
5
|
+
|
|
6
|
+
interface ClipFormProps {
|
|
7
|
+
startTime?: number;
|
|
8
|
+
endTime?: number;
|
|
9
|
+
minDuration?: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function ClipForm(props: ClipFormProps): JSX.Element {
|
|
13
|
+
const [ startTime, setStartTime ] = React.useState(props.startTime);
|
|
14
|
+
const [ endTime, setEndTime ] = React.useState(props.endTime);
|
|
15
|
+
|
|
16
|
+
const getInputValue = (time?: number) => {
|
|
17
|
+
return isNaN(time)
|
|
18
|
+
? ''
|
|
19
|
+
: time;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<>
|
|
24
|
+
<ClickViewCreateClipPlayer
|
|
25
|
+
viewKey='basic'
|
|
26
|
+
fetch={mockplayerApi}
|
|
27
|
+
startTime={startTime}
|
|
28
|
+
onChangeStartTime={setStartTime}
|
|
29
|
+
endTime={endTime}
|
|
30
|
+
onChangeEndTime={setEndTime}
|
|
31
|
+
minDuration={props.minDuration}
|
|
32
|
+
/>
|
|
33
|
+
<div style={{ marginTop: '15px' }}>
|
|
34
|
+
<label>Start Time (s)</label>
|
|
35
|
+
<input type='number' value={getInputValue(startTime)} onChange={e => setStartTime(+e.target.value)} />
|
|
36
|
+
<label>End Time (s)</label>
|
|
37
|
+
<input type='number' value={getInputValue(endTime)} onChange={e => setEndTime(+e.target.value)} />
|
|
38
|
+
<label>Duration (s)</label>
|
|
39
|
+
<input type='number' value={getInputValue(endTime - startTime)} readOnly />
|
|
40
|
+
</div>
|
|
41
|
+
</>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export default {
|
|
46
|
+
title: 'Clips'
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export const ClipPlayback = () =>
|
|
50
|
+
<ClickViewPlayer viewKey='basic' fetch={mockplayerApi} setup={mockSetups.clipPlayback} />;
|
|
51
|
+
|
|
52
|
+
ClipPlayback.storyName = 'Clip Playback';
|
|
53
|
+
|
|
54
|
+
export const CreateClip = () => <ClipForm />;
|
|
55
|
+
|
|
56
|
+
CreateClip.storyName = 'Create Clip';
|
|
57
|
+
|
|
58
|
+
export const EditClip = () => <ClipForm startTime={100} endTime={200} />;
|
|
59
|
+
|
|
60
|
+
EditClip.storyName = 'Edit Clip';
|
|
61
|
+
|
|
62
|
+
export const MinDurationClip = () => <ClipForm minDuration={30} />;
|
|
63
|
+
|
|
64
|
+
MinDurationClip.storyName = 'Create Clip with 30s min duration';
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ClickViewInteractivePlayer, InteractivePlayer } from '../../src/index';
|
|
3
|
+
import { InteractiveMode } from '../../src/plugins/interactive-plugin/interfaces';
|
|
4
|
+
import { mockplayerApi } from './utils/mock-playerapi';
|
|
5
|
+
|
|
6
|
+
export default {
|
|
7
|
+
title: 'Interactives'
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export const Default = () =>
|
|
11
|
+
<ClickViewInteractivePlayer viewKey='basic' fetch={mockplayerApi} />;
|
|
12
|
+
|
|
13
|
+
export const Create = () =>
|
|
14
|
+
<ClickViewInteractivePlayer
|
|
15
|
+
viewKey='basic'
|
|
16
|
+
fetch={mockplayerApi}
|
|
17
|
+
mode={InteractiveMode.Create} />;
|
|
18
|
+
|
|
19
|
+
export const Annotation = () => {
|
|
20
|
+
function onReady(player: InteractivePlayer): void {
|
|
21
|
+
player.currentTime(15);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return <ClickViewInteractivePlayer onReady={onReady} viewKey='basic' fetch={mockplayerApi} autoplay={true} />;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export const ShortAnswer = () => {
|
|
28
|
+
function onReady(player: InteractivePlayer): void {
|
|
29
|
+
player.currentTime(13);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return <ClickViewInteractivePlayer onReady={onReady} viewKey='basic' fetch={mockplayerApi} autoplay={true} />;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export const Image = () => {
|
|
36
|
+
function onReady(player: InteractivePlayer): void {
|
|
37
|
+
player.currentTime(17);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return <ClickViewInteractivePlayer onReady={onReady} viewKey='basic' fetch={mockplayerApi} autoplay={true} />;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export const TrueOrFalse = () => {
|
|
44
|
+
function onReady(player: InteractivePlayer): void {
|
|
45
|
+
player.currentTime(5);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return <ClickViewInteractivePlayer onReady={onReady} viewKey='basic' fetch={mockplayerApi} autoplay={true} />;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const MultipleChoice = () => {
|
|
52
|
+
function onReady(player: InteractivePlayer): void {
|
|
53
|
+
player.currentTime(7);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return <ClickViewInteractivePlayer onReady={onReady} viewKey='basic' fetch={mockplayerApi} autoplay={true} />;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export const MissingWord = () => {
|
|
60
|
+
function onReady(player: InteractivePlayer): void {
|
|
61
|
+
player.currentTime(9);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return <ClickViewInteractivePlayer onReady={onReady} viewKey='basic' fetch={mockplayerApi} autoplay={true} />;
|
|
65
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ClickViewPlayer } from '../../src/index';
|
|
3
|
+
import { mockplayerApi } from './utils/mock-playerapi';
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: 'Subtitles'
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export const SingleTrack = () =>
|
|
10
|
+
<ClickViewPlayer viewKey='basic' fetch={mockplayerApi} />;
|
|
11
|
+
|
|
12
|
+
SingleTrack.storyName = 'Single Track';
|
|
13
|
+
|
|
14
|
+
export const MultipleTracksWithDefault = () =>
|
|
15
|
+
<ClickViewPlayer viewKey='multipleTracksWithDefault' fetch={mockplayerApi} />;
|
|
16
|
+
|
|
17
|
+
MultipleTracksWithDefault.storyName = 'Multiple Tracks with default';
|
|
18
|
+
|
|
19
|
+
export const MultipleTracks = () =>
|
|
20
|
+
<ClickViewPlayer viewKey='multipleSubtitles' fetch={mockplayerApi} />;
|
|
21
|
+
|
|
22
|
+
MultipleTracks.storyName = 'Multiple Tracks';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
WEBVTT
|
|
2
|
+
|
|
3
|
+
00:00.000 --> 00:05.000
|
|
4
|
+
Waves
|
|
5
|
+
|
|
6
|
+
00:05.000 --> 00:11.000
|
|
7
|
+
Some More Waves
|
|
8
|
+
|
|
9
|
+
00:11.000 --> 00:13.000
|
|
10
|
+
Waves hitting Rocks
|
|
11
|
+
|
|
12
|
+
00:13.000 --> 00:20.000
|
|
13
|
+
Rocky Rocks
|
|
14
|
+
|
|
15
|
+
00:20.000 --> 00:26.000
|
|
16
|
+
More Rocks
|
|
17
|
+
|
|
18
|
+
00:26.000 --> 00:28.000
|
|
19
|
+
End of waves
|