@desynova-digital/player 4.0.77 → 4.0.79

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.
@@ -31,7 +31,9 @@ function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.fre
31
31
  var propTypes = {
32
32
  player: _propTypes.PropTypes.instanceOf(Object),
33
33
  actions: _propTypes.PropTypes.instanceOf(Object),
34
- style: _propTypes.PropTypes.instanceOf(Object)
34
+ style: _propTypes.PropTypes.instanceOf(Object),
35
+ enablePlayerActions: _propTypes.PropTypes.string,
36
+ playerType: _propTypes.PropTypes.string
35
37
  };
36
38
  var defaultProps = {
37
39
  player: {},
@@ -60,9 +62,10 @@ var ZoomMenuButton = /*#__PURE__*/function (_Component) {
60
62
  value: function render() {
61
63
  var _this$props = this.props,
62
64
  style = _this$props.style,
63
- playerType = _this$props.playerType;
65
+ playerType = _this$props.playerType,
66
+ enablePlayerActions = _this$props.enablePlayerActions;
64
67
  var vertical = false;
65
- return playerType === 'subtitle' && /*#__PURE__*/_react["default"].createElement(ZoomMenu, {
68
+ return (playerType === 'subtitle' || enablePlayerActions.includes('zoomMenuButton')) && /*#__PURE__*/_react["default"].createElement(ZoomMenu, {
66
69
  style: style
67
70
  }, /*#__PURE__*/_react["default"].createElement(ZoomButton, {
68
71
  display: "rounded",
@@ -11,6 +11,7 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
11
  var _components = require("@desynova-digital/components");
12
12
  var _tokens = require("@desynova-digital/tokens");
13
13
  var _SafeAreaControl = _interopRequireDefault(require("./SafeAreaControl"));
14
+ var _PlaybackRateControl = _interopRequireDefault(require("./PlaybackRateControl"));
14
15
  var _templateObject, _templateObject2;
15
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
16
17
  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); }
@@ -146,9 +147,11 @@ var ChildMenuButton = /*#__PURE__*/function (_Component) {
146
147
  }), /*#__PURE__*/_react["default"].createElement("p", {
147
148
  style: activeChild && activeChild === subtitle.title ? {
148
149
  color: theme ? " ".concat(_tokens.colors[theme].videoPlayer.themeColor) : '#00cec6',
149
- pointerEvents: 'none'
150
+ pointerEvents: 'none',
151
+ textAlign: 'left'
150
152
  } : {
151
- color: '#333333'
153
+ color: '#333333',
154
+ textAlign: 'left'
152
155
  }
153
156
  }, subtitle.title), subtitle.srt_file_name && /*#__PURE__*/_react["default"].createElement("div", {
154
157
  className: "icon-wrapper"
@@ -176,7 +179,8 @@ var ChildMenuButton = /*#__PURE__*/function (_Component) {
176
179
  case 'Grid Area':
177
180
  return subtitleData && subtitleData.map(function (border, index) {
178
181
  return /*#__PURE__*/_react["default"].createElement(MainMenuBlock, {
179
- theme: theme
182
+ theme: theme,
183
+ mainHeader: mainHeader
180
184
  // onClick={() => this.changeCaption(subtitle)}
181
185
  ,
182
186
  role: "presentation"
@@ -191,8 +195,31 @@ var ChildMenuButton = /*#__PURE__*/function (_Component) {
191
195
  actions: actions
192
196
  }));
193
197
  });
194
- case 'PlayBack Speed':
195
- return; /* JSX for Audio */
198
+ case 'Playback Speed':
199
+ return subtitleData.map(function (subtitle, index) {
200
+ return /*#__PURE__*/_react["default"].createElement(MainMenuBlock, {
201
+ theme: theme,
202
+ mainHeader: mainHeader
203
+ // onClick={() => this.changeCaption(subtitle)}
204
+ ,
205
+ role: "presentation",
206
+ key: index,
207
+ style: activeChild && activeChild === subtitle.keyData ? {
208
+ pointerEvents: 'none'
209
+ } : null
210
+ }, /*#__PURE__*/_react["default"].createElement("div", {
211
+ style: {
212
+ width: '100%'
213
+ }
214
+ }, /*#__PURE__*/_react["default"].createElement(_PlaybackRateControl["default"], {
215
+ theme: theme,
216
+ player: player,
217
+ actions: actions,
218
+ disablePlayerActions: _this2.props.disablePlayerActions,
219
+ playerType: _this2.props.playerType,
220
+ playRate: subtitle.keyData
221
+ })));
222
+ });
196
223
  default:
197
224
  return /*#__PURE__*/_react["default"].createElement("p", null, "Unsupported type: ", mainHeader);
198
225
  }
@@ -38,10 +38,10 @@ var propTypes = {
38
38
  hasChild: _propTypes.PropTypes.bool,
39
39
  iconName: _propTypes.PropTypes.string
40
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) {
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 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
42
  return props.theme ? " ".concat(_tokens.colors[props.theme].videoPlayer.rgbaThemeColor) : 'rgba(0, 206, 198, 0.1)';
43
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 i {\n display: flex;\n align-items:center\n }\n"])));
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 i {\n display: flex;\n align-items: center;\n }\n"])));
45
45
  var ParentMenuControl = exports["default"] = /*#__PURE__*/function (_Component) {
46
46
  function ParentMenuControl(props) {
47
47
  var _this;
@@ -33,7 +33,7 @@ var propTypes = {
33
33
  theme: _propTypes.PropTypes.string,
34
34
  playerType: _propTypes.PropTypes.string
35
35
  };
36
- var PlaybackRateBlock = (0, _styledComponents["default"])('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: block;\n background: transparent;\n font-family: SFUIText-Medium;\n font-size: 12px;\n text-transform: uppercase;\n align-items: center;\n padding: 0 !important;\n .playback-block {\n display: flex;\n justify-content: flex-start;\n border-bottom: 1px solid #eeeeee;\n p {\n margin-left: 10px;\n white-space: nowrap;\n }\n }\n .playback-rate-body {\n padding: 0 !important;\n display: flex;\n justify-content: space-between;\n .playback-rate {\n border-right: 1px solid #eeeeee;\n &:last-child {\n border: none;\n }\n &:hover {\n background: ", ";\n }\n &.active {\n pointer-events: none;\n color: ", ";\n }\n }\n }\n"])), function (props) {
36
+ var PlaybackRateBlock = (0, _styledComponents["default"])('div')(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\n font-family: SFUIText-Medium;\n font-size: 12px;\n text-transform: lowercase;\n \n .playback-rate-body {\n .playback-rate {\n border-right: 1px solid #eeeeee;\n margin: 0;\n padding-top: 17px;\n padding-bottom: 12px;\n padding-left: 15px;\n padding-right: 0;\n &:last-child {\n border: none;\n }\n &:hover {\n background: ", ";\n }\n &.active {\n pointer-events: none;\n color: ", ";\n }\n }\n }\n"])), function (props) {
37
37
  return props.disablePlayerActions.includes('playback_rate') ? '' : props.theme ? "".concat(_tokens.colors[props.theme].videoPlayer.rgbaThemeColor) : 'rgba(0, 206, 198, 0.1)';
38
38
  }, function (props) {
39
39
  return props.theme ? " ".concat(_tokens.colors[props.theme].videoPlayer.themeColor) : '#00cec6';
@@ -79,54 +79,22 @@ var PlaybackRateControl = exports["default"] = /*#__PURE__*/function (_Component
79
79
  var _this$props2 = this.props,
80
80
  player = _this$props2.player,
81
81
  disablePlayerActions = _this$props2.disablePlayerActions,
82
- theme = _this$props2.theme;
82
+ theme = _this$props2.theme,
83
+ playRate = _this$props2.playRate;
83
84
  return /*#__PURE__*/_react["default"].createElement(PlaybackRateBlock, {
84
85
  theme: theme,
85
86
  disablePlayerActions: disablePlayerActions
86
87
  }, /*#__PURE__*/_react["default"].createElement("div", {
87
- className: "playback-block"
88
- }, /*#__PURE__*/_react["default"].createElement(_components.Icon, {
89
- name: "playback-rate",
90
- width: 14,
91
- height: 14,
92
- color: "#182738"
93
- }), /*#__PURE__*/_react["default"].createElement("p", {
94
- style: {
95
- color: '#182738'
88
+ className: "playback-rate-body",
89
+ onClick: function onClick() {
90
+ return _this2.changePlaybackRate(playRate);
96
91
  }
97
- }, "Playback Speed")), /*#__PURE__*/_react["default"].createElement("div", {
98
- className: "playback-rate-body"
99
92
  }, /*#__PURE__*/_react["default"].createElement("div", {
100
- className: player.playbackRate === 0.5 ? 'playback-rate active' : 'playback-rate',
101
- onClick: function onClick() {
102
- return _this2.changePlaybackRate(0.5);
103
- },
104
- role: "presentation"
105
- }, "0.5x"), /*#__PURE__*/_react["default"].createElement("div", {
106
- className: player.playbackRate === 1 ? 'playback-rate active' : 'playback-rate',
107
- onClick: function onClick() {
108
- return _this2.changePlaybackRate(1);
109
- },
110
- role: "presentation"
111
- }, "1x"), /*#__PURE__*/_react["default"].createElement("div", {
112
- className: player.playbackRate === 1.5 ? 'playback-rate active' : 'playback-rate',
113
- onClick: function onClick() {
114
- return _this2.changePlaybackRate(1.5);
115
- },
116
- role: "presentation"
117
- }, "1.5x"), /*#__PURE__*/_react["default"].createElement("div", {
118
- className: player.playbackRate === 2 ? 'playback-rate active' : 'playback-rate',
119
- onClick: function onClick() {
120
- return _this2.changePlaybackRate(2);
121
- },
122
- role: "presentation"
123
- }, "2x"), /*#__PURE__*/_react["default"].createElement("div", {
124
- className: player.playbackRate === 4 ? 'playback-rate active' : 'playback-rate',
125
- onClick: function onClick() {
126
- return _this2.changePlaybackRate(4);
127
- },
93
+ className: player.playbackRate === Number(playRate) ? 'playback-rate active' : 'playback-rate'
94
+ // onClick={() => this.changePlaybackRate(playRate)}
95
+ ,
128
96
  role: "presentation"
129
- }, "4x")));
97
+ }, playRate, "x")));
130
98
  }
131
99
  }]);
132
100
  }(_react.Component);
@@ -41,10 +41,11 @@ var propTypes = {
41
41
  theme: _propTypes.PropTypes.string,
42
42
  playerType: _propTypes.PropTypes.string
43
43
  };
44
- var SettingsMenuContainer = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 100%;\n min-width: 250px;\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) {
44
+ var SettingsMenuContainer = _styledComponents["default"].div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 100%;\n min-width: 250px;\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) {
45
45
  return props.disablePlayerActions.includes('playback_rate') ? 'not-allowed' : 'pointer';
46
46
  });
47
47
  function SettingsMenu(_ref) {
48
+ var _player$playbackRate;
48
49
  var player = _ref.player,
49
50
  actions = _ref.actions,
50
51
  style = _ref.style,
@@ -73,10 +74,11 @@ function SettingsMenu(_ref) {
73
74
  setActiveHeader = _useState6[1];
74
75
  var activeCaptionValue = player.activeCaption;
75
76
  if (!player.SubtitleStatus) {
76
- activeCaptionValue = "Off";
77
+ activeCaptionValue = 'Off';
77
78
  }
78
79
  var activeSafeMargins = player.fourThreeSafeArea ? '4:3' : player.sixteenNineSafeArea ? '16:9' : 'Off';
79
80
  var activeGridArea = player.SDBorderActive ? '4:3' : player.HDBorderActive ? '16:9' : 'Off';
81
+ var activePlaybackRate = (_player$playbackRate = player.playbackRate) !== null && _player$playbackRate !== void 0 ? _player$playbackRate : player.defaultPlaybackRate;
80
82
  var handleSubtitleStatus = function handleSubtitleStatus(statusKey) {
81
83
  setSettingStatus(function (prevSettingStatus) {
82
84
  return !prevSettingStatus;
@@ -87,27 +89,63 @@ function SettingsMenu(_ref) {
87
89
  statusKey && setActiveHeader(statusKey);
88
90
  };
89
91
  var dataOptions = {
90
- "Safe Margins": [{
91
- "title": "16:9",
92
- "keyData": "fourThreeSafeArea",
93
- "siblingData": "sixteenNineSafeArea",
94
- "name": "4:3"
92
+ 'Safe Margins': [{
93
+ title: '16:9',
94
+ keyData: 'fourThreeSafeArea',
95
+ siblingData: 'sixteenNineSafeArea',
96
+ name: '4:3'
95
97
  }, {
96
- "title": "4:3",
97
- "keyData": "sixteenNineSafeArea",
98
- "siblingData": "fourThreeSafeArea",
99
- "name": "16:9"
98
+ title: '4:3',
99
+ keyData: 'sixteenNineSafeArea',
100
+ siblingData: 'fourThreeSafeArea',
101
+ name: '16:9'
100
102
  }],
101
- "Grid Area": [{
102
- "title": "16:9",
103
- "keyData": "SDBorderActive",
104
- "siblingData": "HDBorderActive",
105
- "name": "4:3"
103
+ 'Grid Area': [{
104
+ title: '16:9',
105
+ keyData: 'SDBorderActive',
106
+ siblingData: 'HDBorderActive',
107
+ name: '4:3'
106
108
  }, {
107
- "title": "4:3",
108
- "keyData": "HDBorderActive",
109
- "siblingData": "SDBorderActive",
110
- "name": "16:9"
109
+ title: '4:3',
110
+ keyData: 'HDBorderActive',
111
+ siblingData: 'SDBorderActive',
112
+ name: '16:9'
113
+ }],
114
+ 'Playback Speed': [{
115
+ title: '0.5x',
116
+ keyData: '0.5',
117
+ siblingData: '',
118
+ name: '0.5x'
119
+ }, {
120
+ title: '0.75x',
121
+ keyData: '0.75',
122
+ siblingData: '',
123
+ name: '1x'
124
+ }, {
125
+ title: '1x',
126
+ keyData: '1',
127
+ siblingData: '',
128
+ name: '1x'
129
+ }, {
130
+ title: '1.25x',
131
+ keyData: '1.25',
132
+ siblingData: '',
133
+ name: '1.25x'
134
+ }, {
135
+ title: '1.5x',
136
+ keyData: '1.5',
137
+ siblingData: '',
138
+ name: '1.5x'
139
+ }, {
140
+ title: '2x',
141
+ keyData: '2',
142
+ siblingData: '',
143
+ name: '2x'
144
+ }, {
145
+ title: '4x',
146
+ keyData: '4',
147
+ siblingData: '',
148
+ name: '4x'
111
149
  }]
112
150
  };
113
151
  (0, _react.useEffect)(function () {
@@ -126,49 +164,53 @@ function SettingsMenu(_ref) {
126
164
  data: subtitleData,
127
165
  iconName: 'subtitle-on-off',
128
166
  hasChild: true,
129
- heading: "Subtitle",
167
+ heading: 'Subtitle',
130
168
  theme: theme,
131
169
  player: player,
132
170
  actions: actions,
133
171
  activeChild: activeCaptionValue,
134
172
  handleStatus: function handleStatus(e) {
135
- return handleSubtitleStatus("Subtitle");
173
+ return handleSubtitleStatus('Subtitle');
136
174
  }
137
175
  })), settingStatus && /*#__PURE__*/_react["default"].createElement(_ParentMenuComponent["default"], _extends({}, props, {
138
- data: ["16:9"],
176
+ data: ['16:9'],
139
177
  iconName: 'safe-margins',
140
178
  hasChild: true,
141
- heading: "Safe Margins",
179
+ heading: 'Safe Margins',
142
180
  theme: theme,
143
181
  player: player,
144
182
  actions: actions,
145
183
  activeChild: activeSafeMargins,
146
184
  handleStatus: function handleStatus(e) {
147
- return handleSubtitleStatus("Safe Margins");
185
+ return handleSubtitleStatus('Safe Margins');
148
186
  }
149
187
  })), settingStatus && /*#__PURE__*/_react["default"].createElement(_ParentMenuComponent["default"], _extends({}, props, {
150
- data: ["16:9"],
188
+ data: ['16:9'],
151
189
  iconName: 'safe-area',
152
190
  hasChild: true,
153
- heading: "Grid Area",
191
+ heading: 'Grid Area',
154
192
  theme: theme,
155
193
  player: player,
156
194
  actions: actions,
157
195
  activeChild: activeGridArea,
158
196
  handleStatus: function handleStatus(e) {
159
- return handleSubtitleStatus("Grid Area");
197
+ return handleSubtitleStatus('Grid Area');
160
198
  }
161
- }))), settingStatus && /*#__PURE__*/_react["default"].createElement("div", {
162
- className: "settings-menu-tile playback"
163
- }, /*#__PURE__*/_react["default"].createElement(_PlaybackRateControl["default"], {
199
+ })), settingStatus && /*#__PURE__*/_react["default"].createElement(_ParentMenuComponent["default"], _extends({}, props, {
200
+ data: [1],
201
+ iconName: 'playback-rate',
202
+ hasChild: true,
203
+ heading: 'Playback Speed',
164
204
  theme: theme,
165
205
  player: player,
166
206
  actions: actions,
167
- disablePlayerActions: disablePlayerActions,
168
- playerType: playerType
169
- }))), subtitleChildStatus && /*#__PURE__*/_react["default"].createElement(_ChildMenuComponent["default"], _extends({}, props, {
207
+ activeChild: "".concat(activePlaybackRate, "x"),
208
+ handleStatus: function handleStatus(e) {
209
+ return handleSubtitleStatus('Playback Speed');
210
+ }
211
+ })))), subtitleChildStatus && /*#__PURE__*/_react["default"].createElement(_ChildMenuComponent["default"], _extends({}, props, {
170
212
  stop: activeHeader === 'Subtitle',
171
- iconName: "child-close-button",
213
+ iconName: 'child-close-button',
172
214
  mainHeader: activeHeader
173
215
  // subtitleData={[{"title": "16:9"}, {"title": "4:3"}]}
174
216
  ,
@@ -178,7 +220,9 @@ function SettingsMenu(_ref) {
178
220
  actions: actions,
179
221
  handleStatus: handleSubtitleStatus,
180
222
  handleValueChange: actions.handleCaptionTrackChange,
181
- activeChild: activeCaptionValue
223
+ activeChild: activeCaptionValue,
224
+ disablePlayerActions: disablePlayerActions,
225
+ playerType: playerType
182
226
  })));
183
227
  }
184
228
  SettingsMenu.propTypes = propTypes;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@desynova-digital/player",
3
- "version": "4.0.77",
3
+ "version": "4.0.79",
4
4
  "description": "Video Player Package for Contido Application",
5
5
  "main": "index.js",
6
6
  "scripts": {