@desynova-digital/player 4.0.1 → 4.0.3

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 +1 -2
  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
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
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); }
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
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
@@ -8,30 +8,30 @@ exports["default"] = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _styledComponents = _interopRequireDefault(require("styled-components"));
10
10
  var _propTypes = require("prop-types");
11
- var _Slider = _interopRequireDefault(require("./Slider"));
11
+ var _Slider = _interopRequireDefault(require("../Slider"));
12
12
  var _PlayProgressBar = _interopRequireDefault(require("./PlayProgressBar"));
13
- var _utils = require("../utils");
13
+ var _utils = require("../../utils");
14
14
  var _Timeline = _interopRequireDefault(require("./Timeline"));
15
- var _MarkerBar = _interopRequireDefault(require("./MarkerBar"));
16
- var _templateObject, _templateObject2;
15
+ var _MarkerBar = _interopRequireDefault(require("../MarkerBar"));
16
+ var _TagsBar = _interopRequireDefault(require("../TagsBar"));
17
+ var _templateObject, _templateObject2; // import AudioWaveform from './AudioWaveform';
17
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
18
- 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); }
19
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
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; }
20
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); }
21
22
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
22
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); } }
23
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; }
24
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
25
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
26
- 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); }
27
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
28
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
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)); }
29
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); }
30
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
31
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
29
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
32
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); }
33
34
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
34
- // import TagsBar from '../TagsBar';
35
35
  // import MouseTimeDisplay from './MouseTimeDisplay';
36
36
 
37
37
  var AdvancedControlBlock = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 100%;\n height: 46px;\n position: relative;\n cursor: pointer;\n z-index: 1;\n"])));
@@ -43,15 +43,15 @@ var propTypes = {
43
43
  tagsMarker: _propTypes.PropTypes.instanceOf(Array),
44
44
  mouseTime: _propTypes.PropTypes.instanceOf(Object),
45
45
  assetType: _propTypes.PropTypes.oneOf(['fc', 'rc']),
46
- playerType: _propTypes.PropTypes.oneOf(['dubbing_review', 'clipping_default', 'default', 'tagging', 'qc', 'subtitle', 'snp_edit', 'archive', 'restore', 'clipping', 'storyboard', 'panel'])
46
+ playerType: _propTypes.PropTypes.oneOf(['dubbing_review', 'clipping_default', 'default', 'tagging', 'qc', 'subtitle', 'snp_edit', 'archive', 'restore', 'clipping', 'storyboard', 'panel']),
47
+ theme: _propTypes.PropTypes.string
47
48
  };
48
- var SeekBar = /*#__PURE__*/function (_Component) {
49
+ var SeekBar = exports["default"] = /*#__PURE__*/function (_Component) {
49
50
  _inherits(SeekBar, _Component);
50
- var _super = _createSuper(SeekBar);
51
51
  function SeekBar(props, context) {
52
52
  var _this;
53
53
  _classCallCheck(this, SeekBar);
54
- _this = _super.call(this, props, context);
54
+ _this = _callSuper(this, SeekBar, [props, context]);
55
55
  _this.getPercent = _this.getPercent.bind(_assertThisInitialized(_this));
56
56
  _this.getNewTime = _this.getNewTime.bind(_assertThisInitialized(_this));
57
57
  _this.stepForward = _this.stepForward.bind(_assertThisInitialized(_this));
@@ -69,34 +69,79 @@ var SeekBar = /*#__PURE__*/function (_Component) {
69
69
  value: function componentDidMount() {}
70
70
  }, {
71
71
  key: "componentDidUpdate",
72
- value: function componentDidUpdate() {}
72
+ value: function componentDidUpdate(prevProps) {
73
+ var _prevProps$player, _this$props$player;
74
+ if (((_prevProps$player = prevProps.player) === null || _prevProps$player === void 0 ? void 0 : _prevProps$player.currentTime) !== ((_this$props$player = this.props.player) === null || _this$props$player === void 0 ? void 0 : _this$props$player.currentTime)) {
75
+ this.scrollToSeekbarMiddle();
76
+ }
77
+ }
73
78
 
74
- /**
75
- * Get percentage of video played
76
- *
77
- * @return {Number} Percentage played
78
- * @method getPercent
79
+ /**
80
+ * Get percentage of video played
81
+ *
82
+ * @return {Number} Percentage played
83
+ * @method getPercent
79
84
  */
80
85
  }, {
81
86
  key: "getPercent",
82
87
  value: function getPercent() {
83
88
  var _this$props = this.props,
84
- seconds = _this$props.currentTime.seconds,
85
- seekingTime = _this$props.seekingTime,
86
- duration = _this$props.duration;
87
- var time = seekingTime || seconds;
88
- var percent = time / duration.seconds;
89
- return percent >= 1 ? 1 : percent;
89
+ _this$props$player2 = _this$props.player,
90
+ currentTime = _this$props$player2.currentTime,
91
+ seekingTime = _this$props$player2.seekingTime,
92
+ duration = _this$props$player2.duration,
93
+ zoom = _this$props.zoom;
94
+ var time = seekingTime || currentTime;
95
+ var percent = time / duration;
96
+ percent = percent >= 1 ? 1 : percent;
97
+ if (zoom > 0) {
98
+ percent = percent * zoom * 20;
99
+ }
100
+ return percent;
101
+ }
102
+ }, {
103
+ key: "getScrollableWidth",
104
+ value: function getScrollableWidth(element) {
105
+ var style = getComputedStyle(element);
106
+ var padding = parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);
107
+ var scrollbarWidth = element.offsetWidth - element.clientWidth;
108
+ return element.scrollWidth - padding - scrollbarWidth;
90
109
  }
91
110
  }, {
92
111
  key: "getNewTime",
93
112
  value: function getNewTime(event) {
94
- var seconds = this.props.duration.seconds;
95
- var distance = this.slider.calculateDistance(event);
96
- var newTime = distance * seconds;
113
+ var _this$props2 = this.props,
114
+ duration = _this$props2.player.duration,
115
+ playerType = _this$props2.playerType;
116
+ var newTime;
117
+ if (playerType === 'default') {
118
+ var distance = this.slider.calculateDistance(event);
119
+ newTime = distance * duration;
120
+ } else {
121
+ var seekBar = document.getElementById('timeline-block');
122
+ var clickPosition = event.clientX - seekBar.getBoundingClientRect().left;
123
+ var data = this.getScrollableWidth(seekBar);
124
+ var seekPercentage = clickPosition / data;
125
+ newTime = duration * seekPercentage;
126
+ }
97
127
 
98
128
  // Don't let video end while scrubbing.
99
- return newTime === seconds ? newTime - 0.1 : newTime;
129
+ return newTime === duration ? newTime - 0.1 : newTime;
130
+ }
131
+ }, {
132
+ key: "scrollToSeekbarMiddle",
133
+ value: function scrollToSeekbarMiddle() {
134
+ var viewportWidth = document.getElementById('seekbar-control-block').clientWidth;
135
+ var percentScroll = (this.getPercent() * 100).toFixed(2) / 100;
136
+ var scrollWidth = viewportWidth * percentScroll;
137
+ if (scrollWidth < document.getElementsByClassName('timeline-content')[0].scrollLeft || scrollWidth > document.getElementsByClassName('timeline-content')[0].scrollLeft + viewportWidth) {
138
+ viewportWidth = viewportWidth / 2;
139
+ scrollWidth = scrollWidth - viewportWidth;
140
+ document.getElementsByClassName('timeline-content')[0].scrollTo({
141
+ left: scrollWidth,
142
+ behavior: 'instant'
143
+ });
144
+ }
100
145
  }
101
146
  }, {
102
147
  key: "handleMouseDown",
@@ -110,14 +155,11 @@ var SeekBar = /*#__PURE__*/function (_Component) {
110
155
  key: "handleMouseUp",
111
156
  value: function handleMouseUp(event) {
112
157
  console.log('handleMouse handleMouseUp');
113
- var actionClick = this.props.actionClick;
158
+ var actions = this.props.actions;
114
159
  var newTime = this.getNewTime(event);
115
160
  // Set new time (tell video to seek to new time)
116
- actionClick({
117
- action: 'seek',
118
- value: newTime
119
- });
120
- // actions.handleEndSeeking(newTime);//todo check if needed
161
+ actions.seek(newTime);
162
+ actions.handleEndSeeking(newTime);
121
163
  this.setState({
122
164
  sliderActive: false
123
165
  });
@@ -127,57 +169,54 @@ var SeekBar = /*#__PURE__*/function (_Component) {
127
169
  value: function handleMouseMove(event) {
128
170
  var sliderActive = this.state.sliderActive;
129
171
  if (sliderActive) {
130
- var actionClick = this.props.actionClick;
172
+ var actions = this.props.actions;
131
173
  var newTime = this.getNewTime(event);
132
- actionClick({
133
- action: 'seeking_time',
134
- value: newTime
135
- });
174
+ actions.handleSeekingTime(newTime);
136
175
  }
137
176
  }
138
177
  }, {
139
178
  key: "stepForward",
140
179
  value: function stepForward() {
141
- var actionClick = this.props.actionClick;
142
- actionClick({
143
- action: 'add_seconds',
144
- value: '0.04'
145
- });
180
+ var actions = this.props.actions;
181
+ actions.forward(0.04);
146
182
  }
147
183
  }, {
148
184
  key: "stepBack",
149
185
  value: function stepBack() {
150
- var actionClick = this.props.actionClick;
151
- actionClick({
152
- action: 'add_seconds',
153
- value: '-0.04'
154
- });
186
+ var actions = this.props.actions;
187
+ actions.replay(0.04);
155
188
  }
156
189
  }, {
157
190
  key: "render",
158
191
  value: function render() {
159
192
  var _this2 = this;
160
- var _this$props2 = this.props,
161
- seconds = _this$props2.currentTime.seconds,
162
- seekingTime = _this$props2.seekingTime,
163
- duration = _this$props2.duration,
164
- isFullscreen = _this$props2.isFullscreen,
165
- controlType = _this$props2.controlType,
166
- playerType = _this$props2.playerType,
167
- tagsMarker = _this$props2.tagsMarker,
168
- assetType = _this$props2.assetType;
169
- var time = seekingTime || seconds;
170
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_MarkerBar["default"], this.props), /*#__PURE__*/_react["default"].createElement("div", {
193
+ var _this$props3 = this.props,
194
+ _this$props3$player = _this$props3.player,
195
+ currentTime = _this$props3$player.currentTime,
196
+ seekingTime = _this$props3$player.seekingTime,
197
+ duration = _this$props3$player.duration,
198
+ isFullscreen = _this$props3$player.isFullscreen,
199
+ controlType = _this$props3.controlType,
200
+ playerType = _this$props3.playerType,
201
+ tagsMarker = _this$props3.tagsMarker,
202
+ assetType = _this$props3.assetType,
203
+ zoom = _this$props3.zoom;
204
+ var time = seekingTime || currentTime;
205
+ return /*#__PURE__*/_react["default"].createElement("span", {
206
+ id: "seekbarss"
207
+ }, /*#__PURE__*/_react["default"].createElement(_MarkerBar["default"], _extends({}, this.props, {
208
+ zoom: zoom
209
+ })), tagsMarker && tagsMarker.length ? /*#__PURE__*/_react["default"].createElement(_TagsBar["default"], this.props) : null, /*#__PURE__*/_react["default"].createElement("div", {
171
210
  onMouseDown: this.handleMouseDown,
172
211
  onMouseMove: this.handleMouseMove,
173
212
  onMouseUp: this.handleMouseUp
174
- }, /*#__PURE__*/_react["default"].createElement(SliderBlock, null, /*#__PURE__*/_react["default"].createElement(_Slider["default"], {
213
+ }, /*#__PURE__*/_react["default"].createElement(SliderBlock, null, /*#__PURE__*/_react["default"].createElement(_Slider["default"], _extends({}, this.props, {
175
214
  ref: function ref(input) {
176
215
  _this2.slider = input;
177
216
  },
178
217
  label: "video progress bar",
179
218
  valuenow: (this.getPercent() * 100).toFixed(2),
180
- valuetext: (0, _utils.formatTime)(time, duration.seconds)
219
+ valuetext: (0, _utils.formatTime)(time, duration)
181
220
  // onMouseDown={this.handleMouseDown}
182
221
  // onMouseMove={this.handleMouseMove}
183
222
  // onMouseUp={this.handleMouseUp}
@@ -185,12 +224,15 @@ var SeekBar = /*#__PURE__*/function (_Component) {
185
224
  getPercent: this.getPercent,
186
225
  stepForward: this.stepForward,
187
226
  stepBack: this.stepBack
188
- }, /*#__PURE__*/_react["default"].createElement(_PlayProgressBar["default"], _extends({
227
+ }), /*#__PURE__*/_react["default"].createElement(_PlayProgressBar["default"], _extends({
189
228
  currentTime: time,
190
- duration: duration.seconds,
229
+ duration: duration,
191
230
  playerType: playerType,
192
231
  assetType: assetType
193
232
  }, this.props)))), controlType === 'advanced' && !isFullscreen ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(AdvancedControlBlock, null, /*#__PURE__*/_react["default"].createElement(_Timeline["default"], _extends({}, this.props, {
233
+ scrollSeekBar: function scrollSeekBar() {
234
+ _this2.scrollToSeekbarMiddle();
235
+ },
194
236
  ref: function ref(c) {
195
237
  _this2.timeline = c;
196
238
  }
@@ -199,6 +241,5 @@ var SeekBar = /*#__PURE__*/function (_Component) {
199
241
  }]);
200
242
  return SeekBar;
201
243
  }(_react.Component);
202
- exports["default"] = SeekBar;
203
244
  SeekBar.displayName = 'SeekBar';
204
245
  SeekBar.propTypes = propTypes;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
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); }
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
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
@@ -10,37 +10,38 @@ var _reactDom = require("react-dom");
10
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
11
  var _propTypes = require("prop-types");
12
12
  var _components = require("@desynova-digital/components");
13
- var _utils = require("../utils");
13
+ var _utils = require("../../utils");
14
14
  var _templateObject;
15
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
- 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); }
17
- 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 _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); }
17
+ 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; }
18
18
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
19
19
  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); } }
20
20
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
21
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
22
- function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
23
- 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); }
24
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
25
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
21
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
22
+ 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); }
23
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
26
24
  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); }
27
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
28
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
25
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
29
26
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
27
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
28
+ 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); }
29
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
30
30
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
31
31
  var propTypes = {
32
32
  player: _propTypes.PropTypes.instanceOf(Object),
33
33
  initialTime: _propTypes.PropTypes.number,
34
34
  frameRate: _propTypes.PropTypes.number
35
35
  };
36
- var TimelineBlock = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: stretch;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0;\n .player-time {\n width: 100%;\n position: relative;\n height: 46px;\n user-select: none;\n &:first-child {\n p {\n left: 0px;\n }\n }\n &:last-child {\n width: 10px;\n ", " {\n display: none;\n }\n p {\n left: auto;\n right: 0px;\n }\n }\n ", " {\n position: absolute;\n left: 0;\n bottom: 0;\n }\n p {\n color: #aaa;\n font-size: 10px;\n font-family: SFUIText-Regular;\n left: -28px;\n top: 10px;\n letter-spacing: 0.5px;\n position: absolute;\n user-select: none;\n }\n }\n"])), _components.Icon.Element, _components.Icon.Element);
37
- var Timeline = /*#__PURE__*/function (_Component) {
36
+ var TimelineBlock = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n justify-content: space-between;\n align-items: stretch;\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0;\n width: ", ";\n .player-time {\n width: 100%;\n :not(:last-child) {\n min-width: 100px;\n }\n position: relative;\n height: 46px;\n user-select: none;\n &:first-child {\n p {\n left: 0px;\n }\n }\n &:last-child {\n flex-grow: 1;\n ", " {\n display: none;\n }\n p {\n left: auto;\n right: 0px;\n }\n }\n ", " {\n position: absolute;\n left: 0;\n bottom: 0;\n }\n p {\n color: #aaa;\n font-size: 10px;\n font-family: SFUIText-Regular;\n left: -28px;\n top: 10px;\n letter-spacing: 0.5px;\n position: absolute;\n user-select: none;\n }\n }\n"])), function (props) {
37
+ return props.maxWidth ? props.maxWidth : '';
38
+ }, _components.Icon.Element, _components.Icon.Element);
39
+ var Timeline = exports["default"] = /*#__PURE__*/function (_Component) {
38
40
  _inherits(Timeline, _Component);
39
- var _super = _createSuper(Timeline);
40
41
  function Timeline(props, context) {
41
42
  var _this;
42
43
  _classCallCheck(this, Timeline);
43
- _this = _super.call(this, props, context);
44
+ _this = _callSuper(this, Timeline, [props, context]);
44
45
  _this.state = {
45
46
  timeArray: []
46
47
  };
@@ -54,45 +55,56 @@ var Timeline = /*#__PURE__*/function (_Component) {
54
55
  }
55
56
  }, {
56
57
  key: "componentDidUpdate",
57
- value: function componentDidUpdate(prevProps, prevState) {
58
- var _prevProps$duration, _this$props$duration;
59
- if (((_prevProps$duration = prevProps.duration) === null || _prevProps$duration === void 0 ? void 0 : _prevProps$duration.seconds) !== ((_this$props$duration = this.props.duration) === null || _this$props$duration === void 0 ? void 0 : _this$props$duration.seconds)) {
60
- this.generateTimeline();
61
- }
58
+ value: function componentDidUpdate(prevProps) {
59
+ var _this$props = this.props,
60
+ scrollSeekBar = _this$props.scrollSeekBar,
61
+ zoom = _this$props.zoom;
62
+ if (prevProps.zoom !== zoom) scrollSeekBar && scrollSeekBar();
62
63
  }
63
64
  }, {
64
65
  key: "generateTimeline",
65
- value: function generateTimeline() {
66
- var seconds = this.props.duration.seconds;
66
+ value: function generateTimeline(zoomFactor) {
67
+ var player = this.props.player;
67
68
  var timelineBlock = (0, _reactDom.findDOMNode)(this.timelineBlock);
68
69
  var perTimeWidth = 100;
69
- var sliderWidth = timelineBlock.offsetWidth;
70
+ var sliderWidth = 0;
71
+ if (zoomFactor > 0) {
72
+ sliderWidth = (document.getElementById('seekbar-control-block').clientWidth * zoomFactor * 20).toFixed(0);
73
+ } else {
74
+ sliderWidth = document.getElementById('seekbar-control-block').clientWidth.toFixed(0);
75
+ }
70
76
  var timeBlocks = parseInt(sliderWidth / perTimeWidth, 10);
71
- var timeDistance = parseInt(seconds / timeBlocks, 10);
77
+ var timeDistance = parseInt(player.duration / timeBlocks, 10);
72
78
  var timeArray = [0];
73
79
  for (var i = 0; i < timeBlocks; i++) {
74
80
  var lastValue = timeArray[timeArray.length - 1];
75
81
  var currentTime = lastValue + timeDistance;
76
- if (currentTime + timeDistance < seconds) {
82
+ if (currentTime + timeDistance < player.duration) {
77
83
  timeArray.push(currentTime);
78
84
  } else {
79
- timeArray.push(seconds);
85
+ timeArray.push(player.duration);
80
86
  break;
81
87
  }
82
88
  }
83
89
  this.setState({
84
- timeArray: timeArray
90
+ timeArray: timeArray,
91
+ zoom: zoomFactor,
92
+ maxWidth: sliderWidth + 'px'
85
93
  });
86
94
  }
87
95
  }, {
88
96
  key: "render",
89
97
  value: function render() {
90
98
  var _this2 = this;
91
- var _this$props = this.props,
92
- initialTime = _this$props.initialTime,
93
- frameRate = _this$props.frameRate;
94
- var timeArray = this.state.timeArray;
99
+ var _this$props2 = this.props,
100
+ initialTime = _this$props2.initialTime,
101
+ frameRate = _this$props2.frameRate;
102
+ var _this$state = this.state,
103
+ timeArray = _this$state.timeArray,
104
+ maxWidth = _this$state.maxWidth;
95
105
  return /*#__PURE__*/_react["default"].createElement(TimelineBlock, {
106
+ id: "timeline-block",
107
+ maxWidth: maxWidth,
96
108
  ref: function ref(c) {
97
109
  _this2.timelineBlock = c;
98
110
  }
@@ -113,6 +125,5 @@ var Timeline = /*#__PURE__*/function (_Component) {
113
125
  }]);
114
126
  return Timeline;
115
127
  }(_react.Component);
116
- exports["default"] = Timeline;
117
128
  Timeline.propTypes = propTypes;
118
129
  Timeline.displayName = 'Timeline';