@agilemotion/oui-react-js 1.4.8 → 1.5.0

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/dist/RestUtils.js CHANGED
@@ -275,8 +275,7 @@ class RestUtils {
275
275
  fetchConfig = {
276
276
  method: _Utils.default.isNull(method) ? 'GET' : method,
277
277
  headers: {
278
- 'Content-Type': 'application/json',
279
- 'Accept': 'application/json',
278
+ 'Content-Type': 'application/x-www-form-urlencoded',
280
279
  'Authorization': 'Bearer ' + accessToken,
281
280
  'idToken': idToken
282
281
  },
@@ -294,7 +293,7 @@ class RestUtils {
294
293
  }
295
294
 
296
295
  if ('rest' === serviceType) {
297
- fetchConfig.headers['Content-Type'] = 'application/json; utf-8';
296
+ fetchConfig.headers['Content-Type'] = 'application/json; charset=utf-8';
298
297
  }
299
298
  }
300
299
 
@@ -56,7 +56,7 @@ class SocketManager {
56
56
  });
57
57
 
58
58
  _defineProperty(this, "init", async () => {
59
- let socket = _socket.default.connect("https://svn.agilemotion.co.za");
59
+ let socket = _socket.default.connect(process.env.REACT_APP_SOCKET_SERVER_URL);
60
60
 
61
61
  this.socket = socket;
62
62
  socket.on("connect", () => {
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useIsVisible = useIsVisible;
7
+
8
+ var _react = require("react");
9
+
10
+ function useIsVisible(ref) {
11
+ const [isIntersecting, setIntersecting] = (0, _react.useState)(false);
12
+ (0, _react.useEffect)(() => {
13
+ const observer = new IntersectionObserver(([entry]) => setIntersecting(entry.isIntersecting), {
14
+ threshold: 1
15
+ });
16
+ observer.observe(ref.current);
17
+ return () => {
18
+ observer.disconnect();
19
+ };
20
+ }, [ref]);
21
+ return isIntersecting;
22
+ }
@@ -281,6 +281,30 @@ class Sidebar extends _react.default.Component {
281
281
  suppressScrollY: false,
282
282
  });*/
283
283
  }
284
+
285
+ let service = {
286
+ url: '/ui/api/v1/menu/filter',
287
+ parameters: [{
288
+ value: this.props.routes,
289
+ httpParameterType: 'REQUEST_BODY'
290
+ }],
291
+ method: 'POST',
292
+ contentType: 'application/json'
293
+ };
294
+ (0, _RestUtils.invokeRest)(service, {
295
+ api: {
296
+ get id() {
297
+ return 'dashboard-sidebar';
298
+ }
299
+
300
+ }
301
+ }, 'dashboard-sidebar', result => {
302
+ this.setState({ ...this.state,
303
+ routes: result
304
+ });
305
+ }, e => {
306
+ console.error(e);
307
+ }, null);
284
308
  }
285
309
 
286
310
  componentWillUnmount() {
@@ -360,13 +384,13 @@ class Sidebar extends _react.default.Component {
360
384
  height: '70%'
361
385
  },
362
386
  valign: 'top'
363
- }, /*#__PURE__*/_react.default.createElement(_reactstrap.Nav, {
387
+ }, this.state.routes && /*#__PURE__*/_react.default.createElement(_reactstrap.Nav, {
364
388
  style: {
365
389
  margin: '8px',
366
390
  padding: '16px'
367
391
  },
368
392
  className: 'nav-wrapper'
369
- }, this.createLinks(this.props.routes)))), /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", {
393
+ }, this.createLinks(this.state.routes)))), /*#__PURE__*/_react.default.createElement("tr", null, /*#__PURE__*/_react.default.createElement("td", {
370
394
  className: 'sidebar-app-logo-wrapper',
371
395
  style: {
372
396
  height: '10%'
@@ -23,16 +23,6 @@ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton")
23
23
 
24
24
  var _ApplicationManager = _interopRequireDefault(require("../../ApplicationManager"));
25
25
 
26
- var _AlertBar = _interopRequireDefault(require("../AlertBar"));
27
-
28
- var _VCEventManager = _interopRequireDefault(require("../media/VCEventManager"));
29
-
30
- var _Observable = _interopRequireDefault(require("../../event/Observable"));
31
-
32
- var _SocketManager = _interopRequireDefault(require("../SocketManager"));
33
-
34
- var _TitleBar = _interopRequireDefault(require("../TitleBar"));
35
-
36
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
27
 
38
28
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -334,7 +324,7 @@ const Window = props => {
334
324
  marginRight: '4px'
335
325
  }
336
326
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
337
- id: 'DOCK'
327
+ id: 'MAXIMIZE'
338
328
  }))))))), children))));
339
329
  };
340
330
 
@@ -1,8 +1,9 @@
1
1
 
2
2
  .vc-toolbar .button-container {
3
3
  min-width: 200px;
4
- overflow: hidden;
4
+ overflow: auto;
5
5
  margin-left: 8px;
6
+ white-space: nowrap;
6
7
  }
7
8
 
8
9
  .window-pinned .vc-toolbar .timer {
@@ -11,9 +12,21 @@
11
12
  }
12
13
 
13
14
  .vc-toolbar button,
15
+ .vc-toolbar .more-button-wrapper,
14
16
  .vc-toolbar .button-wrapper {
15
17
  min-width: 88px;
16
18
  width: 88px;
19
+ display: inline-block;
20
+ }
21
+
22
+ .vc-toolbar .more-button-wrapper button {
23
+ min-width: 48px;
24
+ width: 48px;
25
+ }
26
+
27
+ .vc-toolbar .more-button-wrapper {
28
+ min-width: 48px;
29
+ width: 48px;
17
30
  }
18
31
 
19
32
  .vc-toolbar .hang-up,
@@ -35,6 +35,10 @@ var _ApplicationManager = _interopRequireDefault(require("../../ApplicationManag
35
35
 
36
36
  var _SocketManager = _interopRequireDefault(require("../SocketManager"));
37
37
 
38
+ var _ToolbarButton = _interopRequireDefault(require("./ToolbarButton"));
39
+
40
+ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
41
+
38
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
43
 
40
44
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -52,6 +56,20 @@ const Toolbar = props => {
52
56
  const [screenShared, setScreenShared] = (0, _react.useState)(false);
53
57
  const [roomStatus, setRoomStatus] = (0, _react.useState)();
54
58
  const [raisedHandsNames, setRaisedHandsNames] = (0, _react.useState)([]);
59
+ const [buttonVisibility, setButtonVisibility] = (0, _react.useState)({});
60
+ const [allButtonsVisible, setAllButtonsVisible] = (0, _react.useState)(false);
61
+ const [testButtons, setTestButtons] = (0, _react.useState)([]);
62
+ (0, _react.useEffect)(() => {
63
+ let buttons = [];
64
+
65
+ for (let i = 0; i < 13; i++) {
66
+ buttons.push({
67
+ id: '_' + i
68
+ });
69
+ }
70
+
71
+ setTestButtons(buttons);
72
+ }, []);
55
73
  const {
56
74
  participants,
57
75
  hasUnreadChats,
@@ -189,26 +207,26 @@ const Toolbar = props => {
189
207
  }));
190
208
  };
191
209
 
210
+ const handleVisibilityChange = (id, visible) => {
211
+ buttonVisibility[id] = visible;
212
+ let allVisible = true;
213
+ Object.keys(buttonVisibility).forEach(key => {
214
+ if (buttonVisibility[key] === false) {
215
+ allVisible = false;
216
+ }
217
+ });
218
+ setAllButtonsVisible(allVisible);
219
+ setButtonVisibility(JSON.parse(JSON.stringify(buttonVisibility)));
220
+ };
221
+
192
222
  return /*#__PURE__*/_react.default.createElement("div", {
193
223
  style: {
194
224
  width: '100%'
195
225
  },
196
226
  className: 'centered-flex-box vc-toolbar'
197
227
  }, roomStatus === 'SESSION_ENDED' ? /*#__PURE__*/_react.default.createElement("div", {
198
- className: 'row centered-flex-box button-wrapper col no-margin no-padding'
199
- }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
200
- title: "Close"
201
- }, /*#__PURE__*/_react.default.createElement(_Button.default, {
202
- onClick: () => {
203
- closeWindow();
204
- },
205
- style: {
206
- color: '#eb3f21',
207
- marginRight: '4px'
208
- }
209
- }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
210
- id: 'CLOSE'
211
- })))) : /*#__PURE__*/_react.default.createElement("div", {
228
+ className: 'row centered-flex-box button-wrapper no-margin no-padding'
229
+ }, /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, null)) : /*#__PURE__*/_react.default.createElement("div", {
212
230
  className: 'row',
213
231
  style: {
214
232
  justifyContent: 'right',
@@ -221,16 +239,22 @@ const Toolbar = props => {
221
239
  },
222
240
  className: 'timer'
223
241
  }, /*#__PURE__*/_react.default.createElement(_Timer.default, null)), /*#__PURE__*/_react.default.createElement("div", {
242
+ style: {
243
+ width: '60px'
244
+ }
245
+ }, "\xA0"), /*#__PURE__*/_react.default.createElement("div", {
224
246
  style: {
225
247
  display: 'flex',
226
248
  justifyContent: 'right',
227
- width: 'calc(100% - 120px)'
249
+ width: 'calc(100% - 180px)'
228
250
  },
229
251
  className: 'col button-container'
230
252
  }, /*#__PURE__*/_react.default.createElement("div", {
231
- className: 'row no-margin no-padding'
253
+ className: 'no-margin no-padding'
232
254
  }, isHost && roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && /*#__PURE__*/_react.default.createElement("div", {
233
255
  className: 'button-wrapper col no-margin no-padding'
256
+ }, /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
257
+ onVisibilityChange: visible => handleVisibilityChange('record', visible)
234
258
  }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
235
259
  title: "Record"
236
260
  }, /*#__PURE__*/_react.default.createElement(_Button.default, {
@@ -253,8 +277,10 @@ const Toolbar = props => {
253
277
  id: 'RECORD'
254
278
  })), /*#__PURE__*/_react.default.createElement("div", {
255
279
  className: 'text'
256
- }, isRecording ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Recording") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Record")))))), (roomStatus === 'SESSION' || roomStatus === 'LOBBY') && !videoDisabled && /*#__PURE__*/_react.default.createElement("div", {
280
+ }, isRecording ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Recording") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Record"))))))), (roomStatus === 'SESSION' || roomStatus === 'LOBBY') && !videoDisabled && /*#__PURE__*/_react.default.createElement("div", {
257
281
  className: 'button-wrapper col no-margin no-padding'
282
+ }, /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
283
+ onVisibilityChange: visible => handleVisibilityChange('video', visible)
258
284
  }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
259
285
  title: "Video"
260
286
  }, /*#__PURE__*/_react.default.createElement(_Button.default, {
@@ -277,8 +303,10 @@ const Toolbar = props => {
277
303
  id: 'CAMERA'
278
304
  })), /*#__PURE__*/_react.default.createElement("div", {
279
305
  className: 'text'
280
- }, "Camera"))))), (roomStatus === 'SESSION' || roomStatus === 'LOBBY') && !audioDisabled && /*#__PURE__*/_react.default.createElement("div", {
306
+ }, "Camera")))))), (roomStatus === 'SESSION' || roomStatus === 'LOBBY') && !audioDisabled && /*#__PURE__*/_react.default.createElement("div", {
281
307
  className: 'button-wrapper col no-margin no-padding'
308
+ }, /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
309
+ onVisibilityChange: visible => handleVisibilityChange('audio', visible)
282
310
  }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
283
311
  title: "Audio"
284
312
  }, /*#__PURE__*/_react.default.createElement(_Button.default, {
@@ -301,8 +329,10 @@ const Toolbar = props => {
301
329
  id: 'MIC'
302
330
  })), /*#__PURE__*/_react.default.createElement("div", {
303
331
  className: 'text'
304
- }, "Mic"))))), ' ', roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && !whiteBoardShown && /*#__PURE__*/_react.default.createElement("div", {
332
+ }, "Mic")))))), ' ', roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && !whiteBoardShown && /*#__PURE__*/_react.default.createElement("div", {
305
333
  className: 'button-wrapper col no-margin no-padding'
334
+ }, /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
335
+ onVisibilityChange: visible => handleVisibilityChange('shareScreen', visible)
306
336
  }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
307
337
  title: "Share"
308
338
  }, /*#__PURE__*/_react.default.createElement(_Button.default, {
@@ -338,34 +368,14 @@ const Toolbar = props => {
338
368
  style: {
339
369
  marginRight: '8px'
340
370
  }
341
- }, "Share screen"))))))), roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && /*#__PURE__*/_react.default.createElement("div", {
342
- className: 'button-wrapper col no-margin no-padding'
343
- }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
344
- title: "Chat"
345
- }, /*#__PURE__*/_react.default.createElement(_Button.default, {
346
- style: {
347
- color: '#404239',
348
- marginRight: '4px'
349
- },
350
- onClick: e => showChat()
351
- }, hasUnreadChats && /*#__PURE__*/_react.default.createElement("div", {
352
- className: 'unread-dot'
353
- }), /*#__PURE__*/_react.default.createElement("div", {
354
- style: {
355
- height: '100%'
356
- }
357
- }, /*#__PURE__*/_react.default.createElement("div", {
358
- className: 'icon'
359
- }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
360
- id: 'CHAT_BUBBLE'
361
- })), /*#__PURE__*/_react.default.createElement("div", {
362
- className: 'text'
363
- }, "Chat"))))), roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && /*#__PURE__*/_react.default.createElement("div", {
371
+ }, "Share screen")))))))), roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && /*#__PURE__*/_react.default.createElement("div", {
364
372
  className: 'centered-flex-box'
365
373
  }, /*#__PURE__*/_react.default.createElement("div", {
366
374
  className: 'marker'
367
375
  }, participants.length), /*#__PURE__*/_react.default.createElement("div", {
368
376
  className: 'button-wrapper col no-margin no-padding'
377
+ }, /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
378
+ onVisibilityChange: visible => handleVisibilityChange('people', visible)
369
379
  }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
370
380
  title: "People"
371
381
  }, /*#__PURE__*/_react.default.createElement(_Button.default, {
@@ -384,12 +394,14 @@ const Toolbar = props => {
384
394
  id: 'PEOPLE'
385
395
  })), /*#__PURE__*/_react.default.createElement("div", {
386
396
  className: 'text'
387
- }, "People")))))), roomStatus === 'SESSION' && /*#__PURE__*/_react.default.createElement("div", {
397
+ }, "People"))))))), roomStatus === 'SESSION' && /*#__PURE__*/_react.default.createElement("div", {
388
398
  className: 'centered-flex-box'
389
399
  }, raisedHands.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
390
400
  className: 'marker'
391
401
  }, raisedHands.length), /*#__PURE__*/_react.default.createElement("div", {
392
402
  className: 'button-wrapper col no-margin no-padding'
403
+ }, /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
404
+ onVisibilityChange: visible => handleVisibilityChange('raiseHand', visible)
393
405
  }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
394
406
  title: raisedHands.length > 0 ? /*#__PURE__*/_react.default.createElement("div", null, renderRaisedHandsToolTip()) : handRaised ? 'Lower hand' : 'Raise hand'
395
407
  }, /*#__PURE__*/_react.default.createElement(_Button.default, {
@@ -414,7 +426,21 @@ const Toolbar = props => {
414
426
  id: 'PAN_TOOL'
415
427
  })), /*#__PURE__*/_react.default.createElement("div", {
416
428
  className: 'text'
417
- }, handRaised ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Lower") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Raise"))))))), /*#__PURE__*/_react.default.createElement("div", {
429
+ }, handRaised ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Lower") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Raise")))))))), !allButtonsVisible && /*#__PURE__*/_react.default.createElement("div", {
430
+ className: 'more-button-wrapper'
431
+ }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
432
+ title: "More Actions"
433
+ }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
434
+ onClick: handleClick,
435
+ "aria-controls": openMoreActions ? 'toolbar-menu' : undefined,
436
+ "aria-haspopup": "true",
437
+ "aria-expanded": openMoreActions ? 'true' : undefined,
438
+ style: {
439
+ marginRight: '4px'
440
+ }
441
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
442
+ id: 'MORE'
443
+ })))), /*#__PURE__*/_react.default.createElement("div", {
418
444
  className: 'button-wrapper col no-margin no-padding hang-up'
419
445
  }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
420
446
  title: "Hang up"
@@ -437,19 +463,20 @@ const Toolbar = props => {
437
463
  id: 'CALL_END'
438
464
  }))))))), /*#__PURE__*/_react.default.createElement(_core.Menu, {
439
465
  anchorEl: anchorEl,
440
- id: "account-menu",
466
+ id: "toobar-menu",
441
467
  open: openMoreActions,
442
468
  onClose: handleClose,
443
469
  onClick: handleClose,
444
470
  PaperProps: {
445
471
  elevation: 0,
472
+ style: {
473
+ boxShadow: '0 8px 16px 0 rgba(0, 0, 0, 0.2)'
474
+ },
446
475
  sx: {
447
476
  overflow: 'visible',
448
477
  filter: 'drop-shadow(0px 2px 8px rgba(0,0,0,0.32))',
449
478
  mt: 1.5,
450
- '& .MuiList-root': {
451
- border: '1px solid red'
452
- },
479
+ '& .MuiList-root': {},
453
480
  '& .MuiAvatar-root': {
454
481
  width: 32,
455
482
  height: 32,
@@ -471,19 +498,90 @@ const Toolbar = props => {
471
498
  }
472
499
  },
473
500
  transformOrigin: {
474
- horizontal: 20,
475
- vertical: 136
501
+ horizontal: 80,
502
+ vertical: -60
476
503
  },
477
504
  anchorOrigin: {
478
505
  horizontal: 'right',
479
506
  vertical: 'top'
480
507
  }
508
+ }, !buttonVisibility.record && isHost && roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && /*#__PURE__*/_react.default.createElement("div", {
509
+ className: 'button-wrapper no-margin no-padding'
510
+ }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
511
+ disabled: !isHost,
512
+ onClick: () => {
513
+ toggleRecorder();
514
+ }
515
+ }, /*#__PURE__*/_react.default.createElement(_core.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
516
+ id: "RECORD"
517
+ })), "Record")), !buttonVisibility.video && (roomStatus === 'SESSION' || roomStatus === 'LOBBY') && !videoDisabled && /*#__PURE__*/_react.default.createElement("div", {
518
+ className: 'button-wrapper no-margin no-padding'
519
+ }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
520
+ disabled: !isHost,
521
+ onClick: () => {
522
+ muteVideo();
523
+ }
524
+ }, /*#__PURE__*/_react.default.createElement(_core.ListItemIcon, null, videoMuted ? /*#__PURE__*/_react.default.createElement(_Icon.default, {
525
+ id: 'CAMERA_OFF'
526
+ }) : /*#__PURE__*/_react.default.createElement(_Icon.default, {
527
+ id: 'CAMERA'
528
+ })), "Camera")), !buttonVisibility.audio && (roomStatus === 'SESSION' || roomStatus === 'LOBBY') && !videoDisabled && /*#__PURE__*/_react.default.createElement("div", {
529
+ className: 'button-wrapper no-margin no-padding'
530
+ }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
531
+ disabled: !isHost,
532
+ onClick: () => {
533
+ muteAudio();
534
+ }
535
+ }, /*#__PURE__*/_react.default.createElement(_core.ListItemIcon, null, audioMuted ? /*#__PURE__*/_react.default.createElement(_Icon.default, {
536
+ id: 'MIC_OFF'
537
+ }) : /*#__PURE__*/_react.default.createElement(_Icon.default, {
538
+ id: 'MIC'
539
+ })), "Mic")), !buttonVisibility.shareScreen && roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && !whiteBoardShown && /*#__PURE__*/_react.default.createElement("div", {
540
+ className: 'button-wrapper no-margin no-padding'
481
541
  }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
482
542
  disabled: !isHost,
483
- onClick: toggleAutoPermit
484
- }, /*#__PURE__*/_react.default.createElement(_core.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(_icons.PersonAdd, {
485
- fontSize: "small"
486
- })), autoPermit ? 'Disable auto permit [Auto permit is currently on]' : 'Enable auto permit [Auto permit is currently off]')));
543
+ onClick: () => {
544
+ if (screenShared) {
545
+ stopShareScreen();
546
+ } else {
547
+ shareScreen();
548
+ }
549
+ }
550
+ }, /*#__PURE__*/_react.default.createElement(_core.ListItemIcon, null, screenShared ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
551
+ id: 'CANCEL_PRESENTATION'
552
+ })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
553
+ id: 'PRESENT_TO_ALL'
554
+ }))), screenShared ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
555
+ style: {
556
+ marginRight: '8px'
557
+ }
558
+ }, "Stop sharing")) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
559
+ style: {
560
+ marginRight: '8px'
561
+ }
562
+ }, "Share screen")))), !buttonVisibility.people && roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && /*#__PURE__*/_react.default.createElement("div", {
563
+ className: 'button-wrapper no-margin no-padding'
564
+ }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
565
+ disabled: !isHost,
566
+ onClick: () => {
567
+ showPeople();
568
+ }
569
+ }, /*#__PURE__*/_react.default.createElement(_core.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
570
+ id: 'PEOPLE'
571
+ })), /*#__PURE__*/_react.default.createElement("div", null, participants.length, "\xA0People"))), !buttonVisibility.raiseHand && roomStatus === 'SESSION' && /*#__PURE__*/_react.default.createElement("div", {
572
+ className: 'button-wrapper no-margin no-padding'
573
+ }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
574
+ disabled: !isHost,
575
+ onClick: () => {
576
+ if (handRaised) {
577
+ lowerHand();
578
+ } else {
579
+ raiseHand();
580
+ }
581
+ }
582
+ }, /*#__PURE__*/_react.default.createElement(_core.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
583
+ id: 'PAN_TOOL'
584
+ })), handRaised ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Lower") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Raise")))));
487
585
  };
488
586
 
489
587
  var _default = Toolbar;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ require("./Toolbar.css");
11
+
12
+ var _Icon = _interopRequireDefault(require("../Icon"));
13
+
14
+ var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
15
+
16
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
17
+
18
+ var _UseIsVisible = require("../UseIsVisible");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
23
+
24
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ /* eslint-disable react-hooks/exhaustive-deps */
27
+ const Toolbar = props => {
28
+ const [videoMuted, setVideoMuted] = (0, _react.useState)(props.videoMuted);
29
+ const [audioMuted, setAudioMuted] = (0, _react.useState)(props.audioMuted);
30
+ const [isRecording, setIsRecording] = (0, _react.useState)(false);
31
+ const [autoPermit, setAutoPermit] = (0, _react.useState)(false);
32
+ const [anchorEl, setAnchorEl] = (0, _react.useState)(null);
33
+ const openMoreActions = Boolean(anchorEl);
34
+ const [screenShared, setScreenShared] = (0, _react.useState)(false);
35
+ const [roomStatus, setRoomStatus] = (0, _react.useState)();
36
+ const [raisedHandsNames, setRaisedHandsNames] = (0, _react.useState)([]);
37
+ const ref = (0, _react.useRef)();
38
+ const isVisible = (0, _UseIsVisible.useIsVisible)(ref);
39
+ const [visible, setVisible] = (0, _react.useState)(null);
40
+ const {
41
+ children,
42
+ participants,
43
+ hasUnreadChats,
44
+ whiteBoardShown,
45
+ displayState,
46
+ eventHandler,
47
+ handRaised,
48
+ isHost,
49
+ someoneSharing,
50
+ videoDisabled,
51
+ audioDisabled,
52
+ raisedHands
53
+ } = props;
54
+ (0, _react.useEffect)(() => {
55
+ console.log("VISIBILITY FOR : " + props.id + " : " + isVisible);
56
+
57
+ if (visible === null) {
58
+ setVisible(true);
59
+ } else {
60
+ setVisible(isVisible);
61
+ props.onVisibilityChange(isVisible);
62
+ }
63
+ }, [isVisible]);
64
+ return /*#__PURE__*/_react.default.createElement("div", {
65
+ ref: ref,
66
+ style: {
67
+ width: '100%'
68
+ }
69
+ }, !isVisible ? /*#__PURE__*/_react.default.createElement("div", {
70
+ style: {
71
+ width: '100%'
72
+ }
73
+ }, "\xA0") : children);
74
+ };
75
+
76
+ var _default = Toolbar;
77
+ exports.default = _default;
@@ -0,0 +1,468 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ require("./Toolbar.css");
11
+
12
+ var _Icon = _interopRequireDefault(require("../Icon"));
13
+
14
+ var _Tooltip = _interopRequireDefault(require("@material-ui/core/Tooltip"));
15
+
16
+ var _core = require("@material-ui/core");
17
+
18
+ var _icons = require("@material-ui/icons");
19
+
20
+ var _Utils = _interopRequireDefault(require("../../Utils"));
21
+
22
+ var _Observable = _interopRequireDefault(require("../../event/Observable"));
23
+
24
+ var _LottieIcon = _interopRequireDefault(require("../LottieIcon"));
25
+
26
+ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
27
+
28
+ var _Timer = _interopRequireDefault(require("./Timer"));
29
+
30
+ var _VCEventType = require("./VCEventType");
31
+
32
+ var _VCEventManager = _interopRequireDefault(require("./VCEventManager"));
33
+
34
+ var _ApplicationManager = _interopRequireDefault(require("../../ApplicationManager"));
35
+
36
+ var _SocketManager = _interopRequireDefault(require("../SocketManager"));
37
+
38
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
+
40
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
41
+
42
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
+
44
+ /* eslint-disable react-hooks/exhaustive-deps */
45
+ const Toolbar = props => {
46
+ const [videoMuted, setVideoMuted] = (0, _react.useState)(props.videoMuted);
47
+ const [audioMuted, setAudioMuted] = (0, _react.useState)(props.audioMuted);
48
+ const [isRecording, setIsRecording] = (0, _react.useState)(false);
49
+ const [autoPermit, setAutoPermit] = (0, _react.useState)(false);
50
+ const [anchorEl, setAnchorEl] = (0, _react.useState)(null);
51
+ const openMoreActions = Boolean(anchorEl);
52
+ const [screenShared, setScreenShared] = (0, _react.useState)(false);
53
+ const [roomStatus, setRoomStatus] = (0, _react.useState)();
54
+ const [raisedHandsNames, setRaisedHandsNames] = (0, _react.useState)([]);
55
+ const {
56
+ participants,
57
+ hasUnreadChats,
58
+ whiteBoardShown,
59
+ displayState,
60
+ eventHandler,
61
+ handRaised,
62
+ isHost,
63
+ someoneSharing,
64
+ videoDisabled,
65
+ audioDisabled,
66
+ raisedHands
67
+ } = props;
68
+ (0, _react.useEffect)(() => {
69
+ setScreenShared(props.screenShared);
70
+ }, [props.screenShared]);
71
+ (0, _react.useEffect)(() => {
72
+ setIsRecording(props.isRecording);
73
+ }, [props.isRecording]);
74
+ (0, _react.useEffect)(() => {
75
+ setupRaisedHandsNames();
76
+ }, [raisedHands]);
77
+
78
+ const setupRaisedHandsNames = () => {
79
+ if (raisedHands.length === 0) {
80
+ setRaisedHandsNames([]);
81
+ } else {
82
+ let names = [];
83
+
84
+ for (const raisedHand of raisedHands) {
85
+ var _participants$find;
86
+
87
+ names.push((_participants$find = participants.find(p => p.userId === raisedHand)) === null || _participants$find === void 0 ? void 0 : _participants$find.name);
88
+ }
89
+
90
+ setRaisedHandsNames(names);
91
+ }
92
+ };
93
+
94
+ const handleClick = event => {
95
+ setAnchorEl(event.currentTarget);
96
+ };
97
+
98
+ const handleClose = () => {
99
+ setAnchorEl(null);
100
+ };
101
+
102
+ const muteVideo = () => {
103
+ setVideoMuted(prevStatus => !prevStatus);
104
+ };
105
+
106
+ const toggleRecorder = () => {
107
+ if (isRecording) {
108
+ eventHandler.stopRecording();
109
+ } else {
110
+ eventHandler.recordMeeting();
111
+ }
112
+
113
+ setIsRecording(!isRecording);
114
+ };
115
+
116
+ (0, _react.useEffect)(() => {
117
+ setRoomStatus(props.roomStatus);
118
+ }, [props.roomStatus]);
119
+ (0, _react.useEffect)(() => {
120
+ setAutoPermit(props.autoPermit);
121
+ }, [props.autoPermit]);
122
+ (0, _react.useEffect)(() => {
123
+ eventHandler.onMuteVideo(videoMuted);
124
+ }, [videoMuted]);
125
+ (0, _react.useEffect)(() => {
126
+ setVideoMuted(props.videoMuted);
127
+ }, [props.videoMuted]);
128
+ (0, _react.useEffect)(() => {
129
+ setAudioMuted(props.audioMuted);
130
+ }, [props.audioMuted]);
131
+ (0, _react.useEffect)(() => {
132
+ eventHandler.onMuteAudio(audioMuted);
133
+ }, [audioMuted]);
134
+
135
+ const muteAudio = () => {
136
+ setAudioMuted(prevStatus => !prevStatus);
137
+ eventHandler.onMuteAudio(prevStatus => !prevStatus);
138
+ };
139
+
140
+ const shareScreen = () => {
141
+ eventHandler.shareScreen();
142
+ };
143
+
144
+ const stopShareScreen = () => {
145
+ eventHandler.stopShareScreen();
146
+ };
147
+
148
+ const endCall = () => {
149
+ eventHandler.endCall();
150
+ };
151
+
152
+ const showPeople = () => {
153
+ eventHandler.showPeople();
154
+ };
155
+
156
+ const showWhiteboard = () => {
157
+ eventHandler.showWhiteboard();
158
+ };
159
+
160
+ const showChat = () => {
161
+ eventHandler.showChat();
162
+ };
163
+
164
+ const raiseHand = () => {
165
+ eventHandler.raiseHand();
166
+ };
167
+
168
+ const lowerHand = () => {
169
+ eventHandler.lowerHand();
170
+ };
171
+
172
+ const closeWindow = () => {
173
+ eventHandler.closeWindow();
174
+ };
175
+
176
+ const toggleAutoPermit = () => {
177
+ setAutoPermit(prevAutoPermit => !prevAutoPermit);
178
+ eventHandler.toggleAutoPermit();
179
+ };
180
+
181
+ const renderRaisedHandsToolTip = () => {
182
+ return /*#__PURE__*/_react.default.createElement("div", {
183
+ style: {
184
+ textAlign: 'center',
185
+ fontSize: '14px'
186
+ }
187
+ }, raisedHandsNames.map(name => {
188
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, name, /*#__PURE__*/_react.default.createElement("br", null));
189
+ }));
190
+ };
191
+
192
+ return /*#__PURE__*/_react.default.createElement("div", {
193
+ style: {
194
+ width: '100%'
195
+ },
196
+ className: 'centered-flex-box vc-toolbar'
197
+ }, roomStatus === 'SESSION_ENDED' ? /*#__PURE__*/_react.default.createElement("div", {
198
+ className: 'row centered-flex-box button-wrapper col no-margin no-padding'
199
+ }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
200
+ title: "Close"
201
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
202
+ onClick: () => {
203
+ closeWindow();
204
+ },
205
+ style: {
206
+ color: '#eb3f21',
207
+ marginRight: '4px'
208
+ }
209
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
210
+ id: 'CLOSE'
211
+ })))) : /*#__PURE__*/_react.default.createElement("div", {
212
+ className: 'row',
213
+ style: {
214
+ justifyContent: 'right',
215
+ margin: '8px',
216
+ width: '100%'
217
+ }
218
+ }, /*#__PURE__*/_react.default.createElement("div", {
219
+ style: {
220
+ width: '120px'
221
+ },
222
+ className: 'timer'
223
+ }, /*#__PURE__*/_react.default.createElement(_Timer.default, null)), /*#__PURE__*/_react.default.createElement("div", {
224
+ style: {
225
+ display: 'flex',
226
+ justifyContent: 'right',
227
+ width: 'calc(100% - 120px)'
228
+ },
229
+ className: 'col button-container'
230
+ }, /*#__PURE__*/_react.default.createElement("div", {
231
+ className: 'row no-margin no-padding'
232
+ }, isHost && roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && /*#__PURE__*/_react.default.createElement("div", {
233
+ className: 'button-wrapper col no-margin no-padding'
234
+ }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
235
+ title: "Record"
236
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
237
+ onClick: () => {
238
+ toggleRecorder();
239
+ },
240
+ style: {
241
+ color: '#404239',
242
+ marginRight: '4px'
243
+ }
244
+ }, /*#__PURE__*/_react.default.createElement("div", {
245
+ style: {
246
+ height: '100%'
247
+ }
248
+ }, /*#__PURE__*/_react.default.createElement("div", {
249
+ className: 'icon'
250
+ }, isRecording ? /*#__PURE__*/_react.default.createElement(_LottieIcon.default, {
251
+ id: 'recording'
252
+ }) : /*#__PURE__*/_react.default.createElement(_Icon.default, {
253
+ id: 'RECORD'
254
+ })), /*#__PURE__*/_react.default.createElement("div", {
255
+ className: 'text'
256
+ }, isRecording ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Recording") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Record")))))), (roomStatus === 'SESSION' || roomStatus === 'LOBBY') && !videoDisabled && /*#__PURE__*/_react.default.createElement("div", {
257
+ className: 'button-wrapper col no-margin no-padding'
258
+ }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
259
+ title: "Video"
260
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
261
+ onClick: () => {
262
+ muteVideo();
263
+ },
264
+ style: {
265
+ color: videoMuted ? '#eb3f21' : '#404239',
266
+ marginRight: '4px'
267
+ }
268
+ }, /*#__PURE__*/_react.default.createElement("div", {
269
+ style: {
270
+ height: '100%'
271
+ }
272
+ }, /*#__PURE__*/_react.default.createElement("div", {
273
+ className: 'icon'
274
+ }, videoMuted ? /*#__PURE__*/_react.default.createElement(_Icon.default, {
275
+ id: 'CAMERA_OFF'
276
+ }) : /*#__PURE__*/_react.default.createElement(_Icon.default, {
277
+ id: 'CAMERA'
278
+ })), /*#__PURE__*/_react.default.createElement("div", {
279
+ className: 'text'
280
+ }, "Camera"))))), (roomStatus === 'SESSION' || roomStatus === 'LOBBY') && !audioDisabled && /*#__PURE__*/_react.default.createElement("div", {
281
+ className: 'button-wrapper col no-margin no-padding'
282
+ }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
283
+ title: "Audio"
284
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
285
+ onClick: () => {
286
+ muteAudio();
287
+ },
288
+ style: {
289
+ color: audioMuted ? '#eb3f21' : '#404239',
290
+ marginRight: '4px'
291
+ }
292
+ }, /*#__PURE__*/_react.default.createElement("div", {
293
+ style: {
294
+ height: '100%'
295
+ }
296
+ }, /*#__PURE__*/_react.default.createElement("div", {
297
+ className: 'icon'
298
+ }, audioMuted ? /*#__PURE__*/_react.default.createElement(_Icon.default, {
299
+ id: 'MIC_OFF'
300
+ }) : /*#__PURE__*/_react.default.createElement(_Icon.default, {
301
+ id: 'MIC'
302
+ })), /*#__PURE__*/_react.default.createElement("div", {
303
+ className: 'text'
304
+ }, "Mic"))))), ' ', roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && !whiteBoardShown && /*#__PURE__*/_react.default.createElement("div", {
305
+ className: 'button-wrapper col no-margin no-padding'
306
+ }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
307
+ title: "Share"
308
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
309
+ onClick: () => {
310
+ if (screenShared) {
311
+ stopShareScreen();
312
+ } else {
313
+ shareScreen();
314
+ }
315
+ },
316
+ style: {
317
+ color: screenShared ? '#8eb2f5' : '#404239',
318
+ marginRight: '4px',
319
+ minWidth: '108px'
320
+ }
321
+ }, /*#__PURE__*/_react.default.createElement("div", {
322
+ style: {
323
+ height: '100%'
324
+ }
325
+ }, /*#__PURE__*/_react.default.createElement("div", {
326
+ className: 'icon'
327
+ }, screenShared ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
328
+ id: 'CANCEL_PRESENTATION'
329
+ })) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
330
+ id: 'PRESENT_TO_ALL'
331
+ }))), /*#__PURE__*/_react.default.createElement("div", {
332
+ className: 'text'
333
+ }, screenShared ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
334
+ style: {
335
+ marginRight: '8px'
336
+ }
337
+ }, "Stop sharing")) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
338
+ style: {
339
+ marginRight: '8px'
340
+ }
341
+ }, "Share screen"))))))), roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && /*#__PURE__*/_react.default.createElement("div", {
342
+ className: 'centered-flex-box'
343
+ }, /*#__PURE__*/_react.default.createElement("div", {
344
+ className: 'marker'
345
+ }, participants.length), /*#__PURE__*/_react.default.createElement("div", {
346
+ className: 'button-wrapper col no-margin no-padding'
347
+ }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
348
+ title: "People"
349
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
350
+ onClick: e => showPeople(),
351
+ style: {
352
+ color: '#404239',
353
+ marginRight: '4px'
354
+ }
355
+ }, /*#__PURE__*/_react.default.createElement("div", {
356
+ style: {
357
+ height: '100%'
358
+ }
359
+ }, /*#__PURE__*/_react.default.createElement("div", {
360
+ className: 'icon'
361
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
362
+ id: 'PEOPLE'
363
+ })), /*#__PURE__*/_react.default.createElement("div", {
364
+ className: 'text'
365
+ }, "People")))))), roomStatus === 'SESSION' && /*#__PURE__*/_react.default.createElement("div", {
366
+ className: 'centered-flex-box'
367
+ }, raisedHands.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
368
+ className: 'marker'
369
+ }, raisedHands.length), /*#__PURE__*/_react.default.createElement("div", {
370
+ className: 'button-wrapper col no-margin no-padding'
371
+ }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
372
+ title: raisedHands.length > 0 ? /*#__PURE__*/_react.default.createElement("div", null, renderRaisedHandsToolTip()) : handRaised ? 'Lower hand' : 'Raise hand'
373
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
374
+ onClick: e => {
375
+ if (handRaised) {
376
+ lowerHand();
377
+ } else {
378
+ raiseHand();
379
+ }
380
+ },
381
+ style: {
382
+ color: handRaised ? '#e2b030' : '#404239',
383
+ marginRight: '4px'
384
+ }
385
+ }, /*#__PURE__*/_react.default.createElement("div", {
386
+ style: {
387
+ height: '100%'
388
+ }
389
+ }, /*#__PURE__*/_react.default.createElement("div", {
390
+ className: 'icon'
391
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
392
+ id: 'PAN_TOOL'
393
+ })), /*#__PURE__*/_react.default.createElement("div", {
394
+ className: 'text'
395
+ }, handRaised ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Lower") : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, "Raise"))))))), /*#__PURE__*/_react.default.createElement("div", {
396
+ className: 'button-wrapper col no-margin no-padding hang-up'
397
+ }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
398
+ title: "Hang up"
399
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
400
+ onClick: endCall,
401
+ style: {
402
+ backgroundColor: '#eb3f21',
403
+ color: 'white',
404
+ marginRight: '4px',
405
+ minWidth: '120px',
406
+ width: '120px',
407
+ height: '60px'
408
+ }
409
+ }, /*#__PURE__*/_react.default.createElement("span", {
410
+ style: {
411
+ marginRight: '8px',
412
+ fontSize: '12px'
413
+ }
414
+ }, "Hang up"), /*#__PURE__*/_react.default.createElement(_Icon.default, {
415
+ id: 'CALL_END'
416
+ }))))))), /*#__PURE__*/_react.default.createElement(_core.Menu, {
417
+ anchorEl: anchorEl,
418
+ id: "account-menu",
419
+ open: openMoreActions,
420
+ onClose: handleClose,
421
+ onClick: handleClose,
422
+ PaperProps: {
423
+ elevation: 0,
424
+ sx: {
425
+ overflow: 'visible',
426
+ filter: 'drop-shadow(0px 2px 8px rgba(0,0,0,0.32))',
427
+ mt: 1.5,
428
+ '& .MuiList-root': {
429
+ border: '1px solid red'
430
+ },
431
+ '& .MuiAvatar-root': {
432
+ width: 32,
433
+ height: 32,
434
+ ml: -0.5,
435
+ mr: 1
436
+ },
437
+ '&:before': {
438
+ content: '""',
439
+ display: 'block',
440
+ position: 'absolute',
441
+ top: 0,
442
+ right: 14,
443
+ width: 10,
444
+ height: 10,
445
+ bgcolor: 'primary',
446
+ transform: 'translateY(-50%) rotate(45deg)',
447
+ zIndex: 0
448
+ }
449
+ }
450
+ },
451
+ transformOrigin: {
452
+ horizontal: 20,
453
+ vertical: 136
454
+ },
455
+ anchorOrigin: {
456
+ horizontal: 'right',
457
+ vertical: 'top'
458
+ }
459
+ }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
460
+ disabled: !isHost,
461
+ onClick: toggleAutoPermit
462
+ }, /*#__PURE__*/_react.default.createElement(_core.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(_icons.PersonAdd, {
463
+ fontSize: "small"
464
+ })), autoPermit ? 'Disable auto permit [Auto permit is currently on]' : 'Enable auto permit [Auto permit is currently off]')));
465
+ };
466
+
467
+ var _default = Toolbar;
468
+ exports.default = _default;
@@ -7,6 +7,14 @@
7
7
  padding: 0 16px;
8
8
  }
9
9
 
10
+ .window-pinned .meeting-title {
11
+ font-size: 20px !important;
12
+ max-width: 220px;
13
+ white-space: nowrap;
14
+ overflow: hidden;
15
+ text-overflow: ellipsis;
16
+ }
17
+
10
18
  .footer-container {
11
19
  position: absolute;
12
20
  margin: 0 16px;
@@ -70,6 +70,7 @@ const VCRoom = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.for
70
70
  height: '100%'
71
71
  }, props.config)
72
72
  }, settings && calendarEvent && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
73
+ className: 'meeting-title',
73
74
  style: {
74
75
  fontSize: '24px',
75
76
  margin: '8px 0 0 12px',
@@ -599,7 +599,8 @@ const VCRoomWorkspace = props => {
599
599
  width: '100%',
600
600
  justifyContent: 'center',
601
601
  alignItems: 'center',
602
- display: 'flex'
602
+ display: 'flex',
603
+ textAlign: 'center'
603
604
  }
604
605
  }, _VCRoom.WAITING_FOR_OTHERS_TO_JOIN_MESSAGE), grid && roomStatus !== 'LOBBY' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, displayState === 'MAXIMIZED' && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, renderParticipantGrid()), displayState === 'MINIMIZED' && /*#__PURE__*/_react.default.createElement("div", {
605
606
  style: {
@@ -613,7 +614,7 @@ const VCRoomWorkspace = props => {
613
614
  }, /*#__PURE__*/_react.default.createElement(_SideBarContent.default, {
614
615
  meetingChat: meetingChat,
615
616
  isHost: isHost,
616
- tab: sideBarTab,
617
+ tab: 'People',
617
618
  meetingId: meetingId,
618
619
  participants: props.participants,
619
620
  onHostAudioMute: props.onHostAudioMute,
@@ -182,7 +182,7 @@ class Calendar {
182
182
  return {
183
183
  id: event.id,
184
184
  title: event.title,
185
- key: event.extendedProps.key,
185
+ key: event.key ? event.key : event.extendedProps.key,
186
186
  locations: event.extendedProps.locations,
187
187
  description: event.extendedProps.description,
188
188
  status: event.extendedProps.status,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agilemotion/oui-react-js",
3
- "version": "1.4.8",
3
+ "version": "1.5.0",
4
4
  "babel": {
5
5
  "presets": [
6
6
  "@babel/preset-env",