@desynova-digital/player 4.0.0 → 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.
Files changed (111) hide show
  1. package/Manager.js +99 -0
  2. package/actions/player.js +331 -0
  3. package/actions/video.js +206 -0
  4. package/{utils/colors.js → colors.js} +1 -2
  5. package/{media → components}/AudioMeter.js +96 -109
  6. package/components/BigPlayButton.js +84 -0
  7. package/components/ImageViewer.js +272 -0
  8. package/{control → components}/MarkerBar.js +33 -24
  9. package/{utils → components}/Menu.js +13 -4
  10. package/components/Player.js +706 -0
  11. package/{header/Header.js → components/PlayerHeader.js} +104 -78
  12. package/components/Playlist.js +95 -0
  13. package/{control → components}/PointersBar.js +122 -61
  14. package/components/PosterImage.js +50 -0
  15. package/{media → components}/SDOutline.js +13 -49
  16. package/components/Shortcut.js +821 -0
  17. package/{control → components}/Slider.js +27 -23
  18. package/components/TagsBar.js +81 -0
  19. package/components/Video.js +1280 -0
  20. package/{control → components/control-bar}/AudioTracksMenuButton.js +32 -28
  21. package/components/control-bar/CameraButton.js +75 -0
  22. package/components/control-bar/CommentsButton.js +186 -0
  23. package/components/control-bar/ControlBar.js +266 -0
  24. package/components/control-bar/EditorControlMenuButton.js +317 -0
  25. package/components/control-bar/ForwardControl.js +12 -0
  26. package/components/control-bar/ForwardReplayControl.js +106 -0
  27. package/{control → components/control-bar}/FullscreenToggle.js +26 -21
  28. package/components/control-bar/PlayToggle.js +85 -0
  29. package/components/control-bar/ReplayControl.js +12 -0
  30. package/components/control-bar/SettingsMenuButton.js +41 -0
  31. package/components/control-bar/SubtitleLanguagesMenuButton.js +149 -0
  32. package/components/control-bar/SubtitleMovementMenu.js +140 -0
  33. package/{control/VolumneMenuButton.js → components/control-bar/VolumeMenuButton.js} +26 -27
  34. package/components/control-bar/ZoomMenuButton.js +90 -0
  35. package/{control → components/marking-controls}/MarkInControl.js +32 -25
  36. package/{control → components/marking-controls}/MarkOutControl.js +35 -26
  37. package/components/marking-controls/MarkingAddButton.js +79 -0
  38. package/components/marking-controls/MarkingControl.js +95 -0
  39. package/components/marking-controls/MarkingDeleteButton.js +70 -0
  40. package/{control → components/marking-controls}/MarkingDuration.js +12 -5
  41. package/components/marking-controls/MarkingPreview.js +72 -0
  42. package/components/progress-bar/AudioWaveform.js +126 -0
  43. package/components/progress-bar/LoadProgressBar.js +67 -0
  44. package/components/progress-bar/MouseTimeDisplay.js +36 -0
  45. package/{control → components/progress-bar}/PlayProgressBar.js +4 -4
  46. package/components/progress-bar/ProgressControl.js +186 -0
  47. package/{control → components/progress-bar}/SeekBar.js +113 -72
  48. package/{control → components/progress-bar}/Timeline.js +43 -32
  49. package/{control/PlayBackRateControl.js → components/settings-menu-control/PlaybackRateControl.js} +44 -30
  50. package/components/settings-menu-control/SafeAreaControl.js +81 -0
  51. package/components/settings-menu-control/SettingsMenu.js +56 -0
  52. package/components/settings-menu-control/SubtitleControl.js +1 -0
  53. package/components/time-controls/CurrentTimeDisplay.js +83 -0
  54. package/{control → components/time-controls}/DurationDisplay.js +8 -15
  55. package/components/time-controls/TimeDivider.js +25 -0
  56. package/{control → components/volume-control}/VolumeBar.js +62 -80
  57. package/components/volume-control/VolumeControl.js +19 -0
  58. package/{control → components/volume-control}/VolumeLevel.js +2 -3
  59. package/components/zoom-control/ZoomBar.js +155 -0
  60. package/components/zoom-control/ZoomLevel.js +55 -0
  61. package/index.js +198 -1
  62. package/package.json +5 -8
  63. package/reducers/index.js +19 -0
  64. package/reducers/operation.js +35 -0
  65. package/reducers/player.js +222 -0
  66. package/utils/browser.js +30 -0
  67. package/utils/dom.js +93 -0
  68. package/utils/fullscreen.js +72 -0
  69. package/utils/index.js +156 -57
  70. package/Player.js +0 -945
  71. package/control/AudioTracksMenuButton.jsx +0 -80
  72. package/control/ControlBar.js +0 -303
  73. package/control/ControlBar.jsx +0 -264
  74. package/control/CurrentTimeDisplay.js +0 -34
  75. package/control/CurrentTimeDisplay.jsx +0 -35
  76. package/control/DurationDisplay.jsx +0 -48
  77. package/control/ForwardBackwardControl.js +0 -76
  78. package/control/ForwardBackwardControl.jsx +0 -79
  79. package/control/FullscreenToggle.jsx +0 -83
  80. package/control/MarkInControl.jsx +0 -109
  81. package/control/MarkOutControl.jsx +0 -131
  82. package/control/MarkerBar.jsx +0 -107
  83. package/control/MarkingControl.js +0 -82
  84. package/control/MarkingControl.jsx +0 -143
  85. package/control/MarkingPreview.js +0 -49
  86. package/control/MarkingPreview.jsx +0 -60
  87. package/control/PlayBackRateControl.jsx +0 -106
  88. package/control/PlayProgressBar.jsx +0 -92
  89. package/control/PlayToggle.js +0 -56
  90. package/control/PlayToggle.jsx +0 -57
  91. package/control/PointersBar.jsx +0 -286
  92. package/control/ProgressControl.js +0 -127
  93. package/control/ProgressControl.jsx +0 -155
  94. package/control/SeekBar.jsx +0 -229
  95. package/control/SettingsMenuButton.js +0 -63
  96. package/control/SettingsMenuButton.jsx +0 -69
  97. package/control/Slider.jsx +0 -243
  98. package/control/Timeline.jsx +0 -131
  99. package/control/VolumeBar.jsx +0 -174
  100. package/control/VolumeLevel.jsx +0 -66
  101. package/control/VolumneMenuButton.jsx +0 -111
  102. package/header/Header.jsx +0 -479
  103. package/media/AudioMeter.jsx +0 -411
  104. package/media/SDOutline.jsx +0 -90
  105. package/media/Video.js +0 -684
  106. package/media/Video.jsx +0 -714
  107. package/playlist/Playlist.js +0 -67
  108. package/playlist/Playlist.jsx +0 -91
  109. package/playlist/index.js +0 -13
  110. package/shortcuts/Shortcut.js +0 -662
  111. package/utils/Menu.jsx +0 -105
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
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 _templateObject;
12
+ /*global webkitAudioContext*/
13
+ /*eslint no-undef: ["error", { "typeof": true }] */
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
17
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
18
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
19
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
21
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
22
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
23
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
24
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
25
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
26
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
27
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
28
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
29
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
30
+ var propTypes = {
31
+ audioSrc: _propTypes.PropTypes.string,
32
+ currentZoom: _propTypes.PropTypes.number
33
+ };
34
+ var defaultProps = {
35
+ audioSrc: null,
36
+ currentZoom: 1
37
+ };
38
+ var AudioWaveformBlock = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n right: 0;\n canvas {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background: #000;\n }\n"])));
39
+ var AudioWaveform = exports["default"] = /*#__PURE__*/function (_Component) {
40
+ _inherits(AudioWaveform, _Component);
41
+ function AudioWaveform(props, context) {
42
+ var _this;
43
+ _classCallCheck(this, AudioWaveform);
44
+ _this = _callSuper(this, AudioWaveform, [props, context]);
45
+ _this.state = {
46
+ buffer: null
47
+ };
48
+ _this.getWaveform = _this.getWaveform.bind(_assertThisInitialized(_this));
49
+ return _this;
50
+ }
51
+ _createClass(AudioWaveform, [{
52
+ key: "getWaveform",
53
+ value: function getWaveform() {
54
+ var _this2 = this;
55
+ var audioSrc = this.props.audioSrc;
56
+ var audioBlockWidth = this.canvasBlock.parentElement.offsetWidth;
57
+ var audioBlockHeight = this.canvasBlock.parentElement.offsetHeight;
58
+ this.canvasBlock.width = audioBlockWidth;
59
+ this.canvasBlock.height = audioBlockHeight;
60
+ var context;
61
+ if (typeof AudioContext !== 'undefined') {
62
+ context = new AudioContext();
63
+ } else if (typeof webkitAudioContext !== 'undefined') {
64
+ context = new webkitAudioContext();
65
+ }
66
+ var request = new XMLHttpRequest();
67
+ request.open('GET', audioSrc, true);
68
+ request.responseType = 'arraybuffer';
69
+ request.onload = function () {
70
+ context.decodeAudioData(request.response, function (buffer) {
71
+ var bufferData = buffer.getChannelData(0);
72
+ _this2.setState({
73
+ buffer: bufferData
74
+ });
75
+ _this2.generateWaveform();
76
+ });
77
+ };
78
+ request.send();
79
+ }
80
+ }, {
81
+ key: "generateWaveform",
82
+ value: function generateWaveform() {
83
+ var currentZoom = this.props.currentZoom;
84
+ var buffer = this.state.buffer;
85
+ if (buffer.length) {
86
+ var parentWidth = this.canvasBlock.parentElement.offsetWidth;
87
+ this.canvasBlock.width = parentWidth * currentZoom;
88
+ var width = this.canvasBlock.width;
89
+ var height = this.canvasBlock.height;
90
+ var ctx = this.canvasBlock.getContext('2d');
91
+ var step = Math.ceil(buffer.length / width);
92
+ var amp = 100;
93
+ ctx.lineWidth = 1;
94
+ ctx.beginPath();
95
+ ctx.moveTo(0, height / 2 + buffer[0]);
96
+ for (var i = 0; i < width; i++) {
97
+ ctx.lineTo(i, height / 2 + buffer[step * i] * amp);
98
+ }
99
+ ctx.closePath();
100
+ ctx.strokeStyle = '#ffffff12';
101
+ ctx.stroke();
102
+ ctx.fillStyle = '#ffffff12';
103
+ ctx.fill();
104
+ }
105
+ }
106
+ }, {
107
+ key: "render",
108
+ value: function render() {
109
+ var _this3 = this;
110
+ return /*#__PURE__*/_react["default"].createElement(AudioWaveformBlock, {
111
+ ref: function ref(c) {
112
+ _this3.waveformBlock = c;
113
+ }
114
+ }, /*#__PURE__*/_react["default"].createElement("canvas", {
115
+ id: "visualisation",
116
+ ref: function ref(c) {
117
+ _this3.canvasBlock = c;
118
+ }
119
+ }));
120
+ }
121
+ }]);
122
+ return AudioWaveform;
123
+ }(_react.Component);
124
+ AudioWaveform.propTypes = propTypes;
125
+ AudioWaveform.defaultProps = defaultProps;
126
+ AudioWaveform.displayName = 'AudioWaveform';
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = LoadProgressBar;
7
+ var _propTypes = require("prop-types");
8
+ var _react = _interopRequireDefault(require("react"));
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
+ var propTypes = {
11
+ duration: _propTypes.PropTypes.number,
12
+ buffered: _propTypes.PropTypes.instanceOf(Object)
13
+ };
14
+ var defaultProps = {
15
+ duration: 0,
16
+ buffered: {}
17
+ };
18
+
19
+ // Shows load progress
20
+ function LoadProgressBar(_ref) {
21
+ var buffered = _ref.buffered,
22
+ duration = _ref.duration;
23
+ if (!buffered || !buffered.length) {
24
+ return null;
25
+ }
26
+ var bufferedEnd = buffered.end(buffered.length - 1);
27
+ var style = {};
28
+ if (bufferedEnd > duration) {
29
+ bufferedEnd = duration;
30
+ }
31
+
32
+ // get the percent width of a time compared to the total end
33
+ function percentify(time, end) {
34
+ var percent = time / end || 0; // no NaN
35
+ return "".concat((percent >= 1 ? 1 : percent) * 100, "%");
36
+ }
37
+
38
+ // the width of the progress bar
39
+ style.width = percentify(bufferedEnd, duration);
40
+ var parts = [];
41
+
42
+ // add child elements to represent the individual buffered time ranges
43
+ for (var i = 0; i < buffered.length; i++) {
44
+ var start = buffered.start(i);
45
+ var end = buffered.end(i);
46
+ // set the percent based on the width of the progress bar (bufferedEnd)
47
+ var part = /*#__PURE__*/_react["default"].createElement("div", {
48
+ style: {
49
+ left: percentify(start, bufferedEnd),
50
+ width: percentify(end - start, bufferedEnd)
51
+ },
52
+ key: "part-".concat(i)
53
+ });
54
+ parts.push(part);
55
+ }
56
+ if (parts.length === 0) {
57
+ parts = null;
58
+ }
59
+ return /*#__PURE__*/_react["default"].createElement("div", {
60
+ style: style
61
+ }, /*#__PURE__*/_react["default"].createElement("span", {
62
+ className: "video-react-control-text"
63
+ }, /*#__PURE__*/_react["default"].createElement("span", null, "Loaded"), ": 0%"), parts);
64
+ }
65
+ LoadProgressBar.propTypes = propTypes;
66
+ LoadProgressBar.defaultProps = defaultProps;
67
+ LoadProgressBar.displayName = 'LoadProgressBar';
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = void 0;
7
+ var _propTypes = require("prop-types");
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _utils = require("../../utils");
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+ var propTypes = {
12
+ duration: _propTypes.PropTypes.number,
13
+ mouseTime: _propTypes.PropTypes.instanceOf(Object)
14
+ };
15
+ var defaultProps = {
16
+ duration: 0,
17
+ mouseTime: {}
18
+ };
19
+ function MouseTimeDisplay(_ref) {
20
+ var duration = _ref.duration,
21
+ mouseTime = _ref.mouseTime;
22
+ if (!mouseTime.time) {
23
+ return null;
24
+ }
25
+ var time = (0, _utils.formatTime)(mouseTime.time, duration);
26
+ return /*#__PURE__*/_react["default"].createElement("div", {
27
+ style: {
28
+ left: "".concat(mouseTime.position, "px")
29
+ },
30
+ "data-current-time": time
31
+ }, time);
32
+ }
33
+ MouseTimeDisplay.propTypes = propTypes;
34
+ MouseTimeDisplay.defaultProps = defaultProps;
35
+ MouseTimeDisplay.displayName = 'MouseTimeDisplay';
36
+ var _default = exports["default"] = MouseTimeDisplay;
@@ -7,8 +7,8 @@ exports["default"] = PlayProgressBar;
7
7
  var _propTypes = require("prop-types");
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _styledComponents = _interopRequireDefault(require("styled-components"));
10
- var _utils = require("../utils");
11
- var _colors = _interopRequireDefault(require("../utils/colors"));
10
+ var _utils = require("../../utils");
11
+ var _colors = _interopRequireDefault(require("../../colors"));
12
12
  var _templateObject;
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
14
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
@@ -25,7 +25,7 @@ var defaultProps = {
25
25
  playerType: 'default',
26
26
  controlType: 'default'
27
27
  };
28
- var ProgressBarBlock = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: absolute;\n width: 0px;\n height: 100%;\n left: 0;\n top: 0;\n background: ", ";\n &:after {\n content: '';\n width: 12px;\n height: 12px;\n position: absolute;\n background: ", ";\n border-radius: 100%;\n right: -6px;\n top: -5px;\n box-shadow: 0 0 14px 1px ", ";\n }\n &:before {\n content: '';\n width: 2px;\n height: 46px;\n position: absolute;\n background: ", ";\n right: -1px;\n top: 4px;\n display: ", ";\n }\n"])), function (props) {
28
+ var ProgressBarBlock = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: absolute;\n width: 0px;\n height: 100%;\n left: 0;\n top: 0;\n background: ", ";\n &:after {\n content: '';\n width: 12px;\n height: 12px;\n position: absolute;\n background: ", ";\n border-radius: 100%;\n right: -6px;\n top: -5px;\n box-shadow: 0 0 14px 1px\n ", ";\n }\n &:before {\n content: '';\n width: 2px;\n height: 46px;\n position: absolute;\n background: ", ";\n right: -1px;\n top: 4px;\n display: ", ";\n }\n"])), function (props) {
29
29
  return _colors["default"].common.video[props.assetType].base;
30
30
  }, function (props) {
31
31
  return _colors["default"].common.video[props.assetType].base;
@@ -44,7 +44,7 @@ function PlayProgressBar(_ref) {
44
44
  playerType = _ref.playerType,
45
45
  assetType = _ref.assetType,
46
46
  controlType = _ref.controlType,
47
- isFullscreen = _ref.isFullscreen;
47
+ isFullscreen = _ref.player.isFullscreen;
48
48
  return /*#__PURE__*/_react["default"].createElement(ProgressBarBlock, {
49
49
  "data-current-time": (0, _utils.formatTime)(currentTime, duration),
50
50
  style: {
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
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 _reactDom = require("react-dom");
11
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
12
+ var Dom = _interopRequireWildcard(require("../../utils/dom"));
13
+ var _SeekBar = _interopRequireDefault(require("./SeekBar"));
14
+ var _PointersBar = _interopRequireDefault(require("../PointersBar"));
15
+ var _colors = _interopRequireDefault(require("../../colors"));
16
+ var _player = _interopRequireDefault(require("../../reducers/player"));
17
+ var _templateObject, _templateObject2, _templateObject3;
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
20
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
21
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
23
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
24
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
25
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
26
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
27
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
28
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
29
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
30
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
31
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
32
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
33
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
34
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
35
+ var propTypes = {
36
+ player: _propTypes.PropTypes.instanceOf(Object),
37
+ controlType: _propTypes.PropTypes.string,
38
+ playerType: _propTypes.PropTypes.oneOf(['dubbing_review', 'clipping_default', 'default', 'tagging', 'qc', 'subtitle', 'snp_edit', 'archive', 'restore', 'clipping', 'storyboard', 'panel']),
39
+ theme: _propTypes.PropTypes.string
40
+ };
41
+ var defaultProps = {};
42
+ var ProgressControlBlock = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 100%;\n height: ", ";\n position: relative;\n overflow: ", ";\n padding-top: 0px;\n background: #000000;\n background: ", ";\n display: flex;\n justify-content: center;\n align-items: center;\n transition: all 250ms ease-in-out;\n bottom: ", ";\n\n .tags-block {\n position: relative;\n height: 20px;\n width: 100px;\n font-family: SFUIText-Medium;\n font-size: 10px;\n color: #ffffff;\n text-transform: uppercase;\n border-top: 1px solid #333333;\n border-bottom: 1px solid #333333;\n top: 40px;\n p {\n line-height: 18px;\n padding: 0 10px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n"])), function (props) {
43
+ return props.controlType === 'advanced' && !props.isFullscreen ? '' : '4px';
44
+ }, function (props) {
45
+ return props.controlType === 'advanced' && !props.isFullscreen ? 'none' : 'visible';
46
+ }, _colors["default"].common.base.black, function (props) {
47
+ return props.player === 'panel' && props.active ? '50px' : 'initial';
48
+ });
49
+ var SeekControlBar = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n width: 100%;\n height: 100%;\n position: relative;\n cursor: pointer;\n overflow: hidden;\n z-index: ", ";\n .timeline-content {\n overflow-x: auto;\n white-space: nowrap;\n }\n"])), function (props) {
50
+ return props.controlType === 'advanced' && !props.isFullscreen ? '2' : '1';
51
+ });
52
+ var MarkerTagsBlock = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n min-width: 100px;\n max-width: 100px;\n position: relative;\n height: 60px;\n .empty-block {\n height: calc(100% - 20px);\n }\n .tags-block {\n height: 20px;\n font-family: SFUIText-Medium;\n font-size: 12px;\n color: #ffffff;\n text-transform: uppercase;\n border-top: 1px solid #333333;\n border-bottom: 1px solid #333333;\n p {\n line-height: 18px;\n padding-left: 10px;\n }\n }\n"])));
53
+ var ProgressControl = exports["default"] = /*#__PURE__*/function (_Component) {
54
+ _inherits(ProgressControl, _Component);
55
+ function ProgressControl(props, context) {
56
+ var _this;
57
+ _classCallCheck(this, ProgressControl);
58
+ _this = _callSuper(this, ProgressControl, [props, context]);
59
+ _this.state = {
60
+ mouseTime: {
61
+ time: null,
62
+ position: 0,
63
+ stateZoom: null
64
+ }
65
+ };
66
+ _this.handleMouseMoveThrottle = _this.handleMouseMove.bind(_assertThisInitialized(_this));
67
+ _this.handleSeekbarZoom = _this.handleSeekbarZoom.bind(_assertThisInitialized(_this));
68
+ return _this;
69
+ }
70
+ _createClass(ProgressControl, [{
71
+ key: "componentDidUpdate",
72
+ value: function componentDidUpdate() {
73
+ var _this$props = this.props,
74
+ _this$props$player = _this$props.player,
75
+ zoom = _this$props$player.zoom,
76
+ readyState = _this$props$player.readyState,
77
+ isFullscreen = _this$props$player.isFullscreen,
78
+ controlType = _this$props.controlType;
79
+ var stateZoom = this.state.stateZoom;
80
+ if (zoom !== stateZoom && readyState === 4 && controlType === 'advanced' && !isFullscreen) {
81
+ this.handleSeekbarZoom();
82
+ }
83
+ }
84
+ }, {
85
+ key: "handleSeekbarZoom",
86
+ value: function handleSeekbarZoom() {
87
+ var zoom = this.props.player.zoom;
88
+ var progressBlock = (0, _reactDom.findDOMNode)(this.progressControlBlock);
89
+ var seekBarBlock = (0, _reactDom.findDOMNode)(this.seekControlBar);
90
+ var currentZoom = parseFloat(zoom.toFixed(1));
91
+
92
+ // To be Rectified
93
+ if (this.seekBar.timeline) {
94
+ this.seekBar.timeline.generateTimeline(currentZoom);
95
+ this.pointersBar.generateZoomWithOfPointersBar(currentZoom);
96
+ // this.seekBar.audioWaveform.getWaveform();
97
+ this.setState({
98
+ stateZoom: zoom
99
+ });
100
+ }
101
+ }
102
+ }, {
103
+ key: "handleMouseMove",
104
+ value: function handleMouseMove(event) {
105
+ if (!event.pageX) {
106
+ return;
107
+ }
108
+ var duration = this.props.player.duration;
109
+ var node = (0, _reactDom.findDOMNode)(this.seekBar);
110
+ var newTime = Dom.getPointerPosition(node, event).x * duration;
111
+ var position = event.pageX - Dom.findElPosition(node).left;
112
+ this.setState({
113
+ mouseTime: {
114
+ time: newTime,
115
+ position: position
116
+ }
117
+ });
118
+ }
119
+ }, {
120
+ key: "render",
121
+ value: function render() {
122
+ var _this2 = this;
123
+ var _this$props2 = this.props,
124
+ controlType = _this$props2.controlType,
125
+ playerType = _this$props2.playerType,
126
+ _this$props2$player = _this$props2.player,
127
+ userActivity = _this$props2$player.userActivity,
128
+ isFullscreen = _this$props2$player.isFullscreen,
129
+ duration = _this$props2$player.duration,
130
+ markers = _this$props2.markers,
131
+ theme = _this$props2.theme;
132
+ var _this$state = this.state,
133
+ mouseTime = _this$state.mouseTime,
134
+ stateZoom = _this$state.stateZoom;
135
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(ProgressControlBlock, {
136
+ controlType: controlType,
137
+ id: "progress-control-block",
138
+ player: playerType,
139
+ active: userActivity,
140
+ isFullscreen: isFullscreen,
141
+ ref: function ref(c) {
142
+ _this2.progressControlBlock = c;
143
+ }
144
+ }, controlType === 'advanced' && !isFullscreen && duration ? /*#__PURE__*/_react["default"].createElement("div", {
145
+ style: {
146
+ display: 'flex',
147
+ flexDirection: 'column'
148
+ }
149
+ }, markers && markers.length ? markers.map(function (marker_obj) {
150
+ return /*#__PURE__*/_react["default"].createElement("div", {
151
+ className: "tags-block"
152
+ }, /*#__PURE__*/_react["default"].createElement("p", {
153
+ className: "pointer-wrapper"
154
+ }, marker_obj.name));
155
+ }) : /*#__PURE__*/_react["default"].createElement(MarkerTagsBlock, null, /*#__PURE__*/_react["default"].createElement("div", {
156
+ className: "empty-block"
157
+ }))) : null, /*#__PURE__*/_react["default"].createElement(SeekControlBar, {
158
+ ref: function ref(c) {
159
+ _this2.seekControlBar = c;
160
+ },
161
+ id: "seekbar-control-block",
162
+ onMouseMove: this.handleMouseMoveThrottle
163
+ }, /*#__PURE__*/_react["default"].createElement("div", {
164
+ className: "timeline-content"
165
+ }, /*#__PURE__*/_react["default"].createElement(_SeekBar["default"], _extends({
166
+ mouseTime: mouseTime,
167
+ ref: function ref(c) {
168
+ _this2.seekBar = c;
169
+ },
170
+ zoom: stateZoom && parseFloat(stateZoom.toFixed(1))
171
+ }, this.props)), /*#__PURE__*/_react["default"].createElement(_PointersBar["default"], _extends({
172
+ theme: theme,
173
+ ref: function ref(c) {
174
+ _this2.pointersBar = c;
175
+ },
176
+ zoom: stateZoom && parseFloat(stateZoom.toFixed(1))
177
+ }, this.props)))), controlType === 'advanced' && !isFullscreen ? /*#__PURE__*/_react["default"].createElement(MarkerTagsBlock, null, /*#__PURE__*/_react["default"].createElement("div", {
178
+ className: "empty-block"
179
+ })) : null));
180
+ }
181
+ }]);
182
+ return ProgressControl;
183
+ }(_react.Component);
184
+ ProgressControl.propTypes = propTypes;
185
+ ProgressControl.defaultProps = defaultProps;
186
+ ProgressControl.displayName = 'ProgressControl';