@desynova-digital/player 4.2.0 → 4.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/components/Video.js
CHANGED
|
@@ -99,7 +99,8 @@ var propTypes = {
|
|
|
99
99
|
userEmail: _propTypes.PropTypes.string,
|
|
100
100
|
playerSelectedMarker: _propTypes.PropTypes.instanceOf(Object),
|
|
101
101
|
theme: _propTypes.PropTypes.string,
|
|
102
|
-
dubbedTracks: _propTypes.PropTypes.string
|
|
102
|
+
dubbedTracks: _propTypes.PropTypes.string,
|
|
103
|
+
additionalTracks: _propTypes.PropTypes.string
|
|
103
104
|
};
|
|
104
105
|
var defaultProps = {
|
|
105
106
|
startTime: 0,
|
|
@@ -111,7 +112,8 @@ var defaultProps = {
|
|
|
111
112
|
aspectRatio: 'auto',
|
|
112
113
|
crossOrigin: 'anonymous',
|
|
113
114
|
theme: 'dark',
|
|
114
|
-
dubbedTracks: null
|
|
115
|
+
dubbedTracks: null,
|
|
116
|
+
additionalTracks: null
|
|
115
117
|
};
|
|
116
118
|
var SubTitleSection = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: absolute;\n font-family: SFUIText-Regular;\n font-size: 16px;\n bottom: 20px;\n width: 100%;\n display: flex;\n justify-content: center;\n text-align: center;\n color: #ffffff;\n height: 90%;\n align-items: center;\n\n .subtitleContainer {\n border-radius: 4px;\n width: fit-content;\n background: #000000;\n opacity: 0.9;\n padding: ", ";\n line-height: 20px;\n position: absolute;\n\n i,\n em {\n font-style: italic; /* Override the font style for <em> tags inside elements with the class .someClass */\n }\n\n strong {\n font-weight: bold;\n }\n }\n .longSubtitleStyles {\n overflow-y: auto;\n height: fit-content;\n max-height: 70px;\n max-width: 75%;\n width: fit-content;\n }\n"])), function (props) {
|
|
117
119
|
return props.currentSubtitleObj && props.currentSubtitleObj.line1 ? '8px 10px' : '0px';
|
|
@@ -252,7 +254,8 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
252
254
|
};
|
|
253
255
|
_this.video = null; // the html5 video
|
|
254
256
|
_this.manager = new _Manager["default"](props.store);
|
|
255
|
-
_this.
|
|
257
|
+
_this.dubbedTrackInfo = [];
|
|
258
|
+
_this.additionalTrackInfo = [];
|
|
256
259
|
_this.getStyle = _this.getStyle.bind(_this);
|
|
257
260
|
_this.getChildren = _this.getChildren.bind(_this);
|
|
258
261
|
_this.play = _this.play.bind(_this);
|
|
@@ -299,8 +302,8 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
299
302
|
return _createClass(Video, [{
|
|
300
303
|
key: "combineM3U8Manifests",
|
|
301
304
|
value: function () {
|
|
302
|
-
var _combineM3U8Manifests = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(originalUrl, dubbedUrl) {
|
|
303
|
-
var fetchManifest,
|
|
305
|
+
var _combineM3U8Manifests = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(originalUrl, dubbedUrl, additionalTrackUrl) {
|
|
306
|
+
var fetchManifest, fetchPromises, hasDubbed, hasAdditional, contents, originalContent, dubbedContent, additionalContent, extractAudioTracks, extractVideoStream, originalBase, dubbedBase, additionalBase, videoStreamUri, originalAudioTracks, dubbedAudioTracks, additionalAudioTracks, allTracksMap, allAudioTracks, combinedManifest, _i, _allAudioTracks, track;
|
|
304
307
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
305
308
|
while (1) switch (_context2.prev = _context2.next) {
|
|
306
309
|
case 0:
|
|
@@ -327,17 +330,28 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
327
330
|
}
|
|
328
331
|
}, _callee);
|
|
329
332
|
}));
|
|
330
|
-
return function fetchManifest(
|
|
333
|
+
return function fetchManifest(_x4) {
|
|
331
334
|
return _ref.apply(this, arguments);
|
|
332
335
|
};
|
|
333
|
-
}();
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
336
|
+
}(); // Fetch all manifests
|
|
337
|
+
fetchPromises = [fetchManifest(originalUrl)];
|
|
338
|
+
hasDubbed = dubbedUrl && dubbedUrl.trim() !== '';
|
|
339
|
+
hasAdditional = additionalTrackUrl && additionalTrackUrl.trim() !== '';
|
|
340
|
+
if (hasDubbed) fetchPromises.push(fetchManifest(dubbedUrl));
|
|
341
|
+
if (hasAdditional) fetchPromises.push(fetchManifest(additionalTrackUrl));
|
|
342
|
+
_context2.next = 8;
|
|
343
|
+
return Promise.all(fetchPromises);
|
|
344
|
+
case 8:
|
|
345
|
+
contents = _context2.sent;
|
|
346
|
+
originalContent = contents[0];
|
|
347
|
+
dubbedContent = undefined;
|
|
348
|
+
additionalContent = undefined;
|
|
349
|
+
if (hasDubbed) {
|
|
350
|
+
dubbedContent = contents[1];
|
|
351
|
+
if (hasAdditional) additionalContent = contents[2];
|
|
352
|
+
} else if (hasAdditional) {
|
|
353
|
+
additionalContent = contents[1];
|
|
354
|
+
}
|
|
341
355
|
extractAudioTracks = function extractAudioTracks(content, baseUrl) {
|
|
342
356
|
var lines = content.split(/\r?\n/);
|
|
343
357
|
var audioTracks = [];
|
|
@@ -387,15 +401,28 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
387
401
|
};
|
|
388
402
|
originalBase = originalUrl;
|
|
389
403
|
dubbedBase = dubbedUrl;
|
|
404
|
+
additionalBase = additionalTrackUrl;
|
|
390
405
|
videoStreamUri = extractVideoStream(originalContent, originalBase);
|
|
391
406
|
originalAudioTracks = extractAudioTracks(originalContent, originalBase);
|
|
392
|
-
dubbedAudioTracks = extractAudioTracks(dubbedContent, dubbedBase);
|
|
393
|
-
|
|
394
|
-
|
|
407
|
+
dubbedAudioTracks = dubbedUrl ? extractAudioTracks(dubbedContent, dubbedBase) : [];
|
|
408
|
+
additionalAudioTracks = additionalTrackUrl ? extractAudioTracks(additionalContent, additionalBase) : [];
|
|
409
|
+
this.dubbedTrackInfo = dubbedAudioTracks.map(function (track) {
|
|
410
|
+
return {
|
|
411
|
+
name: track.name,
|
|
412
|
+
uri: track.uri,
|
|
413
|
+
language: track.language
|
|
414
|
+
};
|
|
415
|
+
});
|
|
416
|
+
this.additionalTrackInfo = additionalAudioTracks.map(function (track) {
|
|
417
|
+
return {
|
|
418
|
+
name: track.name,
|
|
419
|
+
uri: track.uri,
|
|
420
|
+
language: track.language
|
|
421
|
+
};
|
|
395
422
|
});
|
|
396
423
|
allTracksMap = new Map();
|
|
397
|
-
[].concat(_toConsumableArray(originalAudioTracks), _toConsumableArray(dubbedAudioTracks)).forEach(function (track) {
|
|
398
|
-
var key = track.name || track.language;
|
|
424
|
+
[].concat(_toConsumableArray(originalAudioTracks), _toConsumableArray(dubbedAudioTracks), _toConsumableArray(additionalAudioTracks)).forEach(function (track) {
|
|
425
|
+
var key = "".concat(track.name || track.language, "_").concat(track.uri || '');
|
|
399
426
|
if (!allTracksMap.has(key)) {
|
|
400
427
|
allTracksMap.set(key, track);
|
|
401
428
|
}
|
|
@@ -411,15 +438,16 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
411
438
|
}
|
|
412
439
|
return _context2.abrupt("return", {
|
|
413
440
|
combinedManifest: combinedManifest,
|
|
414
|
-
|
|
441
|
+
dubbedTrackInfo: this.dubbedTrackInfo,
|
|
442
|
+
additionalTrackInfo: this.additionalTrackInfo
|
|
415
443
|
});
|
|
416
|
-
case
|
|
444
|
+
case 33:
|
|
417
445
|
case "end":
|
|
418
446
|
return _context2.stop();
|
|
419
447
|
}
|
|
420
|
-
}, _callee2);
|
|
448
|
+
}, _callee2, this);
|
|
421
449
|
}));
|
|
422
|
-
function combineM3U8Manifests(_x, _x2) {
|
|
450
|
+
function combineM3U8Manifests(_x, _x2, _x3) {
|
|
423
451
|
return _combineM3U8Manifests.apply(this, arguments);
|
|
424
452
|
}
|
|
425
453
|
return combineM3U8Manifests;
|
|
@@ -564,11 +592,13 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
564
592
|
value: function setupHLS(originalSrc) {
|
|
565
593
|
var _this4 = this;
|
|
566
594
|
var dubbedTracksOverride = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
595
|
+
var additionalTracksOverride = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
567
596
|
var _this$props6 = this.props,
|
|
568
597
|
actions = _this$props6.actions,
|
|
569
598
|
activeTrackIndex = _this$props6.activeTrackIndex;
|
|
570
599
|
var self = this;
|
|
571
600
|
var effectiveDubbedTracks = dubbedTracksOverride !== undefined ? dubbedTracksOverride : this.props.dubbedTracks;
|
|
601
|
+
var effectiveAdditionalTracks = additionalTracksOverride !== undefined ? additionalTracksOverride : this.props.additionalTracks;
|
|
572
602
|
var attachAndLoad = function attachAndLoad(sourceUrl) {
|
|
573
603
|
if (!self.hls) return;
|
|
574
604
|
self.hls.attachMedia(self.video);
|
|
@@ -576,11 +606,15 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
576
606
|
self.hls.loadSource(sourceUrl);
|
|
577
607
|
});
|
|
578
608
|
};
|
|
579
|
-
|
|
580
|
-
|
|
609
|
+
var hasDubbed = effectiveDubbedTracks && effectiveDubbedTracks.trim() !== '';
|
|
610
|
+
var hasAdditionalTracks = effectiveAdditionalTracks && effectiveAdditionalTracks.trim() !== '';
|
|
611
|
+
if (hasDubbed || hasAdditionalTracks) {
|
|
612
|
+
this.combineM3U8Manifests(originalSrc, hasDubbed ? effectiveDubbedTracks : null, hasAdditionalTracks ? effectiveAdditionalTracks : null).then(function (_ref2) {
|
|
581
613
|
var combinedManifest = _ref2.combinedManifest,
|
|
582
|
-
|
|
583
|
-
|
|
614
|
+
dubbedTrackInfo = _ref2.dubbedTrackInfo,
|
|
615
|
+
additionalTrackInfo = _ref2.additionalTrackInfo;
|
|
616
|
+
self.dubbedTrackInfo = dubbedTrackInfo || [];
|
|
617
|
+
self.additionalTrackInfo = additionalTrackInfo || [];
|
|
584
618
|
var blob = new Blob([combinedManifest], {
|
|
585
619
|
type: 'application/vnd.apple.mpegurl'
|
|
586
620
|
});
|
|
@@ -589,31 +623,52 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
589
623
|
attachAndLoad(combinedUrl);
|
|
590
624
|
})["catch"](function (err) {
|
|
591
625
|
console.error('Failed to combine manifests, falling back to original', err);
|
|
592
|
-
self.
|
|
626
|
+
self.dubbedTrackInfo = [];
|
|
627
|
+
self.additionalTrackInfo = [];
|
|
593
628
|
attachAndLoad(originalSrc);
|
|
594
629
|
});
|
|
595
630
|
} else {
|
|
596
|
-
self.
|
|
631
|
+
self.dubbedTrackInfo = [];
|
|
632
|
+
self.additionalTrackInfo = [];
|
|
597
633
|
attachAndLoad(originalSrc);
|
|
598
634
|
}
|
|
599
635
|
this.hls.on(_hls["default"].Events.MANIFEST_PARSED, function (event, data) {
|
|
600
|
-
var
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
636
|
+
var audioTracksWithFlags = (data.audioTracks || []).map(function (track) {
|
|
637
|
+
var flaggedTrack = _objectSpread({}, track);
|
|
638
|
+
// Match by NAME and URI
|
|
639
|
+
if (self.dubbedTrackInfo && self.dubbedTrackInfo.length > 0 && hasDubbed) {
|
|
640
|
+
var matched = self.dubbedTrackInfo.some(function (dubbedTrack) {
|
|
641
|
+
return dubbedTrack.name === track.name && dubbedTrack.uri === track.url;
|
|
604
642
|
});
|
|
643
|
+
if (matched) {
|
|
644
|
+
flaggedTrack.isDubbedTrack = true;
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
if (self.additionalTrackInfo && self.additionalTrackInfo.length > 0 && hasAdditionalTracks) {
|
|
648
|
+
var _matched = self.additionalTrackInfo.some(function (additionalTrack) {
|
|
649
|
+
return additionalTrack.name === track.name && additionalTrack.uri === track.url;
|
|
650
|
+
});
|
|
651
|
+
if (_matched) {
|
|
652
|
+
flaggedTrack.isAdditionalTrack = true;
|
|
653
|
+
}
|
|
605
654
|
}
|
|
606
|
-
return
|
|
655
|
+
return flaggedTrack;
|
|
607
656
|
});
|
|
608
|
-
actions.handleAudioTracks(
|
|
657
|
+
actions.handleAudioTracks(audioTracksWithFlags);
|
|
609
658
|
var defaultIndex;
|
|
610
|
-
var
|
|
611
|
-
return t.
|
|
659
|
+
var firstAdditionalIndex = audioTracksWithFlags.findIndex(function (t) {
|
|
660
|
+
return t.isAdditionalTrack;
|
|
612
661
|
});
|
|
613
|
-
|
|
662
|
+
var firstDubbedIndex = audioTracksWithFlags.findIndex(function (t) {
|
|
663
|
+
return t.isDubbedTrack && !t.isAdditionalTrack;
|
|
664
|
+
} // Don't override HD if already selected
|
|
665
|
+
);
|
|
666
|
+
if (firstAdditionalIndex !== -1) {
|
|
667
|
+
defaultIndex = firstAdditionalIndex;
|
|
668
|
+
} else if (firstDubbedIndex !== -1) {
|
|
614
669
|
defaultIndex = firstDubbedIndex;
|
|
615
670
|
} else {
|
|
616
|
-
if (activeTrackIndex !== undefined && activeTrackIndex <
|
|
671
|
+
if (activeTrackIndex !== undefined && activeTrackIndex < audioTracksWithFlags.length) {
|
|
617
672
|
defaultIndex = activeTrackIndex;
|
|
618
673
|
} else {
|
|
619
674
|
var autoselectIndex = data.audioTracks.findIndex(function (t) {
|
|
@@ -624,12 +679,12 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
624
679
|
}
|
|
625
680
|
self._desiredAudioTrackIndex = defaultIndex;
|
|
626
681
|
var _onTrackSwitched = function onTrackSwitched(event, switchData) {
|
|
627
|
-
var
|
|
628
|
-
var switchedTrack =
|
|
682
|
+
var _audioTracksWithFlags;
|
|
683
|
+
var switchedTrack = audioTracksWithFlags.find(function (t) {
|
|
629
684
|
return t.id === switchData.id;
|
|
630
685
|
});
|
|
631
686
|
if (!switchedTrack) return;
|
|
632
|
-
if (switchData.id !== ((
|
|
687
|
+
if (switchData.id !== ((_audioTracksWithFlags = audioTracksWithFlags[defaultIndex]) === null || _audioTracksWithFlags === void 0 ? void 0 : _audioTracksWithFlags.id)) {
|
|
633
688
|
self.hls.audioTrack = defaultIndex;
|
|
634
689
|
return;
|
|
635
690
|
}
|
|
@@ -860,6 +915,7 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
860
915
|
var _this$props9 = this.props,
|
|
861
916
|
src = _this$props9.src,
|
|
862
917
|
dubbedTracks = _this$props9.dubbedTracks,
|
|
918
|
+
additionalTracks = _this$props9.additionalTracks,
|
|
863
919
|
activeAudio = _this$props9.player.activeAudio,
|
|
864
920
|
currentSubtitleObj = _this$props9.currentSubtitleObj,
|
|
865
921
|
markers = _this$props9.markers,
|
|
@@ -867,7 +923,7 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
867
923
|
if (markers && markers !== newProps.markers && newProps.markers) {
|
|
868
924
|
this.displaySubtitle(newProps.markers);
|
|
869
925
|
}
|
|
870
|
-
if (newProps.src !== src || newProps.dubbedTracks !== dubbedTracks) {
|
|
926
|
+
if (newProps.src !== src || newProps.dubbedTracks !== dubbedTracks || newProps.additionalTracks !== additionalTracks) {
|
|
871
927
|
var isM3U8 = this.state.isM3U8;
|
|
872
928
|
if (_hls["default"].isSupported() && isM3U8) {
|
|
873
929
|
if (this.hls) {
|
|
@@ -881,6 +937,8 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
881
937
|
URL.revokeObjectURL(this.combinedManifestUrl);
|
|
882
938
|
this.combinedManifestUrl = null;
|
|
883
939
|
}
|
|
940
|
+
this.dubbedTrackInfo = [];
|
|
941
|
+
this.additionalTrackInfo = [];
|
|
884
942
|
var m3u8 = newProps.src.split('.').pop() === 'm3u8';
|
|
885
943
|
this.setState({
|
|
886
944
|
isM3U8: m3u8
|
|
@@ -889,7 +947,7 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
|
|
|
889
947
|
var _this$manager$getStat3 = this.manager.getState(),
|
|
890
948
|
HLSConfig = _this$manager$getStat3.player.HLSConfig;
|
|
891
949
|
this.hls = new _hls["default"](HLSConfig);
|
|
892
|
-
this.setupHLS(newProps.src, newProps.dubbedTracks);
|
|
950
|
+
this.setupHLS(newProps.src, newProps.dubbedTracks, newProps.additionalTracks);
|
|
893
951
|
} else if (this.video) {
|
|
894
952
|
this.video.src = newProps.src;
|
|
895
953
|
}
|
|
@@ -32,7 +32,8 @@ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.fre
|
|
|
32
32
|
var propTypes = {
|
|
33
33
|
actions: _propTypes.PropTypes.instanceOf(Object),
|
|
34
34
|
player: _propTypes.PropTypes.instanceOf(Object),
|
|
35
|
-
theme: _propTypes.PropTypes.string
|
|
35
|
+
theme: _propTypes.PropTypes.string,
|
|
36
|
+
additionalTrackQuality: _propTypes.PropTypes.string
|
|
36
37
|
};
|
|
37
38
|
var AudioTrackBlock = (0, _styledComponents["default"])('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n text-align: left;\n background: transparent;\n cursor: pointer;\n border-bottom: 1px solid #eeeeee;\n &:last-child {\n border: none;\n }\n &:hover,\n &:focus {\n background: ", ";\n }\n p {\n padding: 15px;\n font-family: SFUIText-Medium;\n font-size: 12px;\n white-space: nowrap;\n }\n"])), function (props) {
|
|
38
39
|
return props.theme ? " ".concat(_tokens.colors[props.theme].videoPlayer.rgbaThemeColor) : 'rgba(0, 206, 198, 0.1)';
|
|
@@ -74,8 +75,16 @@ var AudioTracksMenuButton = /*#__PURE__*/function (_Component) {
|
|
|
74
75
|
};
|
|
75
76
|
});
|
|
76
77
|
});
|
|
78
|
+
_defineProperty(_this, "toggleAdditionalAccordion", function () {
|
|
79
|
+
var additionalTrackQuality = _this.props.additionalTrackQuality;
|
|
80
|
+
_this.setState(function (prevState) {
|
|
81
|
+
return {
|
|
82
|
+
openAccordion: prevState.openAccordion === additionalTrackQuality ? null : additionalTrackQuality
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
});
|
|
77
86
|
_this.state = {
|
|
78
|
-
openAccordion: '
|
|
87
|
+
openAccordion: 'original'
|
|
79
88
|
};
|
|
80
89
|
return _this;
|
|
81
90
|
}
|
|
@@ -100,23 +109,9 @@ var AudioTracksMenuButton = /*#__PURE__*/function (_Component) {
|
|
|
100
109
|
}, {
|
|
101
110
|
key: "ensureValidAudioTrack",
|
|
102
111
|
value: function ensureValidAudioTrack() {
|
|
103
|
-
var
|
|
104
|
-
player = _this$props.player,
|
|
105
|
-
actions = _this$props.actions;
|
|
112
|
+
var player = this.props.player;
|
|
106
113
|
var allTracks = player.audioTracksArr || [];
|
|
107
|
-
var dubbedTracks = allTracks.filter(function (track) {
|
|
108
|
-
return track.isDubbedTrack === true;
|
|
109
|
-
});
|
|
110
114
|
if (allTracks.length === 0) return;
|
|
111
|
-
if (dubbedTracks.length) {
|
|
112
|
-
this.setState({
|
|
113
|
-
openAccordion: 'dubbed'
|
|
114
|
-
});
|
|
115
|
-
} else {
|
|
116
|
-
this.setState({
|
|
117
|
-
openAccordion: 'original'
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
115
|
}
|
|
121
116
|
}, {
|
|
122
117
|
key: "changeTrack",
|
|
@@ -129,22 +124,28 @@ var AudioTracksMenuButton = /*#__PURE__*/function (_Component) {
|
|
|
129
124
|
value: function render() {
|
|
130
125
|
var _player$activeAudio,
|
|
131
126
|
_this2 = this;
|
|
132
|
-
var _this$
|
|
133
|
-
player = _this$
|
|
134
|
-
actions = _this$
|
|
135
|
-
theme = _this$
|
|
127
|
+
var _this$props = this.props,
|
|
128
|
+
player = _this$props.player,
|
|
129
|
+
actions = _this$props.actions,
|
|
130
|
+
theme = _this$props.theme,
|
|
131
|
+
activeVersion = _this$props.activeVersion,
|
|
132
|
+
additionalTrackQuality = _this$props.additionalTrackQuality;
|
|
136
133
|
var openAccordion = this.state.openAccordion;
|
|
137
134
|
var allTracks = player.audioTracksArr || [];
|
|
138
135
|
var originalTracks = allTracks.filter(function (track) {
|
|
139
|
-
return !track.isDubbedTrack;
|
|
136
|
+
return !track.isDubbedTrack && !track.isAdditionalTrack;
|
|
140
137
|
});
|
|
141
138
|
var dubbedTracks = allTracks.filter(function (track) {
|
|
142
139
|
return track.isDubbedTrack === true;
|
|
143
140
|
});
|
|
141
|
+
var additionalTrack = allTracks.filter(function (track) {
|
|
142
|
+
return track.isAdditionalTrack === true;
|
|
143
|
+
});
|
|
144
144
|
var currentTrackName = ((_player$activeAudio = player.activeAudio) === null || _player$activeAudio === void 0 ? void 0 : _player$activeAudio.name) || 'No track playing';
|
|
145
145
|
var hasOriginalTracks = originalTracks.length > 0;
|
|
146
146
|
var hasDubbedTracks = dubbedTracks.length > 0;
|
|
147
|
-
|
|
147
|
+
var hasAdditionalTracks = additionalTrack.length > 0;
|
|
148
|
+
if (!hasOriginalTracks && !hasDubbedTracks && !hasAdditionalTracks) {
|
|
148
149
|
return null;
|
|
149
150
|
}
|
|
150
151
|
return /*#__PURE__*/_react["default"].createElement(_Menu["default"], {
|
|
@@ -158,7 +159,7 @@ var AudioTracksMenuButton = /*#__PURE__*/function (_Component) {
|
|
|
158
159
|
position: "left"
|
|
159
160
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
160
161
|
className: "menu-container"
|
|
161
|
-
}, hasDubbedTracks && /*#__PURE__*/_react["default"].createElement(NowPlayingContainer, null, /*#__PURE__*/_react["default"].createElement(NowPlayingLabel, null, "Now playing"), /*#__PURE__*/_react["default"].createElement(NowPlayingTrackName, {
|
|
162
|
+
}, (hasDubbedTracks || hasAdditionalTracks) && /*#__PURE__*/_react["default"].createElement(NowPlayingContainer, null, /*#__PURE__*/_react["default"].createElement(NowPlayingLabel, null, "Now playing"), /*#__PURE__*/_react["default"].createElement(NowPlayingTrackName, {
|
|
162
163
|
theme: theme
|
|
163
164
|
}, currentTrackName)), hasDubbedTracks && /*#__PURE__*/_react["default"].createElement(AccordionContainer, null, /*#__PURE__*/_react["default"].createElement(AccordionHeader, {
|
|
164
165
|
theme: theme,
|
|
@@ -189,7 +190,36 @@ var AudioTracksMenuButton = /*#__PURE__*/function (_Component) {
|
|
|
189
190
|
color: '#333333'
|
|
190
191
|
}
|
|
191
192
|
}, track.name || "Dubbed Track ".concat(index + 1)));
|
|
192
|
-
}))),
|
|
193
|
+
}))), hasAdditionalTracks && /*#__PURE__*/_react["default"].createElement(AccordionContainer, null, /*#__PURE__*/_react["default"].createElement(AccordionHeader, {
|
|
194
|
+
theme: theme,
|
|
195
|
+
onClick: this.toggleAdditionalAccordion
|
|
196
|
+
}, /*#__PURE__*/_react["default"].createElement(HeaderTitle, null, activeVersion.category, " ", additionalTrackQuality), /*#__PURE__*/_react["default"].createElement(HeaderIcon, {
|
|
197
|
+
isOpen: openAccordion === additionalTrackQuality
|
|
198
|
+
}, /*#__PURE__*/_react["default"].createElement(_components.Icon, {
|
|
199
|
+
color: "#999999",
|
|
200
|
+
name: "dropdown_more_icon"
|
|
201
|
+
}))), /*#__PURE__*/_react["default"].createElement(AccordionContent, {
|
|
202
|
+
isOpen: openAccordion === additionalTrackQuality
|
|
203
|
+
}, additionalTrack.map(function (track, index) {
|
|
204
|
+
return /*#__PURE__*/_react["default"].createElement(AudioTrackBlock, {
|
|
205
|
+
theme: theme,
|
|
206
|
+
onClick: function onClick() {
|
|
207
|
+
return _this2.changeTrack(track);
|
|
208
|
+
},
|
|
209
|
+
role: "presentation",
|
|
210
|
+
key: track.id || index,
|
|
211
|
+
style: player.activeAudio && player.activeAudio.id === track.id ? {
|
|
212
|
+
pointerEvents: 'none'
|
|
213
|
+
} : null
|
|
214
|
+
}, /*#__PURE__*/_react["default"].createElement("p", {
|
|
215
|
+
style: player.activeAudio && player.activeAudio.id === track.id ? {
|
|
216
|
+
color: theme ? "".concat(_tokens.colors[theme].videoPlayer.themeColor) : '#00cec6',
|
|
217
|
+
pointerEvents: 'none'
|
|
218
|
+
} : {
|
|
219
|
+
color: '#333333'
|
|
220
|
+
}
|
|
221
|
+
}, track.name || "Track ".concat(index + 1)));
|
|
222
|
+
}))), hasOriginalTracks && /*#__PURE__*/_react["default"].createElement(AccordionContainer, null, (hasDubbedTracks || hasAdditionalTracks) && /*#__PURE__*/_react["default"].createElement(AccordionHeader, {
|
|
193
223
|
theme: theme,
|
|
194
224
|
onClick: this.toggleOriginalAccordion
|
|
195
225
|
}, /*#__PURE__*/_react["default"].createElement(HeaderTitle, null, "Original tracks"), /*#__PURE__*/_react["default"].createElement(HeaderIcon, {
|