@desynova-digital/player 4.0.93 → 4.0.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/components/AudioMeter.js
CHANGED
|
@@ -22,8 +22,6 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
|
|
|
22
22
|
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
23
23
|
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
24
24
|
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
25
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : 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
25
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
28
26
|
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
29
27
|
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
@@ -31,6 +29,9 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
31
29
|
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
32
30
|
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
33
31
|
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
32
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
33
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
34
|
+
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); }
|
|
34
35
|
function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); }
|
|
35
36
|
var propTypes = {
|
|
36
37
|
height: _propTypes.PropTypes.number,
|
|
@@ -51,6 +52,17 @@ var AudioMeter = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
51
52
|
var _this;
|
|
52
53
|
_classCallCheck(this, AudioMeter);
|
|
53
54
|
_this = _callSuper(this, AudioMeter, [props, context]);
|
|
55
|
+
_defineProperty(_this, "handleFullscreenChange", function () {
|
|
56
|
+
// Wait for browser to apply layout after exiting fullscreen
|
|
57
|
+
requestAnimationFrame(function () {
|
|
58
|
+
setTimeout(function () {
|
|
59
|
+
_this.getNoOfStacks();
|
|
60
|
+
_this.setState({
|
|
61
|
+
_resizeFix: Date.now()
|
|
62
|
+
}); // force rerender
|
|
63
|
+
}, 50); // 30–50ms is enough to wait for DOM resize
|
|
64
|
+
});
|
|
65
|
+
});
|
|
54
66
|
_this.state = {
|
|
55
67
|
stacksArr: [],
|
|
56
68
|
rangeArray: [],
|
|
@@ -58,7 +70,8 @@ var AudioMeter = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
58
70
|
audioPan: {
|
|
59
71
|
left: true,
|
|
60
72
|
right: true
|
|
61
|
-
}
|
|
73
|
+
},
|
|
74
|
+
_resizeFix: null
|
|
62
75
|
};
|
|
63
76
|
_this.dbRange = -48;
|
|
64
77
|
_this.channelCount = 2;
|
|
@@ -78,11 +91,14 @@ var AudioMeter = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
78
91
|
if (player.hasStarted) {
|
|
79
92
|
this.initializeMeter();
|
|
80
93
|
}
|
|
94
|
+
// Listen for exiting fullscreen
|
|
95
|
+
document.addEventListener('fullscreenchange', this.handleFullscreenChange);
|
|
81
96
|
}
|
|
82
97
|
}, {
|
|
83
98
|
key: "componentWillUnmount",
|
|
84
99
|
value: function componentWillUnmount() {
|
|
85
100
|
this.disconnectMeter();
|
|
101
|
+
document.removeEventListener('fullscreenchange', this.handleFullscreenChange);
|
|
86
102
|
}
|
|
87
103
|
}, {
|
|
88
104
|
key: "disconnectMeter",
|
package/components/Player.js
CHANGED
|
@@ -158,7 +158,7 @@ var defaultProps = {
|
|
|
158
158
|
onVolumeChange: null
|
|
159
159
|
};
|
|
160
160
|
var PlayerBlock = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n height: 100%;\n"])));
|
|
161
|
-
var PlayerContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n\n.rightbar-visible .right-video-section {\n
|
|
161
|
+
var PlayerContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n\n// .rightbar-visible .right-video-section {\n// display: block !important;\n// }\n\n.fullscreen-left-only .right-video-section {\n display: none !important;\n}\n\n.fullscreen-left-only .left-video-section {\n display: block !important;\n}\n &.fullscreen-left-only {\n .right-video-section {\n display: none !important;\n }\n .left-video-section {\n width: 100% !important;\n }\n}\n display: flex;\n justify-content: flex-start;\n background: #000000;\n .left-video-section {\n width: ", ";\n position: relative;\n }\n .audio-meter-block {\n position: relative;\n width: 0px;\n display: none;\n &.qc {\n width: 70px;\n display: block;\n }\n }\n .right-video-section {\n position: relative;\n width: ", ";\n"])), function (props) {
|
|
162
162
|
if (!props.isRightMenuVisible) {
|
|
163
163
|
return '100%';
|
|
164
164
|
}
|
|
@@ -201,6 +201,18 @@ var Player = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
201
201
|
var _this;
|
|
202
202
|
_classCallCheck(this, Player);
|
|
203
203
|
_this = _callSuper(this, Player, [props]);
|
|
204
|
+
_defineProperty(_this, "handleFullscreenFix", function () {
|
|
205
|
+
// Wait for fullscreen to finish layout
|
|
206
|
+
requestAnimationFrame(function () {
|
|
207
|
+
requestAnimationFrame(function () {
|
|
208
|
+
// Force browser reflow
|
|
209
|
+
document.body.getBoundingClientRect();
|
|
210
|
+
|
|
211
|
+
// Now trigger resize for React / your components
|
|
212
|
+
window.dispatchEvent(new Event('resize'));
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
});
|
|
204
216
|
_defineProperty(_this, "closeSidemenu", function () {
|
|
205
217
|
var _this$manager$getStat = _this.manager.getState(),
|
|
206
218
|
player = _this$manager$getStat.player;
|
|
@@ -260,7 +272,7 @@ var Player = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
260
272
|
_this.actions.handlePlayerType(props.playerType);
|
|
261
273
|
_this.actions.handleControlType(props.controlType);
|
|
262
274
|
if (_this.props.fullScreenRef) {
|
|
263
|
-
_this.props.fullScreenRef.current = _this;
|
|
275
|
+
_this.props.fullScreenRef.current.player = _this;
|
|
264
276
|
}
|
|
265
277
|
return _this;
|
|
266
278
|
}
|
|
@@ -359,6 +371,7 @@ var Player = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
359
371
|
value: function componentDidMount() {
|
|
360
372
|
this.handleResize();
|
|
361
373
|
window.addEventListener('resize', this.handleResize);
|
|
374
|
+
document.addEventListener('fullscreenchange', this.handleFullscreenFix);
|
|
362
375
|
_fullscreen["default"].addEventListener(this.handleFullScreenChange);
|
|
363
376
|
this.handleMarginsAndGrid();
|
|
364
377
|
/*
|
|
@@ -389,6 +402,7 @@ var Player = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
389
402
|
value: function componentWillUnmount() {
|
|
390
403
|
// Remove event listener
|
|
391
404
|
window.removeEventListener('resize', this.handleResize);
|
|
405
|
+
document.removeEventListener('fullscreenchange', this.handleFullscreenFix);
|
|
392
406
|
_fullscreen["default"].removeEventListener(this.handleFullScreenChange);
|
|
393
407
|
if (this.controlsHideTimer) {
|
|
394
408
|
window.clearTimeout(this.controlsHideTimer);
|
|
@@ -462,6 +476,8 @@ var Player = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
462
476
|
key: "progress-control",
|
|
463
477
|
order: 3
|
|
464
478
|
})), /*#__PURE__*/_react["default"].createElement(_RenderCommentMarkers["default"], _extends({
|
|
479
|
+
isRightMenuVisible: isRightMenuVisible,
|
|
480
|
+
fullScreenRef: this.props.fullScreenRef,
|
|
465
481
|
duration: fullProps === null || fullProps === void 0 || (_fullProps$player = fullProps.player) === null || _fullProps$player === void 0 ? void 0 : _fullProps$player.duration,
|
|
466
482
|
playerType: fullProps.playerType,
|
|
467
483
|
isFullscreen: fullProps === null || fullProps === void 0 || (_fullProps$player2 = fullProps.player) === null || _fullProps$player2 === void 0 ? void 0 : _fullProps$player2.isFullscreen,
|
|
@@ -887,6 +903,13 @@ var Player = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
887
903
|
video.style.margin = '0 auto';
|
|
888
904
|
video.classList.add('ratio-border');
|
|
889
905
|
}
|
|
906
|
+
|
|
907
|
+
// Condition for spacing in full screen mode for review player
|
|
908
|
+
if (player.isFullscreen && (playerType === 'snp_edit' || playerType === 'pgm_edit')) {
|
|
909
|
+
var reduceBy = 12; // adjust between 10–15px
|
|
910
|
+
var newH = Math.max(videoHeight - reduceBy, 0);
|
|
911
|
+
video.style.height = newH + 'px';
|
|
912
|
+
}
|
|
890
913
|
// this.video.handleResize();
|
|
891
914
|
}
|
|
892
915
|
}, {
|
|
@@ -941,7 +964,7 @@ var Player = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
941
964
|
onBlur: this.handleBlur,
|
|
942
965
|
tabIndex: "-1"
|
|
943
966
|
}, /*#__PURE__*/_react["default"].createElement(PlayerContainer, _extends({
|
|
944
|
-
className: "player-container
|
|
967
|
+
className: "player-container",
|
|
945
968
|
ref: function ref(playerContainer) {
|
|
946
969
|
_this5._playerContainer = playerContainer;
|
|
947
970
|
}
|
|
@@ -47,12 +47,17 @@ var CameraButton = /*#__PURE__*/function (_Component) {
|
|
|
47
47
|
value: function handleClick() {
|
|
48
48
|
var _this$props = this.props,
|
|
49
49
|
onTakeSnapshot = _this$props.onTakeSnapshot,
|
|
50
|
-
video = _this$props.video
|
|
50
|
+
video = _this$props.video,
|
|
51
|
+
onRightMenuVisible = _this$props.onRightMenuVisible,
|
|
52
|
+
actions = _this$props.actions,
|
|
53
|
+
player = _this$props.player;
|
|
51
54
|
var timeObj = {
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
thumbnail: (0, _utils.secondsToTime)(this.props.video.currentTime, this.props.frameRate, this.props.initialTime),
|
|
56
|
+
thumbnail_seconds: this.props.video.currentTime
|
|
54
57
|
};
|
|
55
58
|
onTakeSnapshot(timeObj);
|
|
59
|
+
actions.toggleRightBar(player, true);
|
|
60
|
+
onRightMenuVisible(true);
|
|
56
61
|
}
|
|
57
62
|
}, {
|
|
58
63
|
key: "render",
|
|
@@ -8,7 +8,7 @@ exports["default"] = void 0;
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
10
10
|
var _components = require("@desynova-digital/components");
|
|
11
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
|
|
11
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
13
13
|
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); }
|
|
14
14
|
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 && {}.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; }
|
|
@@ -22,22 +22,22 @@ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.fre
|
|
|
22
22
|
/* ----------------------------------------------------------
|
|
23
23
|
TIMELINE MAIN WRAPPER
|
|
24
24
|
---------------------------------------------------------- */
|
|
25
|
-
var MarkerTimeline = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n width: 100%;\n height:
|
|
25
|
+
var MarkerTimeline = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n width: 100%;\n height: 18px;\n"])));
|
|
26
26
|
/* ----------------------------------------------------------
|
|
27
27
|
Marker Dot
|
|
28
28
|
---------------------------------------------------------- */
|
|
29
|
-
var MarkerDot = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: absolute;\n bottom: -6px;\n transform: translateX(-50%);\n width: 22px;\n height: 22px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #0c141d;\n z-index: ", ";\n pointer-events: auto;\n\n font-family: SFUIText-Medium;\n font-size: 10px;\n font-weight: 500;\n line-height: 12px;\n\n &::before {\n content: '';\n position: absolute;\n width: 32px;\n height: 32px;\n top: -6px;\n left: -6px;\n }\n\n /* --- NEW top vertical line --- */\n
|
|
29
|
+
var MarkerDot = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: absolute;\n bottom: -6px;\n transform: translateX(-50%);\n width: 22px;\n height: 22px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n color: #0c141d;\n z-index: ", ";\n pointer-events: auto;\n\n font-family: SFUIText-Medium;\n font-size: 10px;\n font-weight: 500;\n line-height: 12px;\n\n &::before {\n content: '';\n position: absolute;\n width: 32px;\n height: 32px;\n top: -6px;\n left: -6px;\n }\n\n /* --- NEW top vertical line --- */\n &::after {\n content: '';\n position: absolute;\n top: -5px;\n left: 50%;\n transform: translateX(-50%);\n width: 1.5px;\n height: 5px;\n background: #bfbfbf;\n opacity: ", ";\n transition: opacity 0.15s ease-out;\n }\n\n ", "\n"])), function (p) {
|
|
30
30
|
return p.isHovered ? 99999 : 9000;
|
|
31
31
|
}, function (p) {
|
|
32
32
|
return p.showLine ? 1 : 0;
|
|
33
33
|
}, function (p) {
|
|
34
|
-
return p.multi ? "\n background: linear-gradient(90deg, #A56EFC 0%, #2EBF91 100%);\n padding: 1px;\n\n & > div.inner {\n background: #061014;\n color: #fff;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n display:flex;\n align-items:center;\n justify-content:center;\n }\n " : "\n background: #
|
|
34
|
+
return p.multi ? "\n background: linear-gradient(90deg, #A56EFC 0%, #2EBF91 100%);\n padding: 1px;\n\n & > div.inner {\n background: #061014;\n color: #fff;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n display:flex;\n align-items:center;\n justify-content:center;\n }\n " : "\n background: #00CEC6;\n\n &:hover {\n background: #3bbfb6;\n }\n ";
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
/* ----------------------------------------------------------
|
|
38
38
|
END MARKER DOT
|
|
39
39
|
---------------------------------------------------------- */
|
|
40
|
-
var EndMarkerDot = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n position: absolute;\n bottom: -6px;\n transform: translateX(-50%);\n width: 24px; /* bigger like your screenshot */\n height: 24px;\n border-radius: 50%;\n background: #47d2c7; /* teal outer circle */\n border: 2px solid #00b9b0; /* ring / boundary */\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9000;\n opacity: 0;\n transition: opacity 0.15s ease-out;\n\n &::after {\n content: '';\n width: 6px; /* inner white dot */\n height: 6px;\n background: #ffffff;\n border-radius: 50%;\n }\n\n
|
|
40
|
+
var EndMarkerDot = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n position: absolute;\n bottom: -6px;\n transform: translateX(-50%);\n width: 24px; /* bigger like your screenshot */\n height: 24px;\n border-radius: 50%;\n background: #47d2c7; /* teal outer circle */\n border: 2px solid #00b9b0; /* ring / boundary */\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9000;\n opacity: 0;\n transition: opacity 0.15s ease-out;\n\n &::after {\n content: '';\n width: 6px; /* inner white dot */\n height: 6px;\n background: #ffffff;\n border-radius: 50%;\n }\n\n &::before {\n content: '';\n position: absolute;\n top: -5px;\n left: 50%;\n transform: translateX(-50%);\n width: 1.5px;\n height: 5px;\n background: #bfbfbf;\n opacity: 1;\n\n transition: opacity 0.15s ease-out;\n }\n"])));
|
|
41
41
|
|
|
42
42
|
/* ----------------------------------------------------------
|
|
43
43
|
SEGMENT LINE
|
|
@@ -47,12 +47,15 @@ var MarkerLine = _styledComponents["default"].div(_templateObject4 || (_template
|
|
|
47
47
|
/* ----------------------------------------------------------
|
|
48
48
|
HOVER BOX
|
|
49
49
|
---------------------------------------------------------- */
|
|
50
|
-
|
|
51
|
-
var
|
|
52
|
-
var
|
|
53
|
-
var
|
|
54
|
-
var
|
|
55
|
-
var
|
|
50
|
+
|
|
51
|
+
var HoverScroll = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n overflow-y: auto;\n max-height: 360px; /* 400 total - header height */\n\n /* Hide scrollbar everywhere */\n scrollbar-width: none;\n -ms-overflow-style: none;\n &::-webkit-scrollbar {\n display: none;\n }\n"])));
|
|
52
|
+
var HoverBox = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n position: absolute;\n bottom: 40px;\n left: 0;\n right: auto !important;\n width: max-content;\n\n background: #303f51;\n border: 2px solid rgba(255, 255, 255, 0.15);\n backdrop-filter: blur(12px);\n border-radius: 12px;\n padding: 0;\n color: white;\n z-index: 999999;\n box-shadow: 0 6px 22px rgba(0, 0, 0, 0.32);\n animation: fadeInBox 0.18s ease-out;\n\n display: flex;\n flex-direction: column;\n\n min-width: 180px;\n max-width: 220px;\n max-height: 400px;\n overflow: hidden; /* prevent scroll at root */\n"])));
|
|
53
|
+
var HoverHeader = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n background: #3e6673;\n color: #00cec6;\n font-size: 12px;\n font-weight: 700;\n padding: 10px 12px;\n border-top-left-radius: 12px;\n border-top-right-radius: 12px;\n font-family: SFUIText-Regular;\n\n position: sticky;\n top: 0;\n z-index: 2; /* must be above scroll content */\n\n width: 100%;\n box-sizing: border-box;\n"])));
|
|
54
|
+
var HoverComment = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n padding: 12px 14px;\n background: transparent;\n transition: background 0.15s ease, transform 0.15s ease;\n border-radius: 6px;\n position: relative;\n\n /* FIX */\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n\n &:hover {\n background: rgba(255, 255, 255, 0.07);\n }\n\n &:not(:last-child)::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 1.3px;\n background: rgba(255, 255, 255, 0.12);\n }\n"])));
|
|
55
|
+
var HoverName = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n color: #afb2ba;\n font-family: SFUIText-Regular;\n font-size: 12px;\n font-weight: 700;\n margin-bottom: 6px;\n text-transform: capitalize;\n"])));
|
|
56
|
+
var HoverTime = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n font-family: SFUIText-Regular;\n font-size: 11px;\n color: #9fa4ad;\n margin-bottom: 6px;\n"])));
|
|
57
|
+
var HoverText = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral(["\n font-family: SFUIText-Light;\n font-size: 14px;\n font-weight: 300;\n color: #ffffff;\n line-height: 18px;\n display: block;\n white-space: normal;\n overflow: visible;\n text-overflow: unset;\n\n /* FIX */\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n"])));
|
|
58
|
+
|
|
56
59
|
/* ----------------------------------------------------------
|
|
57
60
|
UTILITIES (FIXED)
|
|
58
61
|
---------------------------------------------------------- */
|
|
@@ -98,7 +101,9 @@ var RenderCommentMarkers = function RenderCommentMarkers(_ref) {
|
|
|
98
101
|
onRightMenuVisible = _ref.onRightMenuVisible,
|
|
99
102
|
actions = _ref.actions,
|
|
100
103
|
player = _ref.player,
|
|
101
|
-
frameRate = _ref.frameRate
|
|
104
|
+
frameRate = _ref.frameRate,
|
|
105
|
+
fullScreenRef = _ref.fullScreenRef,
|
|
106
|
+
isRightMenuVisible = _ref.isRightMenuVisible;
|
|
102
107
|
if (!['snp_edit', 'pgm_edit'].includes(playerType)) return null;
|
|
103
108
|
var _useState = (0, _react.useState)(null),
|
|
104
109
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -110,8 +115,9 @@ var RenderCommentMarkers = function RenderCommentMarkers(_ref) {
|
|
|
110
115
|
setHoverBoxHold = _useState4[1];
|
|
111
116
|
var containerRef = (0, _react.useRef)(null);
|
|
112
117
|
var hideTimer = (0, _react.useRef)(null);
|
|
113
|
-
|
|
114
|
-
|
|
118
|
+
var isLineVisible = function isLineVisible(time) {
|
|
119
|
+
return hovered === time || hoverBoxHold && hovered === time;
|
|
120
|
+
};
|
|
115
121
|
var handleMouseEnter = function handleMouseEnter(time) {
|
|
116
122
|
clearTimeout(hideTimer.current);
|
|
117
123
|
setHovered(time);
|
|
@@ -124,12 +130,23 @@ var RenderCommentMarkers = function RenderCommentMarkers(_ref) {
|
|
|
124
130
|
setHovered(null);
|
|
125
131
|
}, 1500);
|
|
126
132
|
};
|
|
133
|
+
var truncateWords = function truncateWords(text) {
|
|
134
|
+
var maxWords = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 30;
|
|
135
|
+
if (!text) return '';
|
|
136
|
+
var words = text.trim().split(/\s+/);
|
|
137
|
+
if (words.length <= maxWords) return text;
|
|
138
|
+
return words.slice(0, maxWords).join(' ') + '...';
|
|
139
|
+
};
|
|
127
140
|
if (!data.length) return null;
|
|
128
141
|
var grouped = data.reduce(function (acc, item) {
|
|
129
142
|
var key = item.value.in_time;
|
|
130
143
|
(acc[key] = acc[key] || []).push(item);
|
|
131
144
|
return acc;
|
|
132
145
|
}, {});
|
|
146
|
+
var originalIndexMap = new Map();
|
|
147
|
+
data.forEach(function (item, i) {
|
|
148
|
+
originalIndexMap.set(item.id, i);
|
|
149
|
+
});
|
|
133
150
|
var containerWidth = (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.offsetWidth;
|
|
134
151
|
return /*#__PURE__*/_react["default"].createElement(MarkerTimeline, {
|
|
135
152
|
ref: containerRef
|
|
@@ -138,7 +155,6 @@ var RenderCommentMarkers = function RenderCommentMarkers(_ref) {
|
|
|
138
155
|
var _ref3 = _slicedToArray(_ref2, 2),
|
|
139
156
|
time = _ref3[0],
|
|
140
157
|
comments = _ref3[1];
|
|
141
|
-
console.log('comments', comments);
|
|
142
158
|
var start = comments[0].value.in_time;
|
|
143
159
|
var end = comments[0].value.out_time;
|
|
144
160
|
var startPct = getMarkerPercent(start, duration, zoom);
|
|
@@ -162,9 +178,8 @@ var RenderCommentMarkers = function RenderCommentMarkers(_ref) {
|
|
|
162
178
|
style: {
|
|
163
179
|
left: safeStart
|
|
164
180
|
},
|
|
165
|
-
isHovered: isHovered
|
|
166
|
-
|
|
167
|
-
,
|
|
181
|
+
isHovered: isHovered,
|
|
182
|
+
showLine: isLineVisible(time),
|
|
168
183
|
multi: comments.length > 1,
|
|
169
184
|
onMouseEnter: function onMouseEnter() {
|
|
170
185
|
return handleMouseEnter(time);
|
|
@@ -195,14 +210,16 @@ var RenderCommentMarkers = function RenderCommentMarkers(_ref) {
|
|
|
195
210
|
return clearTimeout(hideTimer.current);
|
|
196
211
|
},
|
|
197
212
|
onMouseLeave: handleMouseLeave
|
|
198
|
-
}, comments.length > 1 && /*#__PURE__*/_react["default"].createElement(HoverHeader, null, comments.length, " COMMENTS"), comments.map(function (c) {
|
|
213
|
+
}, comments.length > 1 && /*#__PURE__*/_react["default"].createElement(HoverHeader, null, comments.length, " COMMENTS"), /*#__PURE__*/_react["default"].createElement(HoverScroll, null, comments.map(function (c) {
|
|
199
214
|
var _c$value$created_by, _c$value, _c$value2, _c$value3, _c$value4, _c$value5;
|
|
200
215
|
var selectedFormat = localStorage.getItem('timeCodeFormat');
|
|
201
216
|
return /*#__PURE__*/_react["default"].createElement(HoverComment, {
|
|
202
217
|
key: c.id,
|
|
203
218
|
onClick: function onClick(e) {
|
|
219
|
+
var _fullScreenRef$curren, _fullScreenRef$curren2;
|
|
204
220
|
e.stopPropagation();
|
|
205
221
|
onSegmentClick(c.value.in_time, c.value.out_time, false);
|
|
222
|
+
(_fullScreenRef$curren = fullScreenRef.current.timeline) === null || _fullScreenRef$curren === void 0 || (_fullScreenRef$curren2 = _fullScreenRef$curren.handleTimelineIndex) === null || _fullScreenRef$curren2 === void 0 || _fullScreenRef$curren2.call(_fullScreenRef$curren, originalIndexMap.get(c.id));
|
|
206
223
|
onRightMenuVisible(true);
|
|
207
224
|
actions.toggleRightBar(player, true);
|
|
208
225
|
}
|
|
@@ -214,13 +231,13 @@ var RenderCommentMarkers = function RenderCommentMarkers(_ref) {
|
|
|
214
231
|
timecode: c.value.out_timecode,
|
|
215
232
|
selectedTimecodeFormat: selectedFormat,
|
|
216
233
|
fps: frameRate
|
|
217
|
-
}))), /*#__PURE__*/_react["default"].createElement(HoverText, null, ((_c$value = c.value) === null || _c$value === void 0 ? void 0 : _c$value.remark) || ((_c$value2 = c.value) === null || _c$value2 === void 0 ? void 0 : _c$value2.sub_title) || ((_c$value3 = c.value) !== null && _c$value3 !== void 0 && _c$value3.audioFile ? '[Voice Note Recorded]' : (_c$value4 = c.value) === null || _c$value4 === void 0 ? void 0 : _c$value4.title), (_c$value5 = c.value) !== null && _c$value5 !== void 0 && (_c$value5 = _c$value5.annotations) !== null && _c$value5 !== void 0 && _c$value5.length ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_components.Icon, {
|
|
234
|
+
}))), /*#__PURE__*/_react["default"].createElement(HoverText, null, truncateWords(((_c$value = c.value) === null || _c$value === void 0 ? void 0 : _c$value.remark) || ((_c$value2 = c.value) === null || _c$value2 === void 0 ? void 0 : _c$value2.sub_title) || ((_c$value3 = c.value) !== null && _c$value3 !== void 0 && _c$value3.audioFile ? '[Voice Note Recorded]' : (_c$value4 = c.value) === null || _c$value4 === void 0 ? void 0 : _c$value4.title), 30), (_c$value5 = c.value) !== null && _c$value5 !== void 0 && (_c$value5 = _c$value5.annotations) !== null && _c$value5 !== void 0 && _c$value5.length ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_components.Icon, {
|
|
218
235
|
name: "annotate-icon",
|
|
219
236
|
width: 30,
|
|
220
237
|
height: 30,
|
|
221
|
-
color: "#
|
|
238
|
+
color: "#00CEC6"
|
|
222
239
|
})) : null));
|
|
223
|
-
})));
|
|
240
|
+
}))));
|
|
224
241
|
}));
|
|
225
242
|
};
|
|
226
243
|
var _default = exports["default"] = RenderCommentMarkers;
|