@desynova-digital/player 4.0.1 → 4.0.2
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/Manager.js +99 -0
- package/actions/player.js +331 -0
- package/actions/video.js +206 -0
- package/{utils/colors.js → colors.js} +1 -2
- package/{media → components}/AudioMeter.js +96 -109
- package/components/BigPlayButton.js +84 -0
- package/components/ImageViewer.js +272 -0
- package/{control → components}/MarkerBar.js +33 -24
- package/{utils → components}/Menu.js +13 -4
- package/components/Player.js +706 -0
- package/{header/Header.js → components/PlayerHeader.js} +104 -78
- package/components/Playlist.js +95 -0
- package/{control → components}/PointersBar.js +122 -61
- package/components/PosterImage.js +50 -0
- package/{media → components}/SDOutline.js +13 -49
- package/components/Shortcut.js +821 -0
- package/{control → components}/Slider.js +27 -23
- package/components/TagsBar.js +81 -0
- package/components/Video.js +1280 -0
- package/{control → components/control-bar}/AudioTracksMenuButton.js +32 -28
- package/components/control-bar/CameraButton.js +75 -0
- package/components/control-bar/CommentsButton.js +186 -0
- package/components/control-bar/ControlBar.js +266 -0
- package/components/control-bar/EditorControlMenuButton.js +317 -0
- package/components/control-bar/ForwardControl.js +12 -0
- package/components/control-bar/ForwardReplayControl.js +106 -0
- package/{control → components/control-bar}/FullscreenToggle.js +26 -21
- package/components/control-bar/PlayToggle.js +85 -0
- package/components/control-bar/ReplayControl.js +12 -0
- package/components/control-bar/SettingsMenuButton.js +41 -0
- package/components/control-bar/SubtitleLanguagesMenuButton.js +149 -0
- package/components/control-bar/SubtitleMovementMenu.js +140 -0
- package/{control/VolumneMenuButton.js → components/control-bar/VolumeMenuButton.js} +26 -27
- package/components/control-bar/ZoomMenuButton.js +90 -0
- package/{control → components/marking-controls}/MarkInControl.js +32 -25
- package/{control → components/marking-controls}/MarkOutControl.js +35 -26
- package/components/marking-controls/MarkingAddButton.js +79 -0
- package/components/marking-controls/MarkingControl.js +95 -0
- package/components/marking-controls/MarkingDeleteButton.js +70 -0
- package/{control → components/marking-controls}/MarkingDuration.js +12 -5
- package/components/marking-controls/MarkingPreview.js +72 -0
- package/components/progress-bar/AudioWaveform.js +126 -0
- package/components/progress-bar/LoadProgressBar.js +67 -0
- package/components/progress-bar/MouseTimeDisplay.js +36 -0
- package/{control → components/progress-bar}/PlayProgressBar.js +4 -4
- package/components/progress-bar/ProgressControl.js +186 -0
- package/{control → components/progress-bar}/SeekBar.js +113 -72
- package/{control → components/progress-bar}/Timeline.js +43 -32
- package/{control/PlayBackRateControl.js → components/settings-menu-control/PlaybackRateControl.js} +44 -30
- package/components/settings-menu-control/SafeAreaControl.js +81 -0
- package/components/settings-menu-control/SettingsMenu.js +56 -0
- package/components/settings-menu-control/SubtitleControl.js +1 -0
- package/components/time-controls/CurrentTimeDisplay.js +83 -0
- package/{control → components/time-controls}/DurationDisplay.js +8 -15
- package/components/time-controls/TimeDivider.js +25 -0
- package/{control → components/volume-control}/VolumeBar.js +62 -80
- package/components/volume-control/VolumeControl.js +19 -0
- package/{control → components/volume-control}/VolumeLevel.js +2 -3
- package/components/zoom-control/ZoomBar.js +155 -0
- package/components/zoom-control/ZoomLevel.js +55 -0
- package/index.js +198 -1
- package/package.json +5 -8
- package/reducers/index.js +19 -0
- package/reducers/operation.js +35 -0
- package/reducers/player.js +222 -0
- package/utils/browser.js +30 -0
- package/utils/dom.js +1 -2
- package/utils/fullscreen.js +72 -0
- package/utils/index.js +156 -57
- package/Player.js +0 -945
- package/control/AudioTracksMenuButton.jsx +0 -80
- package/control/ControlBar.js +0 -303
- package/control/ControlBar.jsx +0 -264
- package/control/CurrentTimeDisplay.js +0 -34
- package/control/CurrentTimeDisplay.jsx +0 -35
- package/control/DurationDisplay.jsx +0 -48
- package/control/ForwardBackwardControl.js +0 -76
- package/control/ForwardBackwardControl.jsx +0 -79
- package/control/FullscreenToggle.jsx +0 -83
- package/control/MarkInControl.jsx +0 -109
- package/control/MarkOutControl.jsx +0 -131
- package/control/MarkerBar.jsx +0 -107
- package/control/MarkingControl.js +0 -82
- package/control/MarkingControl.jsx +0 -143
- package/control/MarkingPreview.js +0 -49
- package/control/MarkingPreview.jsx +0 -60
- package/control/PlayBackRateControl.jsx +0 -106
- package/control/PlayProgressBar.jsx +0 -92
- package/control/PlayToggle.js +0 -56
- package/control/PlayToggle.jsx +0 -57
- package/control/PointersBar.jsx +0 -286
- package/control/ProgressControl.js +0 -127
- package/control/ProgressControl.jsx +0 -155
- package/control/SeekBar.jsx +0 -229
- package/control/SettingsMenuButton.js +0 -63
- package/control/SettingsMenuButton.jsx +0 -69
- package/control/Slider.jsx +0 -243
- package/control/Timeline.jsx +0 -131
- package/control/VolumeBar.jsx +0 -174
- package/control/VolumeLevel.jsx +0 -66
- package/control/VolumneMenuButton.jsx +0 -111
- package/header/Header.jsx +0 -479
- package/media/AudioMeter.jsx +0 -411
- package/media/SDOutline.jsx +0 -90
- package/media/Video.js +0 -684
- package/media/Video.jsx +0 -714
- package/playlist/Playlist.js +0 -67
- package/playlist/Playlist.jsx +0 -91
- package/playlist/index.js +0 -13
- package/shortcuts/Shortcut.js +0 -662
- package/utils/Menu.jsx +0 -105
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = MarkingControl;
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
|
-
var _propTypes = require("prop-types");
|
|
10
|
-
var _MarkInControl = _interopRequireDefault(require("./MarkInControl"));
|
|
11
|
-
var _MarkOutControl = _interopRequireDefault(require("./MarkOutControl"));
|
|
12
|
-
var _MarkingPreview = _interopRequireDefault(require("./MarkingPreview"));
|
|
13
|
-
var _MarkingDuration = _interopRequireDefault(require("./MarkingDuration"));
|
|
14
|
-
var _templateObject;
|
|
15
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
16
|
-
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
17
|
-
var propTypes = {
|
|
18
|
-
frameRate: _propTypes.PropTypes.number,
|
|
19
|
-
player: _propTypes.PropTypes.instanceOf(Object),
|
|
20
|
-
actions: _propTypes.PropTypes.instanceOf(Object),
|
|
21
|
-
markers: _propTypes.PropTypes.instanceOf(Object),
|
|
22
|
-
controlType: _propTypes.PropTypes.string,
|
|
23
|
-
playerType: _propTypes.PropTypes.oneOf(['dubbing_review', 'clipping_default', 'default', 'tagging', 'qc', 'subtitle', 'snp_edit', 'archive', 'restore', 'clipping', 'storyboard', 'panel']),
|
|
24
|
-
onAddMarker: _propTypes.PropTypes.func,
|
|
25
|
-
onMarkerSelect: _propTypes.PropTypes.func,
|
|
26
|
-
onDeleteMarker: _propTypes.PropTypes.func,
|
|
27
|
-
initialTime: _propTypes.PropTypes.number,
|
|
28
|
-
allowMarkerOverlap: _propTypes.PropTypes.bool
|
|
29
|
-
};
|
|
30
|
-
var defaultProps = {
|
|
31
|
-
frameRate: 0,
|
|
32
|
-
player: {},
|
|
33
|
-
actions: {}
|
|
34
|
-
};
|
|
35
|
-
var MarkingBlock = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n min-width: 300px;\n margin: 0 15px;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n"])));
|
|
36
|
-
function MarkingControl(_ref) {
|
|
37
|
-
var player = _ref.player,
|
|
38
|
-
frameRate = _ref.frameRate,
|
|
39
|
-
initialTime = _ref.initialTime,
|
|
40
|
-
actionClick = _ref.actionClick,
|
|
41
|
-
onAddMarker = _ref.onAddMarker,
|
|
42
|
-
onMarkerSelect = _ref.onMarkerSelect,
|
|
43
|
-
onDeleteMarker = _ref.onDeleteMarker,
|
|
44
|
-
markers = _ref.markers,
|
|
45
|
-
controlType = _ref.controlType,
|
|
46
|
-
playerType = _ref.playerType,
|
|
47
|
-
allowMarkerOverlap = _ref.allowMarkerOverlap,
|
|
48
|
-
playerReadOnlyMode = _ref.playerReadOnlyMode,
|
|
49
|
-
_ref$disablePlayerAct = _ref.disablePlayerActions,
|
|
50
|
-
disablePlayerActions = _ref$disablePlayerAct === void 0 ? [] : _ref$disablePlayerAct,
|
|
51
|
-
playerSelectedMarker = _ref.playerSelectedMarker,
|
|
52
|
-
currentTime = _ref.currentTime;
|
|
53
|
-
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, playerType !== 'panel' && playerType !== 'default' && playerType !== 'clipping_default' ? /*#__PURE__*/_react["default"].createElement(MarkingBlock, null, (!(playerSelectedMarker.leftMarker > -1) || !(playerSelectedMarker.rightMarker > -1)) && playerType !== 'panel' && playerType !== 'default' && playerType !== 'clipping_default' && !playerReadOnlyMode && !disablePlayerActions.includes('marking_controls') ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_MarkInControl["default"], {
|
|
54
|
-
leftMarker: playerSelectedMarker.leftMarker,
|
|
55
|
-
currentTime: currentTime,
|
|
56
|
-
actionClick: actionClick,
|
|
57
|
-
markers: markers,
|
|
58
|
-
allowMarkerOverlap: allowMarkerOverlap,
|
|
59
|
-
onAddMarker: onAddMarker
|
|
60
|
-
}), /*#__PURE__*/_react["default"].createElement(_MarkOutControl["default"], {
|
|
61
|
-
leftMarker: playerSelectedMarker.leftMarker,
|
|
62
|
-
currentTime: currentTime,
|
|
63
|
-
rightMarker: playerSelectedMarker.rightMarker,
|
|
64
|
-
actionClick: actionClick,
|
|
65
|
-
markers: markers,
|
|
66
|
-
controlType: controlType,
|
|
67
|
-
onMarkerSelect: onMarkerSelect,
|
|
68
|
-
allowMarkerOverlap: allowMarkerOverlap,
|
|
69
|
-
onAddMarker: onAddMarker
|
|
70
|
-
})) : null, playerSelectedMarker.leftMarker > -1 || playerSelectedMarker.rightMarker > -1 ? /*#__PURE__*/_react["default"].createElement(_MarkingDuration["default"], {
|
|
71
|
-
leftMarker: playerSelectedMarker.leftMarker,
|
|
72
|
-
rightMarker: playerSelectedMarker.rightMarker,
|
|
73
|
-
frameRate: frameRate,
|
|
74
|
-
initialTime: initialTime
|
|
75
|
-
}) : null, playerSelectedMarker.leftMarker > -1 && playerSelectedMarker.rightMarker > -1 ? /*#__PURE__*/_react["default"].createElement(_MarkingPreview["default"], {
|
|
76
|
-
actionClick: actionClick,
|
|
77
|
-
leftMarker: playerSelectedMarker.leftMarker
|
|
78
|
-
}) : null) : null);
|
|
79
|
-
}
|
|
80
|
-
MarkingControl.propTypes = propTypes;
|
|
81
|
-
MarkingControl.defaultProps = defaultProps;
|
|
82
|
-
MarkingControl.displayName = 'MarkingControl';
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import styled from 'styled-components';
|
|
3
|
-
import { PropTypes } from 'prop-types';
|
|
4
|
-
|
|
5
|
-
import MarkInControl from './MarkInControl';
|
|
6
|
-
import MarkOutControl from './MarkOutControl';
|
|
7
|
-
// import MarkingAddButton from './MarkingAddButton';
|
|
8
|
-
// import MarkingDeleteButton from './MarkingDeleteButton';
|
|
9
|
-
import MarkingPreviewButton from './MarkingPreview';
|
|
10
|
-
import MarkingDuration from './MarkingDuration';
|
|
11
|
-
|
|
12
|
-
const propTypes = {
|
|
13
|
-
frameRate: PropTypes.number,
|
|
14
|
-
player: PropTypes.instanceOf(Object),
|
|
15
|
-
actions: PropTypes.instanceOf(Object),
|
|
16
|
-
markers: PropTypes.instanceOf(Object),
|
|
17
|
-
controlType: PropTypes.string,
|
|
18
|
-
playerType: PropTypes.oneOf([
|
|
19
|
-
'dubbing_review',
|
|
20
|
-
'clipping_default',
|
|
21
|
-
'default',
|
|
22
|
-
'tagging',
|
|
23
|
-
'qc',
|
|
24
|
-
'subtitle',
|
|
25
|
-
'snp_edit',
|
|
26
|
-
'archive',
|
|
27
|
-
'restore',
|
|
28
|
-
'clipping',
|
|
29
|
-
'storyboard',
|
|
30
|
-
'panel'
|
|
31
|
-
]),
|
|
32
|
-
onAddMarker: PropTypes.func,
|
|
33
|
-
onMarkerSelect: PropTypes.func,
|
|
34
|
-
onDeleteMarker: PropTypes.func,
|
|
35
|
-
initialTime: PropTypes.number,
|
|
36
|
-
allowMarkerOverlap: PropTypes.bool
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
const defaultProps = {
|
|
40
|
-
frameRate: 0,
|
|
41
|
-
player: {},
|
|
42
|
-
actions: {}
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
const MarkingBlock = styled.div`
|
|
46
|
-
min-width: 300px;
|
|
47
|
-
margin: 0 15px;
|
|
48
|
-
display: flex;
|
|
49
|
-
justify-content: flex-start;
|
|
50
|
-
align-items: center;
|
|
51
|
-
`;
|
|
52
|
-
|
|
53
|
-
export default function MarkingControl({
|
|
54
|
-
player,
|
|
55
|
-
frameRate,
|
|
56
|
-
initialTime,
|
|
57
|
-
actionClick,
|
|
58
|
-
onAddMarker,
|
|
59
|
-
onMarkerSelect,
|
|
60
|
-
onDeleteMarker,
|
|
61
|
-
markers,
|
|
62
|
-
controlType,
|
|
63
|
-
playerType,
|
|
64
|
-
allowMarkerOverlap,
|
|
65
|
-
playerReadOnlyMode,
|
|
66
|
-
disablePlayerActions = [],
|
|
67
|
-
playerSelectedMarker,
|
|
68
|
-
currentTime
|
|
69
|
-
}) {
|
|
70
|
-
return (
|
|
71
|
-
<React.Fragment>
|
|
72
|
-
{playerType !== 'panel' && playerType !== 'default' && playerType !== 'clipping_default' ? (
|
|
73
|
-
<MarkingBlock>
|
|
74
|
-
{(!(playerSelectedMarker.leftMarker > -1) || !(playerSelectedMarker.rightMarker > -1)) &&
|
|
75
|
-
playerType !== 'panel' &&
|
|
76
|
-
playerType !== 'default' &&
|
|
77
|
-
playerType !== 'clipping_default' &&
|
|
78
|
-
!playerReadOnlyMode &&
|
|
79
|
-
!disablePlayerActions.includes('marking_controls') ? (
|
|
80
|
-
<React.Fragment>
|
|
81
|
-
<MarkInControl
|
|
82
|
-
leftMarker={playerSelectedMarker.leftMarker}
|
|
83
|
-
currentTime={currentTime}
|
|
84
|
-
actionClick={actionClick}
|
|
85
|
-
markers={markers}
|
|
86
|
-
allowMarkerOverlap={allowMarkerOverlap}
|
|
87
|
-
onAddMarker={onAddMarker}
|
|
88
|
-
/>
|
|
89
|
-
<MarkOutControl
|
|
90
|
-
leftMarker={playerSelectedMarker.leftMarker}
|
|
91
|
-
currentTime={currentTime}
|
|
92
|
-
rightMarker={playerSelectedMarker.rightMarker}
|
|
93
|
-
actionClick={actionClick}
|
|
94
|
-
markers={markers}
|
|
95
|
-
controlType={controlType}
|
|
96
|
-
onMarkerSelect={onMarkerSelect}
|
|
97
|
-
allowMarkerOverlap={allowMarkerOverlap}
|
|
98
|
-
onAddMarker={onAddMarker}
|
|
99
|
-
/>
|
|
100
|
-
</React.Fragment>
|
|
101
|
-
) : null}
|
|
102
|
-
{playerSelectedMarker.leftMarker > -1 || playerSelectedMarker.rightMarker > -1 ? (
|
|
103
|
-
<MarkingDuration
|
|
104
|
-
leftMarker={playerSelectedMarker.leftMarker}
|
|
105
|
-
rightMarker={playerSelectedMarker.rightMarker}
|
|
106
|
-
frameRate={frameRate}
|
|
107
|
-
initialTime={initialTime}
|
|
108
|
-
/>
|
|
109
|
-
) : null}
|
|
110
|
-
{/* //Commented for CN-632.
|
|
111
|
-
{player.leftMarker > -1 && player.rightMarker > -1 ? (
|
|
112
|
-
<React.Fragment>
|
|
113
|
-
{player.markerType === 'create' &&
|
|
114
|
-
controlType === 'advanced' &&
|
|
115
|
-
player.markerCreate ? (
|
|
116
|
-
<MarkingAddButton
|
|
117
|
-
leftMarker={player.leftMarker}
|
|
118
|
-
rightMarker={player.rightMarker}
|
|
119
|
-
onAddMarker={onAddMarker}
|
|
120
|
-
actions={actions}
|
|
121
|
-
/>
|
|
122
|
-
) : null}
|
|
123
|
-
</React.Fragment>
|
|
124
|
-
) : null} */}
|
|
125
|
-
{playerSelectedMarker.leftMarker > -1 && playerSelectedMarker.rightMarker > -1 ? (
|
|
126
|
-
<MarkingPreviewButton actionClick={actionClick} leftMarker={playerSelectedMarker.leftMarker} />
|
|
127
|
-
) : null}
|
|
128
|
-
{/* {(playerSelectedMarker.leftMarker > -1 || playerSelectedMarker.rightMarker > -1) &&
|
|
129
|
-
playerSelectedMarker.markerType === 'create' &&
|
|
130
|
-
playerSelectedMarker.markerCreate &&
|
|
131
|
-
!playerReadOnlyMode &&
|
|
132
|
-
!disablePlayerActions.includes('marking_controls') ? (
|
|
133
|
-
<MarkingDeleteButton actions={actions} onDeleteMarker={onDeleteMarker} />
|
|
134
|
-
) : null} */}
|
|
135
|
-
</MarkingBlock>
|
|
136
|
-
) : null}
|
|
137
|
-
</React.Fragment>
|
|
138
|
-
);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
MarkingControl.propTypes = propTypes;
|
|
142
|
-
MarkingControl.defaultProps = defaultProps;
|
|
143
|
-
MarkingControl.displayName = 'MarkingControl';
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = void 0;
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
9
|
-
var _propTypes = require("prop-types");
|
|
10
|
-
var _components = require("@desynova-digital/components");
|
|
11
|
-
var _templateObject;
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
|
-
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
14
|
-
var propTypes = {
|
|
15
|
-
actions: _propTypes.PropTypes.instanceOf(Object),
|
|
16
|
-
leftMarker: _propTypes.PropTypes.number
|
|
17
|
-
};
|
|
18
|
-
var PreviewButton = (0, _styledComponents["default"])(_components.Button)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background: transparent;\n border-color: #afb2ba;\n border-width: 1px;\n margin: 0 5px 0 5px;\n &:hover,\n &:focus {\n background: transparent;\n border-color: #afb2ba;\n }\n\n ", " {\n svg path {\n fill: #afb2ba;\n }\n }\n"])), _components.Icon.Element);
|
|
19
|
-
var MarkingPreview = function MarkingPreview(_ref) {
|
|
20
|
-
var actionClick = _ref.actionClick,
|
|
21
|
-
leftMarker = _ref.leftMarker;
|
|
22
|
-
var handleClick = function handleClick() {
|
|
23
|
-
actionClick({
|
|
24
|
-
action: 'seek',
|
|
25
|
-
value: parseFloat(leftMarker)
|
|
26
|
-
});
|
|
27
|
-
actionClick({
|
|
28
|
-
action: 'play'
|
|
29
|
-
});
|
|
30
|
-
actionClick({
|
|
31
|
-
action: 'handle_video_preview',
|
|
32
|
-
value: true
|
|
33
|
-
});
|
|
34
|
-
};
|
|
35
|
-
return /*#__PURE__*/_react["default"].createElement(PreviewButton, {
|
|
36
|
-
display: "rounded",
|
|
37
|
-
appearance: "cta",
|
|
38
|
-
icon: "play",
|
|
39
|
-
iconWidth: 6,
|
|
40
|
-
iconHeight: 8,
|
|
41
|
-
width: 20,
|
|
42
|
-
height: 20,
|
|
43
|
-
onClick: handleClick
|
|
44
|
-
});
|
|
45
|
-
};
|
|
46
|
-
var _default = MarkingPreview;
|
|
47
|
-
exports["default"] = _default;
|
|
48
|
-
MarkingPreview.propTypes = propTypes;
|
|
49
|
-
MarkingPreview.displayName = 'MarkingPreview';
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import styled from 'styled-components';
|
|
3
|
-
import { PropTypes } from 'prop-types';
|
|
4
|
-
import { Button, Icon } from '@desynova-digital/components';
|
|
5
|
-
|
|
6
|
-
const propTypes = {
|
|
7
|
-
actions: PropTypes.instanceOf(Object),
|
|
8
|
-
leftMarker: PropTypes.number
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const PreviewButton = styled(Button)`
|
|
12
|
-
background: transparent;
|
|
13
|
-
border-color: #afb2ba;
|
|
14
|
-
border-width: 1px;
|
|
15
|
-
margin: 0 5px 0 5px;
|
|
16
|
-
&:hover,
|
|
17
|
-
&:focus {
|
|
18
|
-
background: transparent;
|
|
19
|
-
border-color: #afb2ba;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
${Icon.Element} {
|
|
23
|
-
svg path {
|
|
24
|
-
fill: #afb2ba;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
`;
|
|
28
|
-
|
|
29
|
-
const MarkingPreview = ({ actionClick, leftMarker }) => {
|
|
30
|
-
const handleClick = () => {
|
|
31
|
-
actionClick({
|
|
32
|
-
action: 'seek',
|
|
33
|
-
value: parseFloat(leftMarker)
|
|
34
|
-
});
|
|
35
|
-
actionClick({
|
|
36
|
-
action: 'play'
|
|
37
|
-
});
|
|
38
|
-
actionClick({
|
|
39
|
-
action: 'handle_video_preview',
|
|
40
|
-
value: true
|
|
41
|
-
});
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
return (
|
|
45
|
-
<PreviewButton
|
|
46
|
-
display="rounded"
|
|
47
|
-
appearance="cta"
|
|
48
|
-
icon="play"
|
|
49
|
-
iconWidth={6}
|
|
50
|
-
iconHeight={8}
|
|
51
|
-
width={20}
|
|
52
|
-
height={20}
|
|
53
|
-
onClick={handleClick}
|
|
54
|
-
/>
|
|
55
|
-
);
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
export default MarkingPreview;
|
|
59
|
-
MarkingPreview.propTypes = propTypes;
|
|
60
|
-
MarkingPreview.displayName = 'MarkingPreview';
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import React, { Component } from 'react';
|
|
2
|
-
import styled from 'styled-components';
|
|
3
|
-
import { PropTypes } from 'prop-types';
|
|
4
|
-
import { Icon } from '@desynova-digital/components';
|
|
5
|
-
|
|
6
|
-
const propTypes = {
|
|
7
|
-
actions: PropTypes.instanceOf(Object),
|
|
8
|
-
player: PropTypes.instanceOf(Object)
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const PlaybackRateBlock = styled('div')`
|
|
12
|
-
display: block;
|
|
13
|
-
background: transparent;
|
|
14
|
-
font-family: SFUIText-Medium;
|
|
15
|
-
font-size: 12px;
|
|
16
|
-
text-transform: uppercase;
|
|
17
|
-
align-items: center;
|
|
18
|
-
padding: 0 !important;
|
|
19
|
-
.playback-block {
|
|
20
|
-
display: flex;
|
|
21
|
-
justify-content: flex-start;
|
|
22
|
-
border-bottom: 1px solid #eeeeee;
|
|
23
|
-
p {
|
|
24
|
-
margin-left: 10px;
|
|
25
|
-
white-space: nowrap;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
.playback-rate-body {
|
|
29
|
-
padding: 0 !important;
|
|
30
|
-
display: flex;
|
|
31
|
-
justify-content: space-between;
|
|
32
|
-
.playback-rate {
|
|
33
|
-
border-right: 1px solid #eeeeee;
|
|
34
|
-
&:last-child {
|
|
35
|
-
border: none;
|
|
36
|
-
}
|
|
37
|
-
&:hover {
|
|
38
|
-
background: rgba(0, 206, 198, 0.1);
|
|
39
|
-
}
|
|
40
|
-
&.active {
|
|
41
|
-
pointer-events: none;
|
|
42
|
-
color: #00cec6;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
`;
|
|
47
|
-
|
|
48
|
-
export default class PlaybackRateControl extends Component {
|
|
49
|
-
constructor(props) {
|
|
50
|
-
super(props);
|
|
51
|
-
this.changePlaybackRate = this.changePlaybackRate.bind(this);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
changePlaybackRate(playbackRate) {
|
|
55
|
-
const { actionClick } = this.props;
|
|
56
|
-
actionClick({
|
|
57
|
-
action: 'playback_rate_change',
|
|
58
|
-
value: playbackRate
|
|
59
|
-
});
|
|
60
|
-
// actions.changeRate(playbackRate, {
|
|
61
|
-
// action: 'fast-forward',
|
|
62
|
-
// source: 'shortcut'
|
|
63
|
-
// });
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
render() {
|
|
67
|
-
const { playbackRate } = this.props;
|
|
68
|
-
return (
|
|
69
|
-
<PlaybackRateBlock>
|
|
70
|
-
<div className="playback-block">
|
|
71
|
-
<Icon name="playback-rate" width={14} height={14} color="#182738" />
|
|
72
|
-
<p style={{ color: '#182738' }}>Playback Speed</p>
|
|
73
|
-
</div>
|
|
74
|
-
<div className="playback-rate-body">
|
|
75
|
-
<div
|
|
76
|
-
className={playbackRate === 1 ? 'playback-rate active' : 'playback-rate'}
|
|
77
|
-
onClick={() => this.changePlaybackRate(1)}
|
|
78
|
-
role="presentation">
|
|
79
|
-
1x
|
|
80
|
-
</div>
|
|
81
|
-
<div
|
|
82
|
-
className={playbackRate === 1.5 ? 'playback-rate active' : 'playback-rate'}
|
|
83
|
-
onClick={() => this.changePlaybackRate(1.5)}
|
|
84
|
-
role="presentation">
|
|
85
|
-
1.5x
|
|
86
|
-
</div>
|
|
87
|
-
<div
|
|
88
|
-
className={playbackRate === 2 ? 'playback-rate active' : 'playback-rate'}
|
|
89
|
-
onClick={() => this.changePlaybackRate(2)}
|
|
90
|
-
role="presentation">
|
|
91
|
-
2x
|
|
92
|
-
</div>
|
|
93
|
-
<div
|
|
94
|
-
className={playbackRate === 4 ? 'playback-rate active' : 'playback-rate'}
|
|
95
|
-
onClick={() => this.changePlaybackRate(4)}
|
|
96
|
-
role="presentation">
|
|
97
|
-
4x
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
</PlaybackRateBlock>
|
|
101
|
-
);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
PlaybackRateControl.propTypes = propTypes;
|
|
106
|
-
PlaybackRateControl.displayName = 'PlaybackRateControl';
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { PropTypes } from 'prop-types';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import styled from 'styled-components';
|
|
4
|
-
import { formatTime } from '../utils';
|
|
5
|
-
import colors from '../utils/colors';
|
|
6
|
-
|
|
7
|
-
const propTypes = {
|
|
8
|
-
currentTime: PropTypes.number,
|
|
9
|
-
duration: PropTypes.number,
|
|
10
|
-
percentage: PropTypes.string,
|
|
11
|
-
player: PropTypes.instanceOf(Object),
|
|
12
|
-
playerType: PropTypes.oneOf([
|
|
13
|
-
'dubbing_review',
|
|
14
|
-
'clipping_default',
|
|
15
|
-
'default',
|
|
16
|
-
'tagging',
|
|
17
|
-
'qc',
|
|
18
|
-
'subtitle',
|
|
19
|
-
'snp_edit',
|
|
20
|
-
'archive',
|
|
21
|
-
'restore',
|
|
22
|
-
'clipping',
|
|
23
|
-
'storyboard',
|
|
24
|
-
'panel'
|
|
25
|
-
]),
|
|
26
|
-
assetType: PropTypes.oneOf(['fc', 'rc']),
|
|
27
|
-
controlType: PropTypes.oneOf(['default', 'advanced'])
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
const defaultProps = {
|
|
31
|
-
playerType: 'default',
|
|
32
|
-
controlType: 'default'
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const ProgressBarBlock = styled.div`
|
|
36
|
-
position: absolute;
|
|
37
|
-
width: 0px;
|
|
38
|
-
height: 100%;
|
|
39
|
-
left: 0;
|
|
40
|
-
top: 0;
|
|
41
|
-
background: ${(props) => colors.common.video[props.assetType].base};
|
|
42
|
-
&:after {
|
|
43
|
-
content: '';
|
|
44
|
-
width: 12px;
|
|
45
|
-
height: 12px;
|
|
46
|
-
position: absolute;
|
|
47
|
-
background: ${(props) => colors.common.video[props.assetType].base};
|
|
48
|
-
border-radius: 100%;
|
|
49
|
-
right: -6px;
|
|
50
|
-
top: -5px;
|
|
51
|
-
box-shadow: 0 0 14px 1px ${(props) => colors.common.video[props.assetType].base};
|
|
52
|
-
}
|
|
53
|
-
&:before {
|
|
54
|
-
content: '';
|
|
55
|
-
width: 2px;
|
|
56
|
-
height: 46px;
|
|
57
|
-
position: absolute;
|
|
58
|
-
background: ${(props) => colors.common.video[props.assetType].base};
|
|
59
|
-
right: -1px;
|
|
60
|
-
top: 4px;
|
|
61
|
-
display: ${(props) => {
|
|
62
|
-
return props.controlType === 'advanced' && !props.isFullscreen ? 'block' : 'none';
|
|
63
|
-
}};
|
|
64
|
-
}
|
|
65
|
-
`;
|
|
66
|
-
// Shows play progress
|
|
67
|
-
export default function PlayProgressBar({
|
|
68
|
-
currentTime,
|
|
69
|
-
duration,
|
|
70
|
-
percentage,
|
|
71
|
-
playerType,
|
|
72
|
-
assetType,
|
|
73
|
-
controlType,
|
|
74
|
-
isFullscreen
|
|
75
|
-
}) {
|
|
76
|
-
return (
|
|
77
|
-
<ProgressBarBlock
|
|
78
|
-
data-current-time={formatTime(currentTime, duration)}
|
|
79
|
-
style={{
|
|
80
|
-
width: percentage
|
|
81
|
-
}}
|
|
82
|
-
playerType={playerType}
|
|
83
|
-
assetType={assetType}
|
|
84
|
-
controlType={controlType}
|
|
85
|
-
isFullscreen={isFullscreen}
|
|
86
|
-
/>
|
|
87
|
-
);
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
PlayProgressBar.propTypes = propTypes;
|
|
91
|
-
PlayProgressBar.defaultProps = defaultProps;
|
|
92
|
-
PlayProgressBar.displayName = 'PlayProgressBar';
|
package/control/PlayToggle.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports["default"] = void 0;
|
|
8
|
-
var _propTypes = require("prop-types");
|
|
9
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
|
-
var _components = require("@desynova-digital/components");
|
|
12
|
-
var _templateObject;
|
|
13
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
14
|
-
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); }
|
|
15
|
-
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; }
|
|
16
|
-
function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
|
|
17
|
-
var propTypes = {
|
|
18
|
-
actions: _propTypes.PropTypes.instanceOf(Object),
|
|
19
|
-
player: _propTypes.PropTypes.instanceOf(Object)
|
|
20
|
-
};
|
|
21
|
-
var defaultProps = {
|
|
22
|
-
actions: {},
|
|
23
|
-
player: {}
|
|
24
|
-
};
|
|
25
|
-
var PlayPauseButton = (0, _styledComponents["default"])(_components.Button)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n background: transparent;\n border: none;\n margin: 0 10px;\n &:hover,\n &:focus {\n background: transparent;\n }\n"])));
|
|
26
|
-
var PlayToggle = function PlayToggle(_ref) {
|
|
27
|
-
var paused = _ref.paused,
|
|
28
|
-
actionClick = _ref.actionClick;
|
|
29
|
-
var handleClick = function handleClick() {
|
|
30
|
-
if (paused) {
|
|
31
|
-
actionClick({
|
|
32
|
-
action: 'play'
|
|
33
|
-
});
|
|
34
|
-
} else {
|
|
35
|
-
actionClick({
|
|
36
|
-
action: 'pause'
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
return /*#__PURE__*/_react["default"].createElement(PlayPauseButton, {
|
|
41
|
-
display: "rounded",
|
|
42
|
-
appearance: "cta",
|
|
43
|
-
icon: paused ? 'play' : 'pause',
|
|
44
|
-
iconWidth: paused ? 12 : 25,
|
|
45
|
-
iconHeight: paused ? 15 : 25,
|
|
46
|
-
width: 20,
|
|
47
|
-
height: 20,
|
|
48
|
-
tabIndex: "0",
|
|
49
|
-
onClick: handleClick
|
|
50
|
-
});
|
|
51
|
-
};
|
|
52
|
-
var _default = PlayToggle;
|
|
53
|
-
exports["default"] = _default;
|
|
54
|
-
PlayToggle.propTypes = propTypes;
|
|
55
|
-
PlayToggle.defaultProps = defaultProps;
|
|
56
|
-
PlayToggle.displayName = 'PlayToggle';
|
package/control/PlayToggle.jsx
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { PropTypes } from 'prop-types';
|
|
2
|
-
import React, { Component } from 'react';
|
|
3
|
-
import styled from 'styled-components';
|
|
4
|
-
import { Button } from '@desynova-digital/components';
|
|
5
|
-
|
|
6
|
-
const propTypes = {
|
|
7
|
-
actions: PropTypes.instanceOf(Object),
|
|
8
|
-
player: PropTypes.instanceOf(Object)
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const defaultProps = {
|
|
12
|
-
actions: {},
|
|
13
|
-
player: {}
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const PlayPauseButton = styled(Button)`
|
|
17
|
-
background: transparent;
|
|
18
|
-
border: none;
|
|
19
|
-
margin: 0 10px;
|
|
20
|
-
&:hover,
|
|
21
|
-
&:focus {
|
|
22
|
-
background: transparent;
|
|
23
|
-
}
|
|
24
|
-
`;
|
|
25
|
-
|
|
26
|
-
const PlayToggle = ({ paused, actionClick }) => {
|
|
27
|
-
const handleClick = () => {
|
|
28
|
-
if (paused) {
|
|
29
|
-
actionClick({
|
|
30
|
-
action: 'play'
|
|
31
|
-
});
|
|
32
|
-
} else {
|
|
33
|
-
actionClick({
|
|
34
|
-
action: 'pause'
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
return (
|
|
40
|
-
<PlayPauseButton
|
|
41
|
-
display="rounded"
|
|
42
|
-
appearance="cta"
|
|
43
|
-
icon={paused ? 'play' : 'pause'}
|
|
44
|
-
iconWidth={paused ? 12 : 25}
|
|
45
|
-
iconHeight={paused ? 15 : 25}
|
|
46
|
-
width={20}
|
|
47
|
-
height={20}
|
|
48
|
-
tabIndex="0"
|
|
49
|
-
onClick={handleClick}
|
|
50
|
-
/>
|
|
51
|
-
);
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export default PlayToggle;
|
|
55
|
-
PlayToggle.propTypes = propTypes;
|
|
56
|
-
PlayToggle.defaultProps = defaultProps;
|
|
57
|
-
PlayToggle.displayName = 'PlayToggle';
|