@desynova-digital/player 4.0.8 → 4.0.10

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/actions/player.js CHANGED
@@ -3,19 +3,21 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.ZOOM_CHANGE = exports.USER_ACTIVATE = exports.SD_BORDER_SWITCH = exports.REWIND_VIDEO = exports.PREVIEW_VIDEO = exports.PLAYER_TYPE = exports.PLAYER_ACTIVATE = exports.OPERATE = exports.MARKER_UPDATE = exports.MARKER_POINT_CHANGE = exports.MARKER_CREATE = exports.FULLSCREEN_CHANGE = exports.CONTROL_TYPE = exports.AUDIO_TRACKS = exports.ACTIVE_AUDIO_TRACK = void 0;
6
+ exports.ZOOM_CHANGE = exports.USER_ACTIVATE = exports.SUBTITLE_STATUS = exports.SD_BORDER_SWITCH = exports.REWIND_VIDEO = exports.PREVIEW_VIDEO = exports.PLAYER_TYPE = exports.PLAYER_ACTIVATE = exports.OPERATE = exports.MARKER_UPDATE = exports.MARKER_POINT_CHANGE = exports.MARKER_CREATE = exports.FULLSCREEN_CHANGE = exports.CONTROL_TYPE = exports.AUDIO_TRACKS = exports.ACTIVE_CAPTION_TRACK = exports.ACTIVE_AUDIO_TRACK = void 0;
7
7
  exports.activate = activate;
8
8
  exports.changeRate = changeRate;
9
9
  exports.changeVolume = changeVolume;
10
10
  exports.forward = forward;
11
11
  exports.handleAudioTrackChange = handleAudioTrackChange;
12
12
  exports.handleAudioTracks = handleAudioTracks;
13
+ exports.handleCaptionTrackChange = handleCaptionTrackChange;
13
14
  exports.handleControlType = handleControlType;
14
15
  exports.handleFullscreenChange = handleFullscreenChange;
15
16
  exports.handleMarkerPointChange = handleMarkerPointChange;
16
17
  exports.handleMarkerUpdate = handleMarkerUpdate;
17
18
  exports.handlePlayerType = handlePlayerType;
18
19
  exports.handleSDBorderChange = handleSDBorderChange;
20
+ exports.handleSubtitleStatus = handleSubtitleStatus;
19
21
  exports.handleVideoPreview = handleVideoPreview;
20
22
  exports.handleVideoRewind = handleVideoRewind;
21
23
  exports.handleZoomChange = handleZoomChange;
@@ -44,6 +46,8 @@ var PREVIEW_VIDEO = exports.PREVIEW_VIDEO = 'video-react/PREVIEW_VIDEO';
44
46
  var REWIND_VIDEO = exports.REWIND_VIDEO = 'video-react/REWIND_VIDEO';
45
47
  var AUDIO_TRACKS = exports.AUDIO_TRACKS = 'video-react/AUDIO_TRACKS';
46
48
  var ACTIVE_AUDIO_TRACK = exports.ACTIVE_AUDIO_TRACK = 'video-react/ACTIVE_AUDIO_TRACK';
49
+ var ACTIVE_CAPTION_TRACK = exports.ACTIVE_CAPTION_TRACK = 'video-react/ACTIVE_CAPTION_TRACK';
50
+ var SUBTITLE_STATUS = exports.SUBTITLE_STATUS = 'video-react/SUBTITLE_STATUS';
47
51
  function handleFullscreenChange(isFullscreen) {
48
52
  return {
49
53
  type: FULLSCREEN_CHANGE,
@@ -221,6 +225,13 @@ function handleAudioTracks(tracks) {
221
225
  tracks: tracks
222
226
  };
223
227
  }
228
+ // used to update the value of caption state
229
+ function handleCaptionTrackChange(caption) {
230
+ return {
231
+ type: ACTIVE_CAPTION_TRACK,
232
+ caption: caption
233
+ };
234
+ }
224
235
  function handleAudioTrackChange(track) {
225
236
  return {
226
237
  type: ACTIVE_AUDIO_TRACK,
@@ -328,4 +339,14 @@ function handleSDBorderChange(SDBorderActive) {
328
339
  SDBorderActive: SDBorderActive
329
340
  };
330
341
  return data;
342
+ }
343
+
344
+ // used to manage state for captionControlMenuButton
345
+
346
+ function handleSubtitleStatus(SubtitleStatus) {
347
+ var data = {
348
+ type: SUBTITLE_STATUS,
349
+ SubtitleStatus: SubtitleStatus
350
+ };
351
+ return data;
331
352
  }
@@ -53,7 +53,7 @@ var PointersContainer = _styledComponents["default"].div(_templateObject || (_te
53
53
  });
54
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);
55
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"])));
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 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) {
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 i,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) {
57
57
  return props.multiline ? 'bottom: -21px;' : 'bottom: -9px;';
58
58
  }, function (props) {
59
59
  return props.tooltipPointer ? props.tooltipPointer + 'px' : '50%';
@@ -270,7 +270,19 @@ var PointersBar = exports["default"] = /*#__PURE__*/function (_Component) {
270
270
  }
271
271
  }, /*#__PURE__*/_react["default"].createElement("div", {
272
272
  className: "tooltip-container"
273
- }, 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))));
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
+ }))));
274
286
  }
275
287
  }]);
276
288
  return PointersBar;
@@ -97,7 +97,7 @@ var defaultProps = {
97
97
  crossOrigin: 'anonymous',
98
98
  theme: 'dark'
99
99
  };
100
- 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 }\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) {
100
+ 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,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 }\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) {
101
101
  return props.currentSubtitleObj && props.currentSubtitleObj.line1 ? '8px 10px' : '0px';
102
102
  });
103
103
  var VideoBlock = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: relative;\n &.video-react-player-block {\n position: relative;\n transition: all 0.1s ease-in-out;\n -moz-transition: all 0.1s ease-in-out;\n -webkit-transition: all 0.1s ease-in-out;\n -ms-transition: all 0.1s ease-in-out;\n -o-transition: all 0.1s ease-in-out;\n video {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n right: 0;\n bottom: 0;\n }\n .audio-tracks {\n position: relative;\n display: flex;\n background: rgba(0, 0, 0, 0.5);\n color: #fff;\n z-index: 10;\n position: absolute;\n width: 100%;\n bottom: 0;\n p {\n cursor: pointer;\n padding: 10px;\n }\n }\n .loader-container {\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n z-index: 10;\n background: rgba(0, 0, 0, 0.5);\n }\n }\n &.ratio-border {\n border: 1px solid rgba(255, 255, 255, 0.5);\n &:after {\n content: '16:9 Safe Area';\n position: absolute;\n color: #fff;\n font-family: SFUIText-Regular;\n font-size: 12px;\n transform: rotate(-90deg);\n top: 20%;\n left: -50px;\n }\n }\n"])));
@@ -1137,12 +1137,14 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
1137
1137
  videoId = _this$props31.videoId,
1138
1138
  fileType = _this$props31.fileType,
1139
1139
  userEmail = _this$props31.userEmail,
1140
- theme = _this$props31.theme;
1140
+ theme = _this$props31.theme,
1141
+ player = _this$props31.player;
1141
1142
  var _this$state2 = this.state,
1142
1143
  isBuffering = _this$state2.isBuffering,
1143
1144
  watermark = _this$state2.watermark,
1144
1145
  currentSubtitleObj = _this$state2.currentSubtitleObj;
1145
1146
  var children = this.getChildren(this.props);
1147
+ var isSubtitleActive = player.SubtitleStatus;
1146
1148
  return /*#__PURE__*/_react["default"].createElement(VideoBlock, {
1147
1149
  className: "video-react-player-block",
1148
1150
  ref: function ref(c) {
@@ -1243,7 +1245,7 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
1243
1245
  className: "user-name-wrapper",
1244
1246
  id: "watermark-text",
1245
1247
  style: _objectSpread({}, watermark)
1246
- }, userEmail), /*#__PURE__*/_react["default"].createElement(SubTitleSection, {
1248
+ }, userEmail), isSubtitleActive && /*#__PURE__*/_react["default"].createElement(SubTitleSection, {
1247
1249
  id: "outer",
1248
1250
  currentSubtitleObj: currentSubtitleObj,
1249
1251
  onClick: function onClick() {
@@ -1256,12 +1258,21 @@ var Video = exports["default"] = /*#__PURE__*/function (_Component) {
1256
1258
  className: "subtitleContainer longSubtitleStyles",
1257
1259
  style: _objectSpread({}, currentSubtitleObj.style)
1258
1260
  }, currentSubtitleObj.charactername && /*#__PURE__*/_react["default"].createElement("p", {
1259
- id: "charactername"
1260
- }, " ", currentSubtitleObj.charactername, " ") || null, currentSubtitleObj.line1 && /*#__PURE__*/_react["default"].createElement("p", {
1261
- id: "subtitleLineOne"
1262
- }, " ", currentSubtitleObj.line1, " ") || null, currentSubtitleObj.line2 && /*#__PURE__*/_react["default"].createElement("p", {
1263
- id: "subtitleLineTwo"
1264
- }, " ", currentSubtitleObj.line2, " ") || null)));
1261
+ id: "charactername",
1262
+ dangerouslySetInnerHTML: {
1263
+ __html: currentSubtitleObj.charactername
1264
+ }
1265
+ }) || null, currentSubtitleObj.line1 && /*#__PURE__*/_react["default"].createElement("p", {
1266
+ id: "subtitleLineOne",
1267
+ dangerouslySetInnerHTML: {
1268
+ __html: currentSubtitleObj.line1
1269
+ }
1270
+ }) || null, currentSubtitleObj.line2 && /*#__PURE__*/_react["default"].createElement("p", {
1271
+ id: "subtitleLineTwo",
1272
+ dangerouslySetInnerHTML: {
1273
+ __html: currentSubtitleObj.line2
1274
+ }
1275
+ }) || null)));
1265
1276
  }
1266
1277
  }]);
1267
1278
  return Video;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _propTypes = require("prop-types");
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+ var _components = require("@desynova-digital/components");
12
+ var _tokens = require("@desynova-digital/tokens");
13
+ var _templateObject;
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
17
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
18
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
19
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
21
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
22
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
23
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
24
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
25
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
26
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
27
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
28
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
29
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
30
+ var CaptionControlButtonIcon = _styledComponents["default"].button(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: inline;\n padding: 0;\n margin: 0;\n border: none;\n background: none;\n cursor: pointer;\n"])));
31
+ var propTypes = {
32
+ actions: _propTypes.PropTypes.instanceOf(Object),
33
+ player: _propTypes.PropTypes.instanceOf(Object),
34
+ theme: _propTypes.PropTypes.string
35
+ };
36
+ var CaptionControlMenuButton = /*#__PURE__*/function (_Component) {
37
+ _inherits(CaptionControlMenuButton, _Component);
38
+ function CaptionControlMenuButton(props, context) {
39
+ var _this;
40
+ _classCallCheck(this, CaptionControlMenuButton);
41
+ _this = _callSuper(this, CaptionControlMenuButton, [props, context]);
42
+ _this.statusHandle = _this.statusHandle.bind(_assertThisInitialized(_this));
43
+ return _this;
44
+ }
45
+ /**
46
+ * This function is used to to change the state responsible forshowing subtitle and not showing subtitle
47
+ */
48
+ _createClass(CaptionControlMenuButton, [{
49
+ key: "statusHandle",
50
+ value: function statusHandle() {
51
+ var _this$props = this.props,
52
+ SubtitleStatus = _this$props.player.SubtitleStatus,
53
+ actions = _this$props.actions;
54
+ if (SubtitleStatus) {
55
+ actions.handleSubtitleStatus(false);
56
+ } else {
57
+ actions.handleSubtitleStatus(true);
58
+ }
59
+ }
60
+
61
+ /**
62
+ * This sets the default value of subtitle to the first value of subtitleData
63
+ */
64
+ }, {
65
+ key: "componentDidMount",
66
+ value: function componentDidMount() {
67
+ var _this$props2 = this.props,
68
+ subtitleData = _this$props2.subtitleData,
69
+ actions = _this$props2.actions,
70
+ filterSelectedSubtitle = _this$props2.filterSelectedSubtitle;
71
+ if (subtitleData && subtitleData.length) {
72
+ actions.handleCaptionTrackChange(subtitleData[0].title);
73
+ filterSelectedSubtitle(subtitleData[0].subtitle_info_id);
74
+ }
75
+ }
76
+ }, {
77
+ key: "render",
78
+ value: function render() {
79
+ var _this$props3 = this.props,
80
+ SubtitleStatus = _this$props3.player.SubtitleStatus,
81
+ theme = _this$props3.theme,
82
+ subtitleData = _this$props3.subtitleData;
83
+ return subtitleData && subtitleData.length ? /*#__PURE__*/_react["default"].createElement("div", {
84
+ style: {
85
+ marginRight: '10px'
86
+ }
87
+ }, /*#__PURE__*/_react["default"].createElement(CaptionControlButtonIcon, {
88
+ onClick: this.statusHandle
89
+ }, /*#__PURE__*/_react["default"].createElement(_components.Icon, {
90
+ name: "content-control",
91
+ color: SubtitleStatus ? _tokens.colors[theme].label.text : '#AFB2BA',
92
+ width: 18,
93
+ height: 16
94
+ }))) : null;
95
+ }
96
+ }]);
97
+ return CaptionControlMenuButton;
98
+ }(_react.Component);
99
+ var _default = exports["default"] = CaptionControlMenuButton;
@@ -22,6 +22,7 @@ var _utils = require("../../utils");
22
22
  var _MarkingControl = _interopRequireDefault(require("../marking-controls/MarkingControl"));
23
23
  var _SubtitleLanguagesMenuButton = _interopRequireDefault(require("./SubtitleLanguagesMenuButton"));
24
24
  var _CameraButton = _interopRequireDefault(require("./CameraButton"));
25
+ var _CaptionControlMenuButton = _interopRequireDefault(require("./CaptionControlMenuButton"));
25
26
  var _SubtitleMovementMenu = _interopRequireDefault(require("./SubtitleMovementMenu"));
26
27
  var _ZoomMenuButton = _interopRequireDefault(require("./ZoomMenuButton"));
27
28
  var _colors = _interopRequireDefault(require("../../colors"));
@@ -126,9 +127,17 @@ var ControlBar = exports["default"] = /*#__PURE__*/function (_Component) {
126
127
  }, this.props, {
127
128
  key: "volume-menu-button",
128
129
  order: 7
129
- })), /*#__PURE__*/_react["default"].createElement(_SubtitleLanguagesMenuButton["default"], _extends({}, this.props, {
130
- key: "subtitle-menu-button",
131
- order: 7
130
+ })),
131
+ /*#__PURE__*/
132
+ // <SubtitleLanguagesMenuButton
133
+ // {...this.props}
134
+ // key="subtitle-menu-button"
135
+ // order={7}
136
+ // />,
137
+ _react["default"].createElement(_CaptionControlMenuButton["default"], _extends({}, this.props, {
138
+ order: 7,
139
+ playerType: playerType,
140
+ key: "caption-control-menu-button"
132
141
  })), /*#__PURE__*/_react["default"].createElement(_AudioTracksMenuButton["default"], _extends({}, this.props, {
133
142
  key: "audio-tracks-menu-button",
134
143
  order: 7
@@ -201,9 +210,17 @@ var ControlBar = exports["default"] = /*#__PURE__*/function (_Component) {
201
210
  }, this.props, {
202
211
  key: "volume-menu-button",
203
212
  order: 8
204
- })), /*#__PURE__*/_react["default"].createElement(_SubtitleLanguagesMenuButton["default"], _extends({}, this.props, {
205
- key: "subtitle-menu-button",
206
- order: 8
213
+ })),
214
+ /*#__PURE__*/
215
+ // <SubtitleLanguagesMenuButton
216
+ // {...this.props}
217
+ // key="subtitle-menu-button"
218
+ // order={8}
219
+ // />,
220
+ _react["default"].createElement(_CaptionControlMenuButton["default"], _extends({}, this.props, {
221
+ order: 8,
222
+ playerType: playerType,
223
+ key: "caption-control-menu-button"
207
224
  })), /*#__PURE__*/_react["default"].createElement(_CameraButton["default"], {
208
225
  order: 9,
209
226
  playerType: playerType
@@ -8,7 +8,11 @@ var _propTypes = require("prop-types");
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _Menu = _interopRequireDefault(require("../Menu"));
10
10
  var _SettingsMenu = _interopRequireDefault(require("../settings-menu-control/SettingsMenu"));
11
+ var _excluded = ["style", "player", "actions", "disablePlayerActions", "theme", "playerType", "subtitleData"];
11
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
+ 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); }
14
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
15
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
12
16
  var propTypes = {
13
17
  player: _propTypes.PropTypes.instanceOf(Object),
14
18
  actions: _propTypes.PropTypes.instanceOf(Object),
@@ -24,7 +28,9 @@ function SettingsMenuButton(_ref) {
24
28
  _ref$disablePlayerAct = _ref.disablePlayerActions,
25
29
  disablePlayerActions = _ref$disablePlayerAct === void 0 ? [] : _ref$disablePlayerAct,
26
30
  theme = _ref.theme,
27
- playerType = _ref.playerType;
31
+ playerType = _ref.playerType,
32
+ subtitleData = _ref.subtitleData,
33
+ props = _objectWithoutProperties(_ref, _excluded);
28
34
  return /*#__PURE__*/_react["default"].createElement(_Menu["default"], {
29
35
  theme: theme,
30
36
  icon: "settings",
@@ -32,13 +38,14 @@ function SettingsMenuButton(_ref) {
32
38
  player: player,
33
39
  actions: actions,
34
40
  style: style
35
- }, /*#__PURE__*/_react["default"].createElement(_SettingsMenu["default"], {
41
+ }, /*#__PURE__*/_react["default"].createElement(_SettingsMenu["default"], _extends({}, props, {
36
42
  theme: theme,
37
43
  player: player,
38
44
  actions: actions,
39
45
  disablePlayerActions: disablePlayerActions,
46
+ subtitleData: subtitleData,
40
47
  playerType: playerType
41
- }));
48
+ })));
42
49
  }
43
50
  SettingsMenuButton.propTypes = propTypes;
44
51
  SettingsMenuButton.displayName = 'SettingsMenuButton';
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _propTypes = require("prop-types");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+ var _components = require("@desynova-digital/components");
12
+ var _tokens = require("@desynova-digital/tokens");
13
+ var _templateObject, _templateObject2;
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
17
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
18
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
19
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
21
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
22
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
23
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
24
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
25
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
26
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
27
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
28
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
29
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
30
+ var propTypes = {
31
+ actions: _propTypes.PropTypes.instanceOf(Object),
32
+ player: _propTypes.PropTypes.instanceOf(Object),
33
+ theme: _propTypes.PropTypes.string,
34
+ subtitleData: _propTypes.PropTypes.instanceOf(Object),
35
+ mainHeader: _propTypes.PropTypes.string,
36
+ iconName: _propTypes.PropTypes.string,
37
+ handleStatus: _propTypes.PropTypes.func,
38
+ handleValueChange: _propTypes.PropTypes.func,
39
+ activeChild: _propTypes.PropTypes.string
40
+ };
41
+ var IconButtonStyles = (0, _styledComponents["default"])(_components.Button)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n border: none;\n pointer-events: stroke;\n background-color: ", ";\n svg{\n path{\n fill: ", " !important;\n }\n }\n &:hover,\n &:focus,\n &:active {\n border: none;\n // background-color: ", ";\n border-radius: ", ";\n svg {\n path {\n fill: ", " !important;\n }\n }\n }\n"])), function (props) {
42
+ return props.backgroundColor;
43
+ }, function (_ref) {
44
+ var svgFillDefault = _ref.svgFillDefault;
45
+ return svgFillDefault;
46
+ }, function (props) {
47
+ return props.hoverBackgroundColor;
48
+ }, function (props) {
49
+ return props.borderRadius ? props.borderRadius : 'none';
50
+ }, function (_ref2) {
51
+ var hoverColor = _ref2.hoverColor;
52
+ return hoverColor;
53
+ });
54
+ var MainMenuBlock = (0, _styledComponents["default"])('div')(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n border-bottom: 1px solid #eeeeee;\n display: flex;\n text-align: left;\n background: transparent;\n cursor: pointer;\n align-items: center; // Ensure alignment of children vertically\n justify-content: space-between; // Spreads out the children across the main axis\n &:last-child {\n border: none;\n }\n &:hover,\n &:focus {\n background: ", ";\n }\n p {\n font-size: 12px;\n line-height: 12px;\n padding-top: 17px;\n padding-bottom: 12px;\n padding-left: 14px;\n padding-right: 18px;\n margin: 0;\n font-family: SFUIText-Medium;\n white-space: nowrap;\n }\n .icon-wrapper-left {\n margin: 0;\n padding-top: 17px;\n padding-bottom: 12px;\n padding-left: 15px;\n padding-right: 0;\n }\n .icon-wrapper {\n margin: 0;\n padding-top: 12px;\n padding-bottom: 8px;\n margin-left: auto; // Automatically pushes the element to the right\n margin-right: 20px; // Maintains 20px distance from the right edge\n }\n"])), function (props) {
55
+ return props.theme ? " ".concat(_tokens.colors[props.theme].videoPlayer.rgbaThemeColor) : 'rgba(0, 206, 198, 0.1)';
56
+ });
57
+ var ChildMenuButton = /*#__PURE__*/function (_Component) {
58
+ _inherits(ChildMenuButton, _Component);
59
+ function ChildMenuButton(props, context) {
60
+ var _this;
61
+ _classCallCheck(this, ChildMenuButton);
62
+ _this = _callSuper(this, ChildMenuButton, [props, context]);
63
+ _this.changeCaption = _this.changeCaption.bind(_assertThisInitialized(_this));
64
+ _this.handleChange = _this.handleChange.bind(_assertThisInitialized(_this));
65
+ _this.stopCaption = _this.stopCaption.bind(_assertThisInitialized(_this));
66
+ _this.renderContentByHeader = _this.renderContentByHeader.bind(_assertThisInitialized(_this));
67
+ return _this;
68
+ }
69
+ /**
70
+ * This function is used to change the state used to stop subtitles and also change the value of subtitle to be off
71
+ */
72
+ _createClass(ChildMenuButton, [{
73
+ key: "stopCaption",
74
+ value: function stopCaption() {
75
+ var _this$props = this.props,
76
+ actions = _this$props.actions,
77
+ handleStatus = _this$props.handleStatus,
78
+ mainHeader = _this$props.mainHeader;
79
+ if (mainHeader === 'Subtitle') {
80
+ actions.handleSubtitleStatus(false);
81
+ }
82
+ handleStatus();
83
+ }
84
+ /**
85
+ *
86
+ * @param {string} value this is the value that we will be stored in our state and also call function used to change subtitle shown in our player
87
+ */
88
+ }, {
89
+ key: "changeCaption",
90
+ value: function changeCaption(value) {
91
+ var _this$props2 = this.props,
92
+ actions = _this$props2.actions,
93
+ handleValueChange = _this$props2.handleValueChange,
94
+ filterSelectedSubtitle = _this$props2.filterSelectedSubtitle,
95
+ handleStatus = _this$props2.handleStatus,
96
+ mainHeader = _this$props2.mainHeader;
97
+ if (mainHeader === 'Subtitle') {
98
+ actions.handleSubtitleStatus(true);
99
+ filterSelectedSubtitle(value.subtitle_info_id);
100
+ handleValueChange(value.title);
101
+ }
102
+ handleStatus();
103
+ }
104
+
105
+ /**
106
+ * This function is used to change the states that are responsible for showing settings menu or subtitle menu.
107
+ */
108
+ }, {
109
+ key: "handleChange",
110
+ value: function handleChange() {
111
+ var handleStatus = this.props.handleStatus;
112
+ handleStatus();
113
+ }
114
+
115
+ /**
116
+ *
117
+ * @returns This function returns the mapping of children according to the value of mainHeader props
118
+ */
119
+ }, {
120
+ key: "renderContentByHeader",
121
+ value: function renderContentByHeader() {
122
+ var _this2 = this;
123
+ var _this$props3 = this.props,
124
+ mainHeader = _this$props3.mainHeader,
125
+ subtitleData = _this$props3.subtitleData,
126
+ theme = _this$props3.theme,
127
+ player = _this$props3.player,
128
+ activeChild = _this$props3.activeChild;
129
+ switch (mainHeader) {
130
+ case 'Subtitle':
131
+ return subtitleData.map(function (subtitle, index) {
132
+ return /*#__PURE__*/_react["default"].createElement(MainMenuBlock, {
133
+ theme: theme,
134
+ onClick: function onClick() {
135
+ return _this2.changeCaption(subtitle);
136
+ },
137
+ role: "presentation",
138
+ key: index,
139
+ style: activeChild && activeChild === subtitle.title ? {
140
+ pointerEvents: 'none'
141
+ } : null
142
+ }, /*#__PURE__*/_react["default"].createElement("div", {
143
+ className: "icon-wrapper-left"
144
+ }), /*#__PURE__*/_react["default"].createElement("p", {
145
+ style: activeChild && activeChild === subtitle.title ? {
146
+ color: theme ? " ".concat(_tokens.colors[theme].videoPlayer.themeColor) : '#00cec6',
147
+ pointerEvents: 'none'
148
+ } : {
149
+ color: '#333333'
150
+ }
151
+ }, subtitle.title), subtitle.srt_file_name && /*#__PURE__*/_react["default"].createElement("div", {
152
+ className: "icon-wrapper"
153
+ }, /*#__PURE__*/_react["default"].createElement(IconButtonStyles, {
154
+ display: "rounded",
155
+ appearance: "cta",
156
+ icon: "download",
157
+ iconWidth: 14,
158
+ iconHeight: 14,
159
+ width: 22,
160
+ height: 22,
161
+ hoverColor: "#FFFFFF",
162
+ hoverBackgroundColor: theme ? "".concat(_tokens.colors[theme].videoPlayer.themeColor) : '#00cec6',
163
+ backgroundColor: activeChild && activeChild === subtitle.title ? theme ? "".concat(_tokens.colors[theme].videoPlayer.themeColor) : '#00cec6' : 'rgb(51,51,51,0.1)',
164
+ svgFillDefault: activeChild && activeChild === subtitle.title ? '#FFFFFF' : 'rgb(51,51,51)',
165
+ borderRadius: "50%",
166
+ onClick: function onClick(e) {
167
+ console.log('icon clicked1');
168
+ window.open(subtitle.srt_file_name, '_blank');
169
+ e.stopPropagation();
170
+ }
171
+ })));
172
+ });
173
+ case 'PlayBack Speed':
174
+ return; /* JSX for Audio */
175
+ default:
176
+ return /*#__PURE__*/_react["default"].createElement("p", null, "Unsupported type: ", mainHeader);
177
+ }
178
+ }
179
+ }, {
180
+ key: "render",
181
+ value: function render() {
182
+ var _this3 = this;
183
+ var _this$props4 = this.props,
184
+ player = _this$props4.player,
185
+ theme = _this$props4.theme,
186
+ mainHeader = _this$props4.mainHeader,
187
+ iconName = _this$props4.iconName,
188
+ stop = _this$props4.stop,
189
+ activeChild = _this$props4.activeChild;
190
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(MainMenuBlock, {
191
+ theme: theme,
192
+ onClick: function onClick() {
193
+ return _this3.handleChange();
194
+ },
195
+ role: "presentation"
196
+ }, /*#__PURE__*/_react["default"].createElement("div", {
197
+ className: "icon-wrapper-left"
198
+ }, /*#__PURE__*/_react["default"].createElement(_components.Icon, {
199
+ name: "child-close-button",
200
+ color: '#121D29'
201
+ })), /*#__PURE__*/_react["default"].createElement("p", null, mainHeader), /*#__PURE__*/_react["default"].createElement("div", {
202
+ className: "icon-wrapper"
203
+ })), stop && /*#__PURE__*/_react["default"].createElement(MainMenuBlock, {
204
+ theme: theme,
205
+ onClick: function onClick() {
206
+ return _this3.stopCaption();
207
+ },
208
+ role: "presentation",
209
+ key: 'Off',
210
+ style: player.activeCaption && player.activeCaption === 'Off' ? {
211
+ pointerEvents: 'none'
212
+ } : null
213
+ }, /*#__PURE__*/_react["default"].createElement("div", {
214
+ className: "icon-wrapper-left"
215
+ }), /*#__PURE__*/_react["default"].createElement("p", {
216
+ style: activeChild && activeChild === 'Off' ? {
217
+ color: theme ? " ".concat(_tokens.colors[theme].videoPlayer.themeColor) : '#00cec6',
218
+ pointerEvents: 'none'
219
+ } : {
220
+ color: '#333333'
221
+ }
222
+ }, "Off"), /*#__PURE__*/_react["default"].createElement("div", {
223
+ className: "icon-wrapper"
224
+ })), this.renderContentByHeader());
225
+ }
226
+ }]);
227
+ return ChildMenuButton;
228
+ }(_react.Component);
229
+ ChildMenuButton.propTypes = propTypes;
230
+ ChildMenuButton.displayName = 'ChildMenuButton';
231
+ var _default = exports["default"] = ChildMenuButton;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
+ var _propTypes = require("prop-types");
11
+ var _components = require("@desynova-digital/components");
12
+ var _tokens = require("@desynova-digital/tokens");
13
+ var _lodash = require("lodash");
14
+ var _templateObject, _templateObject2;
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
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
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
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
+ 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(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)); }
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); }
25
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
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
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
31
+ var propTypes = {
32
+ actions: _propTypes.PropTypes.instanceOf(Object),
33
+ player: _propTypes.PropTypes.instanceOf(Object),
34
+ theme: _propTypes.PropTypes.string,
35
+ handleStatus: _propTypes.PropTypes.func,
36
+ activeChild: _propTypes.PropTypes.string,
37
+ heading: _propTypes.PropTypes.string,
38
+ hasChild: _propTypes.PropTypes.bool,
39
+ iconName: _propTypes.PropTypes.string
40
+ };
41
+ var ParentMenuBlock = (0, _styledComponents["default"])('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n background: transparent;\n font-family: SFUIText-Medium;\n font-size: 12px;\n text-transform: uppercase;\n justify-content: flex-start;\n align-items: center;\n &:hover {\n background: ", ";\n }\n\n p {\n margin-left: 10px;\n white-space: nowrap;\n }\n"])), function (props) {
42
+ return props.theme ? " ".concat(_tokens.colors[props.theme].videoPlayer.rgbaThemeColor) : 'rgba(0, 206, 198, 0.1)';
43
+ });
44
+ var RightContent = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n position: absolute; /* Position absolutely */\n right: 0; /* Align to the right */\n display: flex;\n align-items: center;\n p {\n font-family: SFUIText-Medium;\n margin-right: 10px;\n white-space: nowrap;\n }\n"])));
45
+ var ParentMenuControl = exports["default"] = /*#__PURE__*/function (_Component) {
46
+ _inherits(ParentMenuControl, _Component);
47
+ function ParentMenuControl(props) {
48
+ var _this;
49
+ _classCallCheck(this, ParentMenuControl);
50
+ _this = _callSuper(this, ParentMenuControl, [props]);
51
+ _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_this));
52
+ return _this;
53
+ }
54
+ /**
55
+ * This function is used to change the states that are responsible for showing settings menu or subtitle menu.
56
+ */
57
+ _createClass(ParentMenuControl, [{
58
+ key: "handleClick",
59
+ value: function handleClick() {
60
+ var handleStatus = this.props.handleStatus;
61
+ handleStatus();
62
+ }
63
+ }, {
64
+ key: "render",
65
+ value: function render() {
66
+ var _this$props = this.props,
67
+ player = _this$props.player,
68
+ theme = _this$props.theme,
69
+ activeChild = _this$props.activeChild,
70
+ heading = _this$props.heading,
71
+ hasChild = _this$props.hasChild,
72
+ iconName = _this$props.iconName,
73
+ data = _this$props.data;
74
+ return data && data.length ? /*#__PURE__*/_react["default"].createElement(ParentMenuBlock, {
75
+ onClick: this.handleClick,
76
+ theme: theme
77
+ }, /*#__PURE__*/_react["default"].createElement(_components.Icon, {
78
+ name: iconName,
79
+ color: '#0C141D'
80
+ }), /*#__PURE__*/_react["default"].createElement("p", null, heading), hasChild && /*#__PURE__*/_react["default"].createElement(RightContent, null, /*#__PURE__*/_react["default"].createElement("p", null, activeChild), /*#__PURE__*/_react["default"].createElement(_components.Icon, {
81
+ name: "child-open-button",
82
+ color: '#121D29'
83
+ }))) : null;
84
+ }
85
+ }]);
86
+ return ParentMenuControl;
87
+ }(_react.Component);
88
+ ParentMenuControl.propTypes = propTypes;
89
+ ParentMenuControl.displayName = 'ParentMenuControl';
@@ -1,16 +1,32 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports["default"] = SettingsMenu;
7
8
  var _propTypes = require("prop-types");
8
- var _react = _interopRequireDefault(require("react"));
9
+ var _react = _interopRequireWildcard(require("react"));
9
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
10
11
  var _SafeAreaControl = _interopRequireDefault(require("./SafeAreaControl"));
11
12
  var _PlaybackRateControl = _interopRequireDefault(require("./PlaybackRateControl"));
13
+ var _ParentMenuComponent = _interopRequireDefault(require("./ParentMenuComponent"));
14
+ var _ChildMenuComponent = _interopRequireDefault(require("./ChildMenuComponent"));
15
+ var _lodash = require("lodash");
16
+ var _excluded = ["player", "actions", "style", "disablePlayerActions", "theme", "playerType", "subtitleData"];
12
17
  var _templateObject;
13
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
20
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
21
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
23
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
24
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
26
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
27
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
28
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
29
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
14
30
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
15
31
  /*
16
32
  * import SubtitleControl from './SubtitleControl';
@@ -24,7 +40,7 @@ var propTypes = {
24
40
  theme: _propTypes.PropTypes.string,
25
41
  playerType: _propTypes.PropTypes.string
26
42
  };
27
- var SettingsMenuContainer = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 100%;\n position: relative;\n .safe-area {\n cursor: pointer;\n }\n .settings-menu-tile {\n background: transparent;\n div {\n padding: 15px;\n }\n }\n .playback {\n cursor: ", ";\n }\n"])), function (props) {
43
+ var SettingsMenuContainer = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 100%;\n position: relative;\n .parent-area{\n cursor: pointer;\n }\n .safe-area {\n cursor: pointer;\n }\n .settings-menu-tile {\n background: transparent;\n div {\n padding: 15px;\n }\n }\n .playback {\n cursor: ", ";\n }\n"])), function (props) {
28
44
  return props.disablePlayerActions.includes('playback_rate') ? 'not-allowed' : 'pointer';
29
45
  });
30
46
  function SettingsMenu(_ref) {
@@ -34,12 +50,46 @@ function SettingsMenu(_ref) {
34
50
  _ref$disablePlayerAct = _ref.disablePlayerActions,
35
51
  disablePlayerActions = _ref$disablePlayerAct === void 0 ? [] : _ref$disablePlayerAct,
36
52
  theme = _ref.theme,
37
- playerType = _ref.playerType;
53
+ playerType = _ref.playerType,
54
+ subtitleData = _ref.subtitleData,
55
+ props = _objectWithoutProperties(_ref, _excluded);
56
+ var _useState = (0, _react.useState)(true),
57
+ _useState2 = _slicedToArray(_useState, 2),
58
+ settingStatus = _useState2[0],
59
+ setSettingStatus = _useState2[1];
60
+ var _useState3 = (0, _react.useState)(false),
61
+ _useState4 = _slicedToArray(_useState3, 2),
62
+ subtitleChildStatus = _useState4[0],
63
+ setSubtitleChildStatus = _useState4[1];
64
+ var activeCaptionValue = player.activeCaption;
65
+ if (!player.SubtitleStatus) {
66
+ activeCaptionValue = "Off";
67
+ }
68
+ var handleSubtitleStatus = function handleSubtitleStatus() {
69
+ setSettingStatus(function (prevSettingStatus) {
70
+ return !prevSettingStatus;
71
+ });
72
+ setSubtitleChildStatus(function (prevSubtitleChildStatus) {
73
+ return !prevSubtitleChildStatus;
74
+ });
75
+ };
38
76
  return /*#__PURE__*/_react["default"].createElement(SettingsMenuContainer, {
39
77
  theme: theme,
40
78
  style: style,
41
79
  disablePlayerActions: disablePlayerActions
42
- }, /*#__PURE__*/_react["default"].createElement("div", {
80
+ }, settingStatus && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
81
+ className: "settings-menu-tile parent-area"
82
+ }, /*#__PURE__*/_react["default"].createElement(_ParentMenuComponent["default"], _extends({}, props, {
83
+ data: subtitleData,
84
+ iconName: 'subtitle-on-off',
85
+ hasChild: true,
86
+ heading: "Subtitle",
87
+ theme: theme,
88
+ player: player,
89
+ actions: actions,
90
+ activeChild: activeCaptionValue,
91
+ handleStatus: handleSubtitleStatus
92
+ }))), /*#__PURE__*/_react["default"].createElement("div", {
43
93
  className: "settings-menu-tile safe-area"
44
94
  }, /*#__PURE__*/_react["default"].createElement(_SafeAreaControl["default"], {
45
95
  theme: theme,
@@ -53,6 +103,17 @@ function SettingsMenu(_ref) {
53
103
  actions: actions,
54
104
  disablePlayerActions: disablePlayerActions,
55
105
  playerType: playerType
106
+ }))), subtitleChildStatus && /*#__PURE__*/_react["default"].createElement(_ChildMenuComponent["default"], _extends({}, props, {
107
+ stop: true,
108
+ iconName: "child-close-button",
109
+ mainHeader: "Subtitle",
110
+ subtitleData: subtitleData,
111
+ theme: theme,
112
+ player: player,
113
+ actions: actions,
114
+ handleStatus: handleSubtitleStatus,
115
+ handleValueChange: actions.handleCaptionTrackChange,
116
+ activeChild: activeCaptionValue
56
117
  })));
57
118
  }
58
119
  SettingsMenu.propTypes = propTypes;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@desynova-digital/player",
3
- "version": "4.0.8",
3
+ "version": "4.0.10",
4
4
  "description": "Video Player Package for Contido Application",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -53,8 +53,8 @@
53
53
  "webpack-dev-server": "^3.11.0"
54
54
  },
55
55
  "dependencies": {
56
- "@desynova-digital/components": "^9.0.2",
57
- "@desynova-digital/tokens": "^9.0.2",
56
+ "@desynova-digital/components": "^9.0.13",
57
+ "@desynova-digital/tokens": "^9.0.13",
58
58
  "hls.js": "1.4.12",
59
59
  "babel-core": "7.0.0-bridge.0",
60
60
  "latest-version": "^4.0.0",
@@ -46,8 +46,12 @@ var initialState = {
46
46
  previewActive: false,
47
47
  audioTracksArr: [],
48
48
  activeAudio: {},
49
+ activeCaption: "Off",
50
+ // state used to show the value of selected subtitle
49
51
  markerCreate: false,
50
52
  rewindActive: false,
53
+ SubtitleStatus: false,
54
+ // state used to show whether subtitle will be shown on player or not
51
55
  HLSConfig: {
52
56
  debug: true,
53
57
  capLevelToPlayerSize: false,
@@ -152,6 +156,10 @@ function player() {
152
156
  return _objectSpread(_objectSpread({}, state), {}, {
153
157
  activeAudio: action.track
154
158
  });
159
+ case _player.ACTIVE_CAPTION_TRACK:
160
+ return _objectSpread(_objectSpread({}, state), {}, {
161
+ activeCaption: action.caption
162
+ });
155
163
  case _player.ZOOM_CHANGE:
156
164
  return _objectSpread(_objectSpread({}, state), {}, {
157
165
  zoom: action.z
@@ -195,6 +203,10 @@ function player() {
195
203
  return _objectSpread(_objectSpread({}, state), {}, {
196
204
  SDBorderActive: action.SDBorderActive
197
205
  });
206
+ case _player.SUBTITLE_STATUS:
207
+ return _objectSpread(_objectSpread({}, state), {}, {
208
+ SubtitleStatus: action.SubtitleStatus
209
+ });
198
210
  case _video.DURATION_CHANGE:
199
211
  case _video.TIME_UPDATE:
200
212
  case _video.VOLUME_CHANGE: