@agilemotion/oui-react-js 1.5.6 → 1.5.8

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/BasicApp.js CHANGED
@@ -58,7 +58,9 @@ const BasicApp = props => {
58
58
  const navigate = (0, _reactRouterDom.useNavigate)();
59
59
 
60
60
  _react.default.useEffect(() => {
61
- navigate("/");
61
+ if (window.location.pathname !== '/reset-password' && window.location.pathname !== '/login') {
62
+ navigate("/");
63
+ }
62
64
  }, []);
63
65
 
64
66
  return /*#__PURE__*/_react.default.createElement(_MuiThemeProvider.default, {
@@ -98,6 +100,7 @@ const BasicApp = props => {
98
100
  logo: props.logo
99
101
  })
100
102
  }), /*#__PURE__*/_react.default.createElement(_reactRouterDom.Route, {
103
+ exact: true,
101
104
  path: "/reset-password",
102
105
  element: /*#__PURE__*/_react.default.createElement(_ResetPasswordBasic.default, {
103
106
  url: location + props.contextRoot + props.authUrl + "/password/confirmForgot",
@@ -111,6 +114,7 @@ const BasicApp = props => {
111
114
  logo: props.logo
112
115
  })
113
116
  }), /*#__PURE__*/_react.default.createElement(_reactRouterDom.Route, {
117
+ exact: true,
114
118
  path: "/change-password",
115
119
  element: /*#__PURE__*/_react.default.createElement(_ChangePasswordBasic.default, {
116
120
  url: location + props.contextRoot + props.authUrl + "/password/challenge",
@@ -45,6 +45,8 @@ var _Notifications = _interopRequireDefault(require("@material-ui/icons/Notifica
45
45
 
46
46
  var _Person = _interopRequireDefault(require("@material-ui/icons/Person"));
47
47
 
48
+ var _Refresh = _interopRequireDefault(require("@material-ui/icons/Refresh"));
49
+
48
50
  var _Folder = _interopRequireDefault(require("@material-ui/icons/Folder"));
49
51
 
50
52
  var _AttachFile = _interopRequireDefault(require("@material-ui/icons/AttachFile"));
@@ -71,6 +73,8 @@ var _CallEnd = _interopRequireDefault(require("@material-ui/icons/CallEnd"));
71
73
 
72
74
  var _Dock = _interopRequireDefault(require("@material-ui/icons/Dock"));
73
75
 
76
+ var _Settings = _interopRequireDefault(require("@material-ui/icons/Settings"));
77
+
74
78
  var _icons = require("@material-ui/icons");
75
79
 
76
80
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -99,6 +103,18 @@ class Icon extends _react.Component {
99
103
  color: this.props.color
100
104
  }
101
105
  });
106
+ } else if (this.props.id === 'REFRESH') {
107
+ return /*#__PURE__*/_react.default.createElement(_Refresh.default, {
108
+ style: {
109
+ color: this.props.color
110
+ }
111
+ });
112
+ } else if (this.props.id === 'SETTINGS') {
113
+ return /*#__PURE__*/_react.default.createElement(_Settings.default, {
114
+ style: {
115
+ color: this.props.color
116
+ }
117
+ });
102
118
  } else if (this.props.id === 'PAN_TOOL') {
103
119
  return /*#__PURE__*/_react.default.createElement(_icons.PanTool, null);
104
120
  } else if (this.props.id === 'PEOPLE') {
@@ -0,0 +1,18 @@
1
+ .iframe_container {
2
+ padding: 0;
3
+ height: 100%;
4
+ width: 100%;
5
+ }
6
+
7
+ .portlet-iframe {
8
+ overflow: scroll;
9
+ border: 0;
10
+ width: 100%;
11
+ height: 100%;
12
+ transform: scale(1);
13
+ -ms-transform-origin: 0 0;
14
+ -moz-transform-origin: 0 0;
15
+ -o-transform-origin: 0 0;
16
+ -webkit-transform-origin: 0 0;
17
+ transform-origin: 0 0;
18
+ }
@@ -11,6 +11,8 @@ var _Utils = _interopRequireDefault(require("../Utils"));
11
11
 
12
12
  var _Observable = _interopRequireDefault(require("../event/Observable"));
13
13
 
14
+ require("./Portlet.css");
15
+
14
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
17
 
16
18
  const Portlet = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.forwardRef((props, ref) => {
@@ -18,6 +20,8 @@ const Portlet = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.fo
18
20
 
19
21
  const [visible, setVisible] = _react.default.useState(true);
20
22
 
23
+ const urlTemp = _react.default.useRef(null);
24
+
21
25
  _react.default.useEffect(() => {
22
26
  props.handle.api = api();
23
27
  });
@@ -36,6 +40,13 @@ const Portlet = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.fo
36
40
  };
37
41
  }, []);
38
42
 
43
+ _react.default.useEffect(() => {
44
+ if (url === 'reload') {
45
+ setUrl(urlTemp.current);
46
+ urlTemp.current = null;
47
+ }
48
+ }, [url]);
49
+
39
50
  const api = () => {
40
51
  return {
41
52
  get id() {
@@ -52,6 +63,11 @@ const Portlet = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.fo
52
63
 
53
64
  refresh() {},
54
65
 
66
+ reload() {
67
+ urlTemp.current = url;
68
+ setUrl('reload');
69
+ },
70
+
55
71
  getChildren: () => {
56
72
  return [];
57
73
  },
@@ -65,12 +81,11 @@ const Portlet = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.fo
65
81
 
66
82
  return /*#__PURE__*/_react.default.createElement("div", {
67
83
  ref: ref,
84
+ className: 'iframe_container',
68
85
  style: {
69
- display: visible ? 'block' : 'none',
70
- width: '100%',
71
- height: '100%'
86
+ display: visible ? 'block' : 'none'
72
87
  }
73
- }, !url && /*#__PURE__*/_react.default.createElement("div", {
88
+ }, (!url || url === 'reload') && /*#__PURE__*/_react.default.createElement("div", {
74
89
  className: "centered-flex-box w-100 h-100",
75
90
  style: {
76
91
  fontSize: '20px'
@@ -78,12 +93,9 @@ const Portlet = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.fo
78
93
  }, "Loading..."), url && /*#__PURE__*/_react.default.createElement("iframe", {
79
94
  src: url,
80
95
  title: "eProcurement",
81
- style: {
82
- width: '100%',
83
- height: '99%',
84
- borderWidth: '0'
85
- },
86
- allow: "camera;microphone"
96
+ className: 'portlet-iframe',
97
+ allow: "camera;microphone",
98
+ id: props.config.id
87
99
  }));
88
100
  }));
89
101
 
@@ -127,6 +127,20 @@ class SocketManager {
127
127
  }
128
128
  });
129
129
 
130
+ _defineProperty(this, "endSession", meetingId => {
131
+ if (this.socket) {
132
+ this.emitEvent(_VCEventType.VCEventType.LEAVE_MEETING, {
133
+ userId: sessionStorage.getItem("username"),
134
+ meetingId: meetingId
135
+ }).then(() => {
136
+ this.emitEvent(_VCEventType.VCEventType.END_SESSION, {
137
+ userId: sessionStorage.getItem("username"),
138
+ meetingId: meetingId
139
+ }).catch(error => {});
140
+ }).catch(error => {});
141
+ }
142
+ });
143
+
130
144
  this.usersOnline = [];
131
145
  this.profile = null;
132
146
  }
@@ -39,6 +39,16 @@ var _ToolbarButton = _interopRequireDefault(require("./ToolbarButton"));
39
39
 
40
40
  var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
41
41
 
42
+ var _Grow = _interopRequireDefault(require("@material-ui/core/Grow"));
43
+
44
+ var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
45
+
46
+ var _ClickAwayListener = _interopRequireDefault(require("@material-ui/core/ClickAwayListener"));
47
+
48
+ var _MenuList = _interopRequireDefault(require("@material-ui/core/MenuList"));
49
+
50
+ var _Popper = _interopRequireDefault(require("@material-ui/core/Popper"));
51
+
42
52
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
53
 
44
54
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -52,7 +62,9 @@ const Toolbar = props => {
52
62
  const [isRecording, setIsRecording] = (0, _react.useState)(false);
53
63
  const [autoPermit, setAutoPermit] = (0, _react.useState)(false);
54
64
  const [anchorEl, setAnchorEl] = (0, _react.useState)(null);
65
+ const [leaveButtonAnchorEl, setLeaveButtonAnchorEl] = (0, _react.useState)(null);
55
66
  const openMoreActions = Boolean(anchorEl);
67
+ const leaveButtonOpen = Boolean(leaveButtonAnchorEl);
56
68
  const [screenShared, setScreenShared] = (0, _react.useState)(false);
57
69
  const [roomStatus, setRoomStatus] = (0, _react.useState)();
58
70
  const [raisedHandsNames, setRaisedHandsNames] = (0, _react.useState)([]);
@@ -117,6 +129,14 @@ const Toolbar = props => {
117
129
  setAnchorEl(null);
118
130
  };
119
131
 
132
+ const handleLeaveButtonClick = event => {
133
+ setLeaveButtonAnchorEl(event.currentTarget);
134
+ };
135
+
136
+ const handleLeaveButtonClose = () => {
137
+ setLeaveButtonAnchorEl(null);
138
+ };
139
+
120
140
  const muteVideo = () => {
121
141
  setVideoMuted(prevStatus => !prevStatus);
122
142
  };
@@ -167,6 +187,10 @@ const Toolbar = props => {
167
187
  eventHandler.endCall();
168
188
  };
169
189
 
190
+ const endSession = () => {
191
+ eventHandler.endSession();
192
+ };
193
+
170
194
  const showPeople = () => {
171
195
  eventHandler.showPeople();
172
196
  };
@@ -438,12 +462,44 @@ const Toolbar = props => {
438
462
  }
439
463
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
440
464
  id: 'MORE'
441
- })))), /*#__PURE__*/_react.default.createElement("div", {
465
+ })))), (isHost && participants.length === 0 || !isHost) && /*#__PURE__*/_react.default.createElement("div", {
442
466
  className: 'button-wrapper col no-margin no-padding hang-up'
443
467
  }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
444
- title: "Hang up"
468
+ title: "Leave"
445
469
  }, /*#__PURE__*/_react.default.createElement(_Button.default, {
446
470
  onClick: endCall,
471
+ style: {
472
+ backgroundColor: '#eb3f21',
473
+ color: 'white',
474
+ marginRight: '4px',
475
+ minWidth: '120px',
476
+ width: '120px',
477
+ height: '60px'
478
+ },
479
+ startIcon: /*#__PURE__*/_react.default.createElement(_Icon.default, {
480
+ id: 'CALL_END'
481
+ })
482
+ }, /*#__PURE__*/_react.default.createElement("span", {
483
+ style: {
484
+ marginRight: '8px',
485
+ fontSize: '12px'
486
+ }
487
+ }, "Leave")))), isHost && participants.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
488
+ className: 'button-wrapper col no-margin no-padding hang-up'
489
+ }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
490
+ title: "Leave"
491
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
492
+ variant: "contained",
493
+ color: "primary",
494
+ size: "large",
495
+ onClick: handleLeaveButtonClick,
496
+ startIcon: /*#__PURE__*/_react.default.createElement(_Icon.default, {
497
+ id: 'CALL_END'
498
+ }),
499
+ ref: leaveButtonAnchorEl,
500
+ "aria-controls": leaveButtonOpen ? 'toolbar-menu' : undefined,
501
+ "aria-haspopup": "true",
502
+ "aria-expanded": leaveButtonOpen ? 'true' : undefined,
447
503
  style: {
448
504
  backgroundColor: '#eb3f21',
449
505
  color: 'white',
@@ -457,9 +513,59 @@ const Toolbar = props => {
457
513
  marginRight: '8px',
458
514
  fontSize: '12px'
459
515
  }
460
- }, "Hang up"), /*#__PURE__*/_react.default.createElement(_Icon.default, {
461
- id: 'CALL_END'
462
- }))))))), /*#__PURE__*/_react.default.createElement(_core.Menu, {
516
+ }, "Leave"))))))), /*#__PURE__*/_react.default.createElement(_core.Menu, {
517
+ anchorEl: leaveButtonAnchorEl,
518
+ id: "toobar-menu",
519
+ open: leaveButtonOpen,
520
+ onClose: handleLeaveButtonClose,
521
+ onClick: handleLeaveButtonClose,
522
+ PaperProps: {
523
+ elevation: 0,
524
+ style: {
525
+ boxShadow: '0 8px 16px 0 rgba(0, 0, 0, 0.2)'
526
+ },
527
+ sx: {
528
+ overflow: 'visible',
529
+ filter: 'drop-shadow(0px 2px 8px rgba(0,0,0,0.32))',
530
+ mt: 1.5,
531
+ '& .MuiList-root': {},
532
+ '& .MuiAvatar-root': {
533
+ width: 32,
534
+ height: 32,
535
+ ml: -0.5,
536
+ mr: 1
537
+ },
538
+ '&:before': {
539
+ content: '""',
540
+ display: 'block',
541
+ position: 'absolute',
542
+ top: 0,
543
+ right: 14,
544
+ width: 10,
545
+ height: 10,
546
+ bgcolor: 'primary',
547
+ transform: 'translateY(-50%) rotate(45deg)',
548
+ zIndex: 0
549
+ }
550
+ }
551
+ },
552
+ transformOrigin: {
553
+ horizontal: 120,
554
+ vertical: -60
555
+ },
556
+ anchorOrigin: {
557
+ horizontal: 'right',
558
+ vertical: 'top'
559
+ }
560
+ }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
561
+ onClick: () => {
562
+ endCall();
563
+ }
564
+ }, "Leave"), /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
565
+ onClick: () => {
566
+ endSession();
567
+ }
568
+ }, "End session")), /*#__PURE__*/_react.default.createElement(_core.Menu, {
463
569
  anchorEl: anchorEl,
464
570
  id: "toobar-menu",
465
571
  open: openMoreActions,
@@ -116,7 +116,7 @@ const TrainingRoom = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defau
116
116
  break;
117
117
 
118
118
  case _VCEventType.VCEventType.AUDIO_VISUAL_SETTINGS_CHANGED:
119
- onAVSettingsChange(be.payload);
119
+ onAVSettingsChange(be === null || be === void 0 ? void 0 : be.payload);
120
120
  break;
121
121
 
122
122
  case _VCEventType.VCEventType.SYSTEM_EVENT:
@@ -130,6 +130,10 @@ const TrainingRoom = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defau
130
130
  onLowerHand(be.payload);
131
131
  break;
132
132
 
133
+ case _VCEventType.VCEventType.END_SESSION:
134
+ hangUp();
135
+ break;
136
+
133
137
  case _VCEventType.VCEventType.SHARING_STOPPED:
134
138
  setScreenShared(false);
135
139
  setStartScreenSharing(false);
@@ -165,14 +169,16 @@ const TrainingRoom = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defau
165
169
  };
166
170
 
167
171
  const onAVSettingsChange = payload => {
168
- let participant = participants.find(p => p.userId === payload.userId);
172
+ if (payload) {
173
+ let participant = participants.find(p => p.userId === payload.userId);
169
174
 
170
- if (participant) {
171
- participant.audioMuted = payload.audioMuted;
172
- participant.videoMuted = payload.videoMuted;
173
- }
175
+ if (participant) {
176
+ participant.audioMuted = payload.audioMuted;
177
+ participant.videoMuted = payload.videoMuted;
178
+ }
174
179
 
175
- _VCEventManager.default.fireEvent(_VCEventType.VCEventType.AUDIO_VISUAL_SETTINGS_CHANGED, payload);
180
+ _VCEventManager.default.fireEvent(_VCEventType.VCEventType.AUDIO_VISUAL_SETTINGS_CHANGED, payload);
181
+ }
176
182
  };
177
183
 
178
184
  function emitAVSettingsChange() {
@@ -301,7 +307,7 @@ const TrainingRoom = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defau
301
307
  setDisplayState(initialContext ? initialContext.windowDisplayState : 'MAXIMIZED');
302
308
  });
303
309
 
304
- _VCEventManager.default.addSubscriptions(eventHandler, _VCEventType.VCEventType.REQUEST_TO_JOIN_MEETING, _VCEventType.VCEventType.USER_JOINED, _VCEventType.VCEventType.USER_LEFT_MEETING, _VCEventType.VCEventType.SYSTEM_EVENT, _VCEventType.VCEventType.SOCKET_CONNECT, _VCEventType.VCEventType.SOCKET_DISCONNECT, _VCEventType.VCEventType.RAISE_HAND, _VCEventType.VCEventType.LOWER_HAND, _VCEventType.VCEventType.PEER_DISCONNECT, _VCEventType.VCEventType.CONSUMER_TRANSPORT_FAILED, _VCEventType.VCEventType.CREATE_TRANSPORT_FAILED, _VCEventType.VCEventType.SHARING_STOPPED);
310
+ _VCEventManager.default.addSubscriptions(eventHandler, _VCEventType.VCEventType.REQUEST_TO_JOIN_MEETING, _VCEventType.VCEventType.USER_JOINED, _VCEventType.VCEventType.USER_LEFT_MEETING, _VCEventType.VCEventType.SYSTEM_EVENT, _VCEventType.VCEventType.SOCKET_CONNECT, _VCEventType.VCEventType.SOCKET_DISCONNECT, _VCEventType.VCEventType.RAISE_HAND, _VCEventType.VCEventType.LOWER_HAND, _VCEventType.VCEventType.PEER_DISCONNECT, _VCEventType.VCEventType.CONSUMER_TRANSPORT_FAILED, _VCEventType.VCEventType.CREATE_TRANSPORT_FAILED, _VCEventType.VCEventType.SHARING_STOPPED, _VCEventType.VCEventType.END_SESSION, _VCEventType.VCEventType.AUDIO_VISUAL_SETTINGS_CHANGED);
305
311
 
306
312
  document.addEventListener('sideBarToggleEvent', handleSidebarToggle);
307
313
 
@@ -412,6 +418,21 @@ const TrainingRoom = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defau
412
418
  setSideBarTab('');
413
419
  };
414
420
 
421
+ const endSession = () => {
422
+ _ApplicationManager.default.openConfirmDialog("Are you sure you want to end the current session?", result => {
423
+ if (result === true) {
424
+ _SocketManager.default.endSession(props.calendarEvent.id);
425
+
426
+ _ApplicationManager.default.setHasActiveMeeting(false);
427
+
428
+ _ApplicationManager.default.removeLoadedGraph(false);
429
+
430
+ setSideBarOpen(false);
431
+ setSideBarTab('');
432
+ }
433
+ });
434
+ };
435
+
415
436
  const emitSystemEvent = (eventType, data, toParticipantIds = null) => {
416
437
  let participantIds = [];
417
438
 
@@ -490,6 +511,9 @@ const TrainingRoom = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defau
490
511
  endCall: () => {
491
512
  hangUp();
492
513
  },
514
+ endSession: () => {
515
+ endSession();
516
+ },
493
517
  showChat: () => {
494
518
  fetchChats();
495
519
  },
@@ -69,6 +69,8 @@ _defineProperty(VCEventType, "END_CALL", "END_CALL");
69
69
 
70
70
  _defineProperty(VCEventType, "LEAVE_MEETING", "LEAVE_MEETING");
71
71
 
72
+ _defineProperty(VCEventType, "END_SESSION", "END_SESSION");
73
+
72
74
  _defineProperty(VCEventType, "CALL_ENDED", "CALL_ENDED");
73
75
 
74
76
  _defineProperty(VCEventType, "ALL_USERS", "ALL_USERS");
@@ -420,29 +420,38 @@ const VCRoomParticipant = props => {
420
420
  tracks.current.setVideoTrack(track);
421
421
  }
422
422
 
423
- let producer = await producerTransport.produce(params);
424
- producerTransport.getStats().then(data => console.log(data));
425
- producers.set(type, producer);
423
+ let producer;
426
424
 
427
- if (type === 'video') {
428
- videoRef.current.srcObject = stream;
429
- videoStream.current = stream;
430
- setVideoRefresher(!videoRefresher);
431
- console.log(stream);
425
+ try {
426
+ producer = await producerTransport.produce(params);
427
+ } catch (e) {
428
+ console.log(e);
432
429
  }
433
430
 
434
- producer.on('transportclose', () => {
435
- stream.srcObject.getTracks().forEach(function (track) {
436
- track.stop();
431
+ if (producer) {
432
+ producerTransport.getStats().then(data => console.log(data));
433
+ producers.set(type, producer);
434
+
435
+ if (type === 'video') {
436
+ videoRef.current.srcObject = stream;
437
+ videoStream.current = stream;
438
+ setVideoRefresher(!videoRefresher);
439
+ console.log(stream);
440
+ }
441
+
442
+ producer.on('transportclose', () => {
443
+ stream.srcObject.getTracks().forEach(function (track) {
444
+ track.stop();
445
+ });
446
+ producers.delete(type);
437
447
  });
438
- producers.delete(type);
439
- });
440
- producer.on('close', () => {
441
- stream.srcObject.getTracks().forEach(function (track) {
442
- track.stop();
448
+ producer.on('close', () => {
449
+ stream.srcObject.getTracks().forEach(function (track) {
450
+ track.stop();
451
+ });
452
+ producers.delete(type);
443
453
  });
444
- producers.delete(type);
445
- });
454
+ }
446
455
  };
447
456
 
448
457
  const stopProducing = (type, callback) => {
@@ -674,22 +683,7 @@ const VCRoomParticipant = props => {
674
683
  id: 'MIC_OFF'
675
684
  }) : /*#__PURE__*/_react.default.createElement(_Icon.default, {
676
685
  id: 'MIC'
677
- })), props.data.inView && numberOfInViewParticipants > 1 && /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
678
- title: "Remove from view"
679
- }, /*#__PURE__*/_react.default.createElement(_IconButton.default, {
680
- onClick: e => {
681
- stopProducing('video');
682
- props.onRemoveFromView(props.data);
683
- },
684
- style: {
685
- marginRight: '4px',
686
- width: '16px',
687
- height: '16px',
688
- color: 'white'
689
- }
690
- }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
691
- id: 'CLOSE'
692
- }))), props.isHost && !videoMuted && /*#__PURE__*/_react.default.createElement(_IconButton.default, {
686
+ })), props.isHost && !videoMuted && /*#__PURE__*/_react.default.createElement(_IconButton.default, {
693
687
  onClick: e => {
694
688
  props.onHostVideoMute(props.data);
695
689
  },
@@ -732,11 +726,10 @@ const VCRoomParticipant = props => {
732
726
  "aria-haspopup": "true",
733
727
  "aria-expanded": openMoreActions ? 'true' : undefined,
734
728
  style: {
735
- color: '#198754',
736
729
  height: '8px'
737
730
  }
738
731
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
739
- id: 'MIC'
732
+ id: 'SETTINGS'
740
733
  }))))))), !props.isCurrentUser && /*#__PURE__*/_react.default.createElement("span", {
741
734
  style: {
742
735
  marginLeft: '4px'
@@ -420,7 +420,7 @@ const VCRoomWorkspace = props => {
420
420
 
421
421
  setupGrid(inViewParticipants);
422
422
  }
423
- }, [props.participants, props.currentUserFullName]);
423
+ }, [props.participants, props.currentUserFullName, props.displayState]);
424
424
 
425
425
  const setupGrid = () => {
426
426
  let inViewGrid = [];
@@ -57,7 +57,7 @@ class Calendar {
57
57
 
58
58
  if (schedule.endTime <= schedule.startTime) {
59
59
  let endTime = new Date(schedule.endTime);
60
- endTime.setHours(schedule.startTime.getHours() + 1);
60
+ endTime.setHours(this.getDateTime(schedule.startDate, schedule.startTime).getHours() + 1);
61
61
  return endTime;
62
62
  }
63
63
 
@@ -71,7 +71,7 @@ class Calendar {
71
71
 
72
72
  if (schedule.endTime <= schedule.startTime) {
73
73
  let startTime = new Date(schedule.startTime);
74
- startTime.setHours(schedule.endTime.getHours() - 1);
74
+ startTime.setHours(this.getDateTime(schedule.endDate, schedule.endTime).getHours() - 1);
75
75
  return startTime;
76
76
  }
77
77
 
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.Windows = void 0;
7
+
8
+ var _moment = _interopRequireDefault(require("moment/moment"));
9
+
10
+ var _Utils = _interopRequireDefault(require("../Utils"));
11
+
12
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
+
14
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+
16
+ class Windows {
17
+ constructor(resolver) {
18
+ _defineProperty(this, "zoomIn", windowId => {
19
+ let el = document.getElementById(windowId);
20
+ let scale = el.scale;
21
+
22
+ if (!scale) {
23
+ scale = 1;
24
+ }
25
+
26
+ if (scale < 1) {
27
+ scale = scale * 1.1;
28
+ let w = el.style.width ? el.style.width.replace('px', '') : el.getBoundingClientRect().width;
29
+ let h = el.style.height ? el.style.height.replace('px', '') : el.getBoundingClientRect().height;
30
+ el.style.width = w * 1.1 + "px";
31
+ el.style.height = h * 1.1 + "px";
32
+ el.style.transform = "scale(".concat(scale, ")");
33
+ }
34
+
35
+ el.scale = scale;
36
+ });
37
+
38
+ _defineProperty(this, "zoomOut", windowId => {
39
+ let el = document.getElementById(windowId);
40
+ let scale = el.scale;
41
+
42
+ if (!scale) {
43
+ scale = 1;
44
+ }
45
+
46
+ if (scale > 0) {
47
+ scale = scale * 0.9;
48
+ let w = el.style.width || el.style.width.includes("%") ? el.style.width.replace('px', '') : el.getBoundingClientRect().width;
49
+ let h = el.style.height || el.style.height.includes("%") ? el.style.height.replace('px', '') : el.getBoundingClientRect().height;
50
+ el.style.width = w * 0.9 + "px";
51
+ el.style.height = h * 0.9 + "px";
52
+ el.style.transform = "scale(".concat(scale, ")");
53
+ }
54
+
55
+ el.scale = scale;
56
+ });
57
+
58
+ this.resolver = resolver;
59
+ }
60
+
61
+ }
62
+
63
+ exports.Windows = Windows;
64
+ const instance = new Windows();
65
+ var _default = instance;
66
+ exports.default = _default;
@@ -46,6 +46,7 @@ var _reactRouterDom = require("react-router-dom");
46
46
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
47
47
 
48
48
  const ChangePassword = props => {
49
+ const navigate = (0, _reactRouterDom.useNavigate)();
49
50
  const location = (0, _reactRouterDom.useLocation)();
50
51
 
51
52
  const [username, setUsername] = _react.default.useState(null);
@@ -114,11 +115,11 @@ const ChangePassword = props => {
114
115
 
115
116
  setIsLoading(true);
116
117
  (0, _Security.changePassword)(props.url, username, password, sessionId, challengeParamenters, () => {
117
- _ApplicationManager.default.navigate('/');
118
+ navigate('/');
118
119
  }, errorMessage => {
119
120
  setIsLoading(false);
120
121
  setMessageTitle("Password Change Error!");
121
- setMessage(errorMessage);
122
+ setMessage(!errorMessage ? _Utils.default.SYSTEM_ERROR_MESSAGE : errorMessage);
122
123
  setAlertVariant('danger');
123
124
  });
124
125
  } else {
@@ -178,6 +179,10 @@ const ChangePassword = props => {
178
179
  },
179
180
  className: 'col'
180
181
  }, props.title)), !_Utils.default.isNull(message) ? /*#__PURE__*/_react.default.createElement(_Alert.default, {
182
+ style: {
183
+ marginTop: '16px',
184
+ marginBottom: '0'
185
+ },
181
186
  variant: alertVariant,
182
187
  show: !_Utils.default.isNull(message),
183
188
  onClose: () => setMessage(null),
@@ -35,9 +35,13 @@ var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
35
35
 
36
36
  var _Lock = _interopRequireDefault(require("@material-ui/icons/Lock"));
37
37
 
38
+ var _reactRouterDom = require("react-router-dom");
39
+
38
40
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
41
 
40
42
  const ResetPassword = props => {
43
+ const navigate = (0, _reactRouterDom.useNavigate)();
44
+
41
45
  const [username, setUsername] = _react.default.useState("");
42
46
 
43
47
  const [message, setMessage] = _react.default.useState(null);
@@ -68,7 +72,7 @@ const ResetPassword = props => {
68
72
  }, errorMessage => {
69
73
  setIsLoading(false);
70
74
  setMessageTitle("Password Reset Error!");
71
- setMessage(errorMessage);
75
+ setMessage(!errorMessage ? _Utils.default.SYSTEM_ERROR_MESSAGE : errorMessage);
72
76
  setAlertVariant('danger');
73
77
  });
74
78
  } else {
@@ -82,7 +86,7 @@ const ResetPassword = props => {
82
86
 
83
87
  _react.default.useEffect(() => {
84
88
  _ApplicationManager.default.clear();
85
- });
89
+ }, []);
86
90
 
87
91
  return /*#__PURE__*/_react.default.createElement("div", {
88
92
  style: {
@@ -123,6 +127,10 @@ const ResetPassword = props => {
123
127
  },
124
128
  className: 'col'
125
129
  }, props.title)), !_Utils.default.isNull(message) ? /*#__PURE__*/_react.default.createElement(_Alert.default, {
130
+ style: {
131
+ marginTop: '16px',
132
+ marginBottom: '0'
133
+ },
126
134
  variant: alertVariant,
127
135
  show: !_Utils.default.isNull(message),
128
136
  onClose: () => setMessage(null),
@@ -166,7 +174,7 @@ const ResetPassword = props => {
166
174
  style: _loginBasicStyle.default.buttonsDiv
167
175
  }, /*#__PURE__*/_react.default.createElement(_Button.default, {
168
176
  label: "Back to Login",
169
- href: "/login",
177
+ onClick: e => navigate("/login"),
170
178
  style: _loginBasicStyle.default.flatButton,
171
179
  startIcon: /*#__PURE__*/_react.default.createElement(_Lock.default, null)
172
180
  }, "Back to Login"))))), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Footer.default, {
@@ -43,9 +43,14 @@ var _Alert = _interopRequireDefault(require("react-bootstrap/Alert"));
43
43
 
44
44
  var _loginBasicStyle = _interopRequireDefault(require("../../assets/jss/views/loginBasicStyle"));
45
45
 
46
+ var _reactRouterDom = require("react-router-dom");
47
+
46
48
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
47
49
 
48
50
  const Login = props => {
51
+ const navigate = (0, _reactRouterDom.useNavigate)();
52
+ const location = (0, _reactRouterDom.useLocation)();
53
+
49
54
  const [errorMessage, setErrorMessage] = _react.default.useState(null);
50
55
 
51
56
  const [usernameError, setUsernameError] = _react.default.useState(false);
@@ -70,7 +75,19 @@ const Login = props => {
70
75
 
71
76
  _react.default.useEffect(() => {
72
77
  _ApplicationManager.default.clear();
73
- });
78
+
79
+ let username = new URLSearchParams(location.search).get("userName");
80
+
81
+ if (username) {
82
+ setUsername(username);
83
+ }
84
+
85
+ let code = new URLSearchParams(location.search).get("code");
86
+
87
+ if (code) {
88
+ setPassword(code);
89
+ }
90
+ }, []);
74
91
 
75
92
  return /*#__PURE__*/_react.default.createElement("div", {
76
93
  style: {
@@ -111,6 +128,10 @@ const Login = props => {
111
128
  },
112
129
  className: 'col'
113
130
  }, props.title)), !_Utils.default.isNull(errorMessage) ? /*#__PURE__*/_react.default.createElement(_Alert.default, {
131
+ style: {
132
+ marginTop: '16px',
133
+ marginBottom: '0'
134
+ },
114
135
  variant: "danger",
115
136
  show: !_Utils.default.isNull(errorMessage),
116
137
  onClose: () => setErrorMessage(null),
@@ -179,9 +200,9 @@ const Login = props => {
179
200
  (0, _Security.login)(props.url, username, password, (authenticated, message, response) => {
180
201
  if (authenticated) {
181
202
  if (!_Utils.default.isNull(response) && response.forcePasswordChange === true) {
182
- _ApplicationManager.default.navigate("/change-password?username=".concat(username, "&sessionId=").concat(response.sessionId, "&challengeParamenters=").concat(encodeURI(JSON.stringify(response.challangeParameters))));
203
+ navigate("/change-password?username=".concat(username, "&sessionId=").concat(response.sessionId, "&challengeParamenters=").concat(encodeURI(JSON.stringify(response.challangeParameters))));
183
204
  } else {
184
- _ApplicationManager.default.navigate('/');
205
+ navigate('/');
185
206
  }
186
207
  } else {
187
208
  setErrorMessage(message);
@@ -204,7 +225,7 @@ const Login = props => {
204
225
  }, /*#__PURE__*/_react.default.createElement(_Button.default, {
205
226
  disabled: isLoading,
206
227
  label: "Forgot Password?",
207
- href: "/forgot-password",
228
+ onClick: e => _ApplicationManager.default.navigate("/forgot-password"),
208
229
  style: _loginBasicStyle.default.flatButton,
209
230
  startIcon: /*#__PURE__*/_react.default.createElement(_Help.default, null)
210
231
  }, "Forgot Password?"))))), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Footer.default, {
@@ -43,6 +43,8 @@ var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton")
43
43
 
44
44
  var _reactRouterDom = require("react-router-dom");
45
45
 
46
+ var _Lock = _interopRequireDefault(require("@material-ui/icons/Lock"));
47
+
46
48
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
47
49
 
48
50
  const ResetPassword = props => {
@@ -77,7 +79,9 @@ const ResetPassword = props => {
77
79
  _react.default.useEffect(() => {
78
80
  let code = new URLSearchParams(location.search).get("code");
79
81
  setCode(code);
80
- });
82
+ let username = new URLSearchParams(location.search).get("userName");
83
+ setUsername(username);
84
+ }, []);
81
85
 
82
86
  const handleClickShowPassword = () => {
83
87
  setShowPassword(!showPassword);
@@ -115,7 +119,7 @@ const ResetPassword = props => {
115
119
  }, errorMessage => {
116
120
  setIsLoading(false);
117
121
  setMessageTitle("Password Reset Error!");
118
- setMessage(errorMessage);
122
+ setMessage(!errorMessage ? _Utils.default.SYSTEM_ERROR_MESSAGE : errorMessage);
119
123
  setAlertVariant('danger');
120
124
  });
121
125
  } else {
@@ -134,7 +138,7 @@ const ResetPassword = props => {
134
138
 
135
139
  _react.default.useEffect(() => {
136
140
  _ApplicationManager.default.clear();
137
- });
141
+ }, []);
138
142
 
139
143
  return /*#__PURE__*/_react.default.createElement("div", {
140
144
  style: {
@@ -175,6 +179,10 @@ const ResetPassword = props => {
175
179
  },
176
180
  className: 'col'
177
181
  }, props.title)), !_Utils.default.isNull(message) ? /*#__PURE__*/_react.default.createElement(_Alert.default, {
182
+ style: {
183
+ marginTop: '16px',
184
+ marginBottom: '0'
185
+ },
178
186
  variant: alertVariant,
179
187
  show: !_Utils.default.isNull(message),
180
188
  onClose: () => setMessage(null),
@@ -186,6 +194,7 @@ const ResetPassword = props => {
186
194
  }, /*#__PURE__*/_react.default.createElement("form", null, /*#__PURE__*/_react.default.createElement(_TextField.default, {
187
195
  id: "username",
188
196
  required: true,
197
+ disabled: true,
189
198
  error: usernameError,
190
199
  label: "Username",
191
200
  value: username || '',
@@ -271,7 +280,14 @@ const ResetPassword = props => {
271
280
  style: {
272
281
  marginRight: "8px"
273
282
  }
274
- }), isLoading && /*#__PURE__*/_react.default.createElement("span", null, "LOADING..."), !isLoading && /*#__PURE__*/_react.default.createElement("span", null, "RESET PASSWORD")))))))), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Footer.default, {
283
+ }), isLoading && /*#__PURE__*/_react.default.createElement("span", null, "LOADING..."), !isLoading && /*#__PURE__*/_react.default.createElement("span", null, "RESET PASSWORD"))))), /*#__PURE__*/_react.default.createElement("div", {
284
+ style: _loginBasicStyle.default.buttonsDiv
285
+ }, /*#__PURE__*/_react.default.createElement(_Button.default, {
286
+ label: "Go to Login",
287
+ href: "/login",
288
+ style: _loginBasicStyle.default.flatButton,
289
+ startIcon: /*#__PURE__*/_react.default.createElement(_Lock.default, null)
290
+ }, "Go to Login"))))), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Footer.default, {
275
291
  white: true,
276
292
  logo: props.footerLogo,
277
293
  text: props.footerText,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agilemotion/oui-react-js",
3
- "version": "1.5.6",
3
+ "version": "1.5.8",
4
4
  "babel": {
5
5
  "presets": [
6
6
  "@babel/preset-env",