@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
  });
@@ -10,29 +10,33 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
10
  var _propTypes = require("prop-types");
11
11
  var _components = require("@desynova-digital/components");
12
12
  var _lodash = _interopRequireDefault(require("lodash"));
13
+ var _reactDom = require("react-dom");
13
14
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
15
+ /* eslint-disable jsx-a11y/mouse-events-have-key-events */
16
+ /* eslint-disable jsx-a11y/click-events-have-key-events */
17
+ /* eslint-disable react/no-array-index-key */
14
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
- 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); }
16
- 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; }
17
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
23
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
20
24
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
21
25
  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); } }
22
26
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
23
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
24
- 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); }
25
- 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); }
26
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
27
- 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); }; }
27
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
28
+ 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); }
29
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
28
30
  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 _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
30
- 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; } }
31
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
31
32
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
33
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
34
+ 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); }
35
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
32
36
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
33
- /*
34
- * import { colors } from '@desynova-digital/tokens';
35
- * import colors from '../colors';
37
+ /*
38
+ * import { colors } from '@desynova-digital/tokens';
39
+ * import colors from '../colors';
36
40
  */
37
41
 
38
42
  var propTypes = {
@@ -44,33 +48,40 @@ var propTypes = {
44
48
  var defaultProps = {
45
49
  player: {}
46
50
  };
47
- var PointersContainer = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n"])));
51
+ var PointersContainer = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n width: ", ";\n"])), function (props) {
52
+ return props.width || '100%';
53
+ });
48
54
  var PointerBlock = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n width: 100%;\n height: 20px;\n position: relative;\n border-top: 1px solid #333333;\n border-bottom: 1px solid #333333;\n .empty-pointers-msg {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n p {\n font-family: SFUIText-Medium;\n font-size: 11px;\n color: #aaaaaa;\n }\n ", " {\n margin: 0 5px;\n }\n }\n"])), _components.Icon.Element);
49
55
  var MarkerTagsBlock = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n min-width: 100px;\n max-width: 100px;\n position: relative;\n height: 100%;\n .tags-block {\n height: 20px;\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 p {\n line-height: 18px;\n padding: 0 10px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n }\n"])));
50
- var ToolTipStyles = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n z-index: 2;\n height: 18px;\n transition: left 0.1s ease-in-out;\n\n .tooltip-container {\n border-radius: 0.25rem;\n padding: 5px;\n width: fit-content;\n background: #ffffff;\n color: #666666;\n\n h4 {\n white-space: nowrap;\n font-size: 12px;\n }\n\n &:after {\n content: '';\n position: absolute;\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-top: 5px solid white;\n ", "\n left: 50%;\n transform: translateX(-50%);\n }\n }\n"])), function (props) {
56
+ var ToolTipStyles = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n position: absolute;\n z-index: 2;\n height: 18px;\n transition: left 0.1s ease-in-out;\n\n .tooltip-container {\n border-radius: 0.25rem;\n padding: 5px;\n width: fit-content;\n background: #ffffff;\n color: #666666;\n\n em{\n font-style: italic; \n }\n\n strong{\n font-weight: bold; \n }\n\n h4 {\n white-space: nowrap;\n font-size: 12px;\n }\n\n &:after {\n content: '';\n position: absolute;\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-top: 5px solid white;\n ", "\n left: ", ";\n transform: translateX(-50%);\n }\n }\n"])), function (props) {
51
57
  return props.multiline ? 'bottom: -21px;' : 'bottom: -9px;';
58
+ }, function (props) {
59
+ return props.tooltipPointer ? props.tooltipPointer + 'px' : '50%';
52
60
  });
53
- var PointersBar = /*#__PURE__*/function (_Component) {
61
+ var PointersBar = exports["default"] = /*#__PURE__*/function (_Component) {
54
62
  _inherits(PointersBar, _Component);
55
- var _super = _createSuper(PointersBar);
56
63
  function PointersBar(props) {
57
64
  var _this;
58
65
  _classCallCheck(this, PointersBar);
59
- _this = _super.call(this, props);
66
+ _this = _callSuper(this, PointersBar, [props]);
60
67
  _this.getPointerStyle = _this.getPointerStyle.bind(_assertThisInitialized(_this));
61
68
  _this.state = {
62
69
  tooltip: {
63
70
  isVisible: false
64
- }
71
+ },
72
+ tooltipPointer: 0
65
73
  };
66
74
  _this._tooltipRef = /*#__PURE__*/_react["default"].createRef();
67
75
  _this.renderComp = 0;
76
+ _this.zoom = 0;
68
77
  return _this;
69
78
  }
70
79
  _createClass(PointersBar, [{
71
80
  key: "shouldComponentUpdate",
72
81
  value: function shouldComponentUpdate(nextProps, nextState) {
73
- if (_lodash["default"].isEqual(nextProps.markers, this.props.markers) && !this.renderComp) {
82
+ if (nextProps.zoom !== this.props.zoom) {
83
+ return true;
84
+ } else if (_lodash["default"].isEqual(nextProps.markers, this.props.markers) && !this.renderComp) {
74
85
  return false;
75
86
  }
76
87
  this.renderComp = 0;
@@ -78,30 +89,32 @@ var PointersBar = /*#__PURE__*/function (_Component) {
78
89
  }
79
90
  }, {
80
91
  key: "onMarkerClick",
81
- value: function onMarkerClick(e, marker) {
92
+ value: function onMarkerClick(e, marker, index) {
82
93
  var _this$props = this.props,
83
94
  onTagClick = _this$props.onTagClick,
84
- actionClick = _this$props.actionClick;
95
+ actions = _this$props.actions,
96
+ playerType = _this$props.playerType;
85
97
  var start_time = parseFloat(e.target.getAttribute('leftpos'));
86
98
  var end_time = parseFloat(e.target.getAttribute('rightpos'));
87
- // actions.handleMarkerUpdate(start_time, end_time);
88
- actionClick({
89
- action: 'pause'
90
- });
91
- // actions.pause();
92
- actionClick({
93
- action: 'seek',
94
- value: start_time
95
- });
96
- // actions.seek(start_time);
99
+ actions.handleMarkerUpdate(start_time, end_time);
100
+ actions.pause();
101
+ actions.seek(start_time);
102
+ if (playerType === 'subtitle') {
103
+ var scrollObject = {
104
+ tableListScrollTop: index
105
+ };
106
+ localStorage.setItem('scrollObject', JSON.stringify(scrollObject));
107
+ }
97
108
  onTagClick(start_time, end_time, marker);
98
109
  }
99
110
  }, {
100
111
  key: "getPointerStyle",
101
112
  value: function getPointerStyle(leftMarker, rightMarker, index) {
102
- var duration = this.props.duration;
103
- var left = leftMarker / duration.seconds * 100;
104
- var right = rightMarker / duration.seconds * 100;
113
+ var _this$props2 = this.props,
114
+ player = _this$props2.player,
115
+ zoom = _this$props2.zoom;
116
+ var left = leftMarker / player.duration * 100;
117
+ var right = rightMarker / player.duration * 100;
105
118
  var width = right - left;
106
119
  var style = {
107
120
  left: "".concat(left, "%"),
@@ -121,19 +134,36 @@ var PointersBar = /*#__PURE__*/function (_Component) {
121
134
  value: function setTooltipData(e, title) {
122
135
  var _this2 = this;
123
136
  var tooltip = this.state.tooltip;
137
+ var tooltipPointer = 0;
124
138
  tooltip.isVisible = false;
125
139
  tooltip.text = title;
126
- tooltip.bottom = window.innerHeight - e.target.getBoundingClientRect().top; // e.target.getBoundingClientRect().top - e.target.getBoundingClientRect().height - 10;
127
- tooltip.bottom = title.line1 ? tooltip.bottom + 22 : tooltip.bottom + 10;
128
- tooltip.left = e.target.getBoundingClientRect().left + (e.target.getBoundingClientRect().right - e.target.getBoundingClientRect().left) / 2;
140
+ // tooltip.bottom = window.innerHeight - e.target.getBoundingClientRect().top; // e.target.getBoundingClientRect().top - e.target.getBoundingClientRect().height - 10;
141
+ // tooltip.bottom = title.line1 && title.line2 ? tooltip.bottom + 22 : tooltip.bottom + 10;
142
+ tooltip.bottom = title.line1 && title.line2 ? 42 : 30;
143
+ tooltipPointer = tooltip.left = e.target.getBoundingClientRect().left + (e.target.getBoundingClientRect().right - e.target.getBoundingClientRect().left) / 2 - 100;
129
144
  this.renderComp = 1;
130
145
  this.setState(_objectSpread({}, tooltip), function () {
131
146
  var tooltip = _this2.state.tooltip;
132
- var tooltipRefOffset = _this2._tooltipRef.current && _this2._tooltipRef.current.offsetWidth ? _this2._tooltipRef.current.offsetWidth / 2 : 0;
147
+ var viewportWidth = window.innerWidth || document.documentElement.clientWidth;
148
+ var tooltipRenderedWidth = _this2._tooltipRef.current && _this2._tooltipRef.current.offsetWidth ? _this2._tooltipRef.current.offsetWidth / 2 : 0;
149
+ var totalWidthOfTooltipIncludingLeft = tooltip.left + tooltipRenderedWidth;
150
+ if (totalWidthOfTooltipIncludingLeft > viewportWidth) {
151
+ var extraSpacing = totalWidthOfTooltipIncludingLeft - viewportWidth;
152
+ tooltip.left = tooltip.left - tooltipRenderedWidth - extraSpacing - 10; //5 for wxtra buffer spacing on right
153
+ tooltipPointer = tooltipRenderedWidth + extraSpacing + 10;
154
+ } else {
155
+ tooltip.left = tooltip.left - tooltipRenderedWidth;
156
+ if (tooltip.left < 0) {
157
+ tooltipPointer = tooltipPointer;
158
+ } else {
159
+ tooltipPointer = 0;
160
+ }
161
+ }
133
162
  tooltip.isVisible = true;
134
- tooltip.left = tooltip.left - tooltipRefOffset;
135
163
  _this2.renderComp = 1;
136
- _this2.setState(_objectSpread({}, tooltip));
164
+ _this2.setState(_objectSpread(_objectSpread({}, tooltip), {}, {
165
+ tooltipPointer: tooltipPointer
166
+ }));
137
167
  });
138
168
  }
139
169
  }, {
@@ -148,32 +178,54 @@ var PointersBar = /*#__PURE__*/function (_Component) {
148
178
  }
149
179
  return data;
150
180
  }
181
+ }, {
182
+ key: "generateZoomWithOfPointersBar",
183
+ value: function generateZoomWithOfPointersBar(zoom) {
184
+ var pointerBlock = (0, _reactDom.findDOMNode)(this.pointerBlock);
185
+ var timelineBlock = (0, _reactDom.findDOMNode)(this.timelineBlock);
186
+ var width = 0;
187
+ if (zoom > 0) {
188
+ width = (document.getElementById('seekbar-control-block').clientWidth * zoom * 20).toFixed(0) + 'px';
189
+ } else {
190
+ width = document.getElementById('seekbar-control-block').clientWidth.toFixed(0) + 'px';
191
+ }
192
+ this.setState({
193
+ zoom: zoom,
194
+ width: width
195
+ });
196
+ }
151
197
  }, {
152
198
  key: "render",
153
199
  value: function render() {
154
200
  var _this3 = this;
155
- var markers = this.props.markers;
156
- var _this$state$tooltip = this.state.tooltip,
201
+ var _this$props3 = this.props,
202
+ markers = _this$props3.markers,
203
+ zoom = _this$props3.zoom;
204
+ var _this$state = this.state,
205
+ _this$state$tooltip = _this$state.tooltip,
157
206
  isVisible = _this$state$tooltip.isVisible,
158
207
  text = _this$state$tooltip.text,
159
208
  left = _this$state$tooltip.left,
160
- bottom = _this$state$tooltip.bottom;
209
+ bottom = _this$state$tooltip.bottom,
210
+ tooltipPointer = _this$state.tooltipPointer,
211
+ width = _this$state.width;
161
212
  var self = this;
162
213
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, markers && markers.length ? markers.map(function (marker_obj) {
163
214
  return /*#__PURE__*/_react["default"].createElement(PointersContainer, {
215
+ id: "pointers-block",
216
+ ref: function ref(c) {
217
+ _this3.pointerBlock = c;
218
+ },
219
+ width: width,
164
220
  key: marker_obj.name
165
- }, /*#__PURE__*/_react["default"].createElement(MarkerTagsBlock, {
166
- key: "".concat(marker_obj.name, "-tags-block")
167
- }, /*#__PURE__*/_react["default"].createElement("div", {
168
- className: "tags-block"
169
- }, /*#__PURE__*/_react["default"].createElement("p", null, marker_obj.name))), /*#__PURE__*/_react["default"].createElement(PointerBlock, {
221
+ }, /*#__PURE__*/_react["default"].createElement(PointerBlock, {
170
222
  key: "".concat(marker_obj.name, "-key-tags-block")
171
223
  }, marker_obj && marker_obj.values && marker_obj.values.length ? marker_obj.values.map(function (marker, index) {
172
224
  var style = self.getPointerStyle(marker.start_time, marker.end_time, index);
173
225
  return /*#__PURE__*/_react["default"].createElement("div", {
174
226
  className: "marker-blocks",
175
227
  onClick: function onClick(e) {
176
- _this3.onMarkerClick(e, marker);
228
+ _this3.onMarkerClick(e, marker, index);
177
229
  },
178
230
  onMouseOver: function onMouseOver(e) {
179
231
  self.setTooltipData(e, _this3.getTitle(marker));
@@ -205,27 +257,36 @@ var PointersBar = /*#__PURE__*/function (_Component) {
205
257
  stroke: "#fff",
206
258
  width: 7,
207
259
  height: 11
208
- }), /*#__PURE__*/_react["default"].createElement("p", null, "to create ", marker_obj.name, " in the selected range. "))), /*#__PURE__*/_react["default"].createElement(MarkerTagsBlock, null, /*#__PURE__*/_react["default"].createElement("div", {
209
- className: "tags-block"
210
- }, /*#__PURE__*/_react["default"].createElement("p", null))));
260
+ }), /*#__PURE__*/_react["default"].createElement("p", null, "to create ", marker_obj.name, " in the selected range. "))));
211
261
  }) : null, text && /*#__PURE__*/_react["default"].createElement(ToolTipStyles, {
212
- multiline: !!text.line1,
262
+ multiline: !!text.line1 && text.line1.length && text.line2,
213
263
  ref: this._tooltipRef,
264
+ left: left,
265
+ tooltipPointer: tooltipPointer,
214
266
  style: {
215
- left: left || 0,
267
+ left: left < 1 ? 1 : left,
216
268
  bottom: bottom || 0,
217
269
  visibility: isVisible ? 'visible' : 'hidden'
218
270
  }
219
271
  }, /*#__PURE__*/_react["default"].createElement("div", {
220
272
  className: "tooltip-container"
221
- }, text.line1 && /*#__PURE__*/_react["default"].createElement("h4", null, text.line1), text.line2 && /*#__PURE__*/_react["default"].createElement("h4", null, text.line2), !text.line1 && /*#__PURE__*/_react["default"].createElement("h4", null, text))), /*#__PURE__*/_react["default"].createElement("div", {
222
- id: "dummy-container"
223
- }));
273
+ }, text.line1 && /*#__PURE__*/_react["default"].createElement("h4", {
274
+ dangerouslySetInnerHTML: {
275
+ __html: text.line1
276
+ }
277
+ }), text.line2 && /*#__PURE__*/_react["default"].createElement("h4", {
278
+ dangerouslySetInnerHTML: {
279
+ __html: text.line2
280
+ }
281
+ }), !text.line1 && /*#__PURE__*/_react["default"].createElement("h4", {
282
+ dangerouslySetInnerHTML: {
283
+ __html: text
284
+ }
285
+ }))));
224
286
  }
225
287
  }]);
226
288
  return PointersBar;
227
289
  }(_react.Component);
228
- exports["default"] = PointersBar;
229
290
  PointersBar.propTypes = propTypes;
230
291
  PointersBar.defaultProps = defaultProps;
231
292
  PointersBar.displayName = 'PointersBar';
@@ -0,0 +1,50 @@
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
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
+ var propTypes = {
11
+ poster: _propTypes.PropTypes.string,
12
+ player: _propTypes.PropTypes.instanceOf(Object),
13
+ actions: _propTypes.PropTypes.instanceOf(Object)
14
+ };
15
+ var defaultProps = {
16
+ poster: '',
17
+ player: {},
18
+ actions: {}
19
+ };
20
+ function PosterImage(_ref) {
21
+ var poster = _ref.poster,
22
+ player = _ref.player,
23
+ actions = _ref.actions;
24
+ if (!poster || player.hasStarted) {
25
+ return null;
26
+ }
27
+ return /*#__PURE__*/_react["default"].createElement("div", {
28
+ role: "presentation",
29
+ style: {
30
+ backgroundImage: "url(\"".concat(poster, "\")"),
31
+ backgroundSize: 'auto 100%',
32
+ width: '100%',
33
+ height: '100%',
34
+ position: 'absolute',
35
+ top: 0,
36
+ left: 0,
37
+ backgroundPosition: '50% 50%'
38
+ },
39
+ onClick: function onClick() {
40
+ if (player.paused) {
41
+ actions.play();
42
+ actions.handleVideoRewind(false);
43
+ }
44
+ }
45
+ });
46
+ }
47
+ PosterImage.propTypes = propTypes;
48
+ PosterImage.defaultProps = defaultProps;
49
+ PosterImage.displayName = 'PosterImage';
50
+ var _default = exports["default"] = PosterImage;
@@ -3,11 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
6
+ exports["default"] = SDOutline;
7
7
  var _react = _interopRequireDefault(require("react"));
8
8
  var _styledComponents = _interopRequireDefault(require("styled-components"));
9
9
  var _propTypes = require("prop-types");
10
- var _colors = _interopRequireDefault(require("../utils/colors"));
10
+ var _colors = _interopRequireDefault(require("../colors"));
11
11
  var _templateObject, _templateObject2;
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
13
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
@@ -17,66 +17,30 @@ var propTypes = {
17
17
  };
18
18
  var SDPlayerBorder = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n opacity: 0.3;\n border: solid 1px ", ";\n top: 50%;\n left: 50%;\n -webkit-transform: translate(-50%, -50%);\n -ms-transform: translate(-50%, -50%);\n -o-transform: translate(-50%, -50%);\n -moz-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n position: absolute;\n padding-left: 75%;\n height: 100%;\n"])), _colors["default"].common.base.white);
19
19
  var SDBorderText = (0, _styledComponents["default"])('p')(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n color: #fff;\n padding-top: 25%;\n position: absolute;\n font-family: SFUIText-Regular;\n text-shadow: 0 0 4px rgba(0, 0, 0, 0.5);\n font-size: 12px;\n top: 20%;\n transform: translate(-50%, -50%) rotate(-90deg);\n"])));
20
- var SDOutline = function SDOutline(_ref) {
21
- var SDBorderActive = _ref.SDBorderActive,
22
- actionClick = _ref.actionClick,
23
- paused = _ref.paused;
20
+ function SDOutline(_ref) {
21
+ var player = _ref.player,
22
+ actions = _ref.actions;
24
23
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(SDPlayerBorder, {
25
- className: "sdborders",
26
- style: !SDBorderActive ? {
24
+ style: !player.SDBorderActive ? {
27
25
  display: 'none'
28
26
  } : {
29
27
  display: 'block'
30
28
  },
31
29
  onClick: function onClick() {
32
- if (paused) {
33
- actionClick({
34
- action: 'play'
35
- });
30
+ if (player.paused) {
31
+ actions.play();
36
32
  } else {
37
- actionClick({
38
- action: 'pause'
39
- });
33
+ actions.pause();
40
34
  }
41
- // actions.handleVideoRewind(false);
35
+ actions.handleVideoRewind(false);
42
36
  }
43
37
  }), /*#__PURE__*/_react["default"].createElement(SDBorderText, {
44
- style: !SDBorderActive ? {
38
+ style: !player.SDBorderActive ? {
45
39
  display: 'none'
46
40
  } : {
47
41
  display: 'block'
48
42
  }
49
43
  }, "4:3 Safe Area"));
50
- };
51
-
52
- // export default function SDOutline({ player, actions }) {
53
- // return (
54
- // <React.Fragment>
55
- // <SDPlayerBorder
56
- // style={
57
- // !player.SDBorderActive ? { display: 'none' } : { display: 'block' }
58
- // }
59
- // onClick={() => {
60
- // if (player.paused) {
61
- // actions.play();
62
- // } else {
63
- // actions.pause();
64
- // }
65
- // actions.handleVideoRewind(false);
66
- // }}
67
- // />
68
- // <SDBorderText
69
- // style={
70
- // !player.SDBorderActive ? { display: 'none' } : { display: 'block' }
71
- // }
72
- // >
73
- // 4:3 Safe Area
74
- // </SDBorderText>
75
- // </React.Fragment>
76
- // );
77
- // }
78
-
44
+ }
79
45
  SDOutline.propTypes = propTypes;
80
- SDOutline.displayName = 'SDOutline';
81
- var _default = SDOutline;
82
- exports["default"] = _default;
46
+ SDOutline.displayName = 'SDOutline';