@agilemotion/oui-react-js 1.5.1 → 1.5.3

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.
@@ -114,7 +114,7 @@ class ApplicationManager {
114
114
  } else if (!view.popUp) {
115
115
  let legendPath = '';
116
116
 
117
- for (let i = 0; i < this.graphs[0].initialNavHistoryDepth; i++) {
117
+ for (let i = 0; i < this.graphs[0].initialNavHistoryDepth && i < this.navHistory.length; i++) {
118
118
  legendPath += "".concat(this.navHistory[i].title);
119
119
 
120
120
  if (i < this.graphs[0].initialNavHistoryDepth - 1) {
@@ -123,7 +123,7 @@ class ApplicationManager {
123
123
  }
124
124
 
125
125
  legendPath = legendPath.length > 0 ? legendPath + legendIconArrow : '';
126
- this.props.appBarTitle = "".concat(legendPath, "<span>").concat(this.graphs[0].title, "</span>");
126
+ this.props.appBarTitle = this.graphs[0].initialNavHistoryDepth === 0 ? titleValue : "".concat(legendPath, "<span>").concat(this.graphs[0].title, "</span>");
127
127
  this.graphs[0].setCurrentNodeTitle(titleValue);
128
128
  }
129
129
 
@@ -267,8 +267,9 @@ class ApplicationManager {
267
267
  if (!view.window && view.parent && currentGraph && currentGraph.config.isWindow) {
268
268
  currentGraph.anchorView = view;
269
269
  currentGraph.anchorHistoryElement = this.navHistory[this.navHistory.length - 1];
270
+ currentGraph.initialNavHistoryDepth = 0;
270
271
  this.updateContext({
271
- windowDisplayState: 'MINIMIZED'
272
+ windowDisplayState: 'PINNED'
272
273
  });
273
274
  }
274
275
  });
@@ -338,6 +339,12 @@ class ApplicationManager {
338
339
 
339
340
  applicationContext.windowView = null;
340
341
  }
342
+
343
+ if (view.window) {
344
+ this.updateContext({
345
+ windowDisplayState: 'CLOSED'
346
+ });
347
+ }
341
348
  }
342
349
  });
343
350
 
@@ -622,6 +629,10 @@ class ApplicationManager {
622
629
 
623
630
  removeLoadedGraph(routeToAnchor) {
624
631
  instance.removeLoadedGraph(routeToAnchor);
632
+ },
633
+
634
+ hasActiveMeeting() {
635
+ return instance.hasActiveMeeting();
625
636
  }
626
637
 
627
638
  };
@@ -791,6 +802,12 @@ class ApplicationManager {
791
802
  if (!_Utils.default.isNull(graph.anchorHistoryElement)) {
792
803
  this.updateAppBarTitle(graph.anchorView.config.id, graph.anchorView.config.title);
793
804
  }
805
+
806
+ if (graph.config.isWindow) {
807
+ this.updateContext({
808
+ windowDisplayState: 'CLOSED'
809
+ });
810
+ }
794
811
  }
795
812
  }
796
813
 
package/dist/BasicApp.js CHANGED
@@ -89,7 +89,12 @@ const BasicApp = props => {
89
89
  element: /*#__PURE__*/_react.default.createElement(_ForgotPasswordBasic.default, {
90
90
  url: location + props.contextRoot + props.authUrl + "/password/forgot",
91
91
  background: 'rgba(0, 0, 0, 0.65)',
92
- title: 'Business Agility',
92
+ textColor: props.loginTextColor,
93
+ footerLogo: props.footerLogo,
94
+ footerText: props.footerText,
95
+ footerWidth: props.footerWidth,
96
+ footerSplitterColor: props.footerSplitterColor,
97
+ title: props.loginTitle,
93
98
  logo: props.logo
94
99
  })
95
100
  }), /*#__PURE__*/_react.default.createElement(_reactRouterDom.Route, {
@@ -98,7 +103,11 @@ const BasicApp = props => {
98
103
  url: location + props.contextRoot + props.authUrl + "/password/confirmForgot",
99
104
  background: 'rgba(0, 0, 0, 0.65)',
100
105
  textColor: props.loginTextColor,
101
- title: 'Business Agility',
106
+ footerLogo: props.footerLogo,
107
+ footerText: props.footerText,
108
+ footerWidth: props.footerWidth,
109
+ footerSplitterColor: props.footerSplitterColor,
110
+ title: props.loginTitle,
102
111
  logo: props.logo
103
112
  })
104
113
  }), /*#__PURE__*/_react.default.createElement(_reactRouterDom.Route, {
@@ -107,7 +116,11 @@ const BasicApp = props => {
107
116
  url: location + props.contextRoot + props.authUrl + "/password/challenge",
108
117
  background: 'rgba(0, 0, 0, 0.65)',
109
118
  textColor: props.loginTextColor,
110
- title: 'Business Agility',
119
+ footerLogo: props.footerLogo,
120
+ footerText: props.footerText,
121
+ footerWidth: props.footerWidth,
122
+ footerSplitterColor: props.footerSplitterColor,
123
+ title: props.loginTitle,
111
124
  logo: props.logo
112
125
  })
113
126
  }))));
@@ -18,7 +18,7 @@ const styles = {
18
18
  loginContainer: {
19
19
  minWidth: 320,
20
20
  maxWidth: 400,
21
- padding: '16px',
21
+ padding: '16px 0',
22
22
  height: 'auto'
23
23
  },
24
24
  paper: {
@@ -48,10 +48,12 @@ const styles = {
48
48
  }
49
49
  },
50
50
  loginBtn: {
51
- float: 'right'
51
+ float: 'right',
52
+ background: '#FCB614',
53
+ color: '#000000'
52
54
  },
53
55
  btn: {
54
- background: '#4f81e9',
56
+ background: '#FCB614',
55
57
  color: _colors.white,
56
58
  padding: 7,
57
59
  borderRadius: 2,
@@ -59,7 +61,7 @@ const styles = {
59
61
  fontSize: 13
60
62
  },
61
63
  btnFacebook: {
62
- background: '#4f81e9'
64
+ background: '#FCB614'
63
65
  },
64
66
  btnGoogle: {
65
67
  background: '#e14441'
@@ -111,7 +111,9 @@ const Calendar = props => {
111
111
  const dialogRef = (0, _react.useRef)(null);
112
112
  const [dialogTop, setDialogTop] = (0, _react.useState)(null);
113
113
  const [dialogLeft, setDialogLeft] = (0, _react.useState)(null);
114
- const [refresher, setRefresher] = (0, _react.useState)(null);
114
+ const [refresher, setRefresher] = (0, _react.useState)(0);
115
+ const contextChangeHandler = {};
116
+ let counter = 1;
115
117
  const StyledDialog = (0, _withStyles.default)({
116
118
  root: {
117
119
  pointerEvents: "none"
@@ -146,23 +148,31 @@ const Calendar = props => {
146
148
  }).catch(ignored => {});
147
149
  };
148
150
 
151
+ const handler = () => {
152
+ return {
153
+ get id() {
154
+ return 'calendar';
155
+ },
156
+
157
+ onContextChange: (context, newValues) => {
158
+ if (Object.keys(newValues).find(key => key === 'windowDisplayState')) {
159
+ setRefresher(counter > 20 ? 0 : counter++);
160
+ }
161
+ }
162
+ };
163
+ };
164
+
149
165
  (0, _react.useEffect)(() => {
166
+ contextChangeHandler.api = handler();
150
167
  loadEvents();
151
168
 
152
169
  _ApplicationManager.default.addApplicationContextSubscription({
153
- handler: {
154
- get id() {
155
- return 'window';
156
- },
157
-
158
- onContextChange: (context, newValues) => {
159
- if (Object.keys(newValues).find(key => key === 'windowDisplayState')) {
160
- setRefresher(!refresher);
161
- }
162
- }
163
- }
170
+ handler: contextChangeHandler
164
171
  });
165
172
  }, []);
173
+ (0, _react.useEffect)(() => {
174
+ contextChangeHandler.api = handler();
175
+ });
166
176
 
167
177
  const calenderScrollListener = () => {
168
178
  setOpen(false);
@@ -411,7 +421,7 @@ const Calendar = props => {
411
421
  style: {
412
422
  marginTop: '16px'
413
423
  }
414
- }, /*#__PURE__*/_react.default.createElement(_Button.default, {
424
+ }, !_ApplicationManager.default.hasActiveMeeting() && /*#__PURE__*/_react.default.createElement(_Button.default, {
415
425
  variant: 'contained',
416
426
  size: "large",
417
427
  color: "primary",
@@ -438,7 +448,10 @@ const Calendar = props => {
438
448
  height: '100%',
439
449
  maxHeight: '100%'
440
450
  }, props.config)
441
- }, /*#__PURE__*/_react.default.createElement(_react2.default, calendarOptions), ' ', /*#__PURE__*/_react.default.createElement(StyledDialog, {
451
+ }, /*#__PURE__*/_react.default.createElement("div", {
452
+ key: refresher,
453
+ className: 'w-100 h-100'
454
+ }, /*#__PURE__*/_react.default.createElement(_react2.default, calendarOptions), ' '), /*#__PURE__*/_react.default.createElement(StyledDialog, {
442
455
  open: open,
443
456
  ref: dialogRef,
444
457
  onClose: () => {
@@ -56,7 +56,8 @@ class SocketManager {
56
56
  });
57
57
 
58
58
  _defineProperty(this, "init", async () => {
59
- let url = process.env.REACT_APP_SOCKET_SERVER_URL || 'https://svn.agilemotion.co.za';
59
+ let url = 'http://localhost:8000'; //process.env.REACT_APP_SOCKET_SERVER_URL || 'https://svn.agilemotion.co.za';
60
+
60
61
  console.log("======= SOCKET CONNECTING TO ========= [" + url + "]");
61
62
 
62
63
  let socket = _socket.default.connect(url);
@@ -70,9 +70,10 @@ const Footer = props => {
70
70
  className: classes.inlineBlock
71
71
  }))), /*#__PURE__*/_react.default.createElement("div", {
72
72
  className: classes.right + " row"
73
- }, "\xA9 ", 1900 + new Date().getYear(), " ", " ", /*#__PURE__*/_react.default.createElement("div", {
73
+ }, /*#__PURE__*/_react.default.createElement("div", {
74
74
  style: {
75
- paddingLeft: 10
75
+ paddingLeft: "8px",
76
+ marginRight: '20px'
76
77
  }
77
78
  }, /*#__PURE__*/_react.default.createElement(_CardAvatar.default, {
78
79
  plain: true
@@ -85,7 +86,7 @@ const Footer = props => {
85
86
  alt: "..."
86
87
  }) : null), /*#__PURE__*/_react.default.createElement("div", {
87
88
  className: "col-*-*"
88
- }, props.text ? /*#__PURE__*/_react.default.createElement("div", null, "\xA0\xA0", props.text) : null))))))));
89
+ }, props.text ? /*#__PURE__*/_react.default.createElement("div", null, "\xA0\xA0", props.text) : null)))), "\xA9 ", 1900 + new Date().getYear(), " ", " "))));
89
90
  };
90
91
 
91
92
  Footer.propTypes = {
@@ -16,3 +16,9 @@
16
16
  text-align: left;
17
17
  padding-left: 0 !important;
18
18
  }
19
+
20
+ @media (max-width: 991px) {
21
+ .window-paper-max {
22
+ width: calc(100% - 16px) !important;
23
+ }
24
+ }
@@ -122,7 +122,7 @@ const Window = props => {
122
122
  maximizeView(null, false);
123
123
  } else if (newValues.windowDisplayState === 'MINIMIZED') {
124
124
  minimizeView(null, false);
125
- } else {
125
+ } else if (newValues.windowDisplayState === 'PINNED') {
126
126
  pinView(null, false);
127
127
  }
128
128
  }
@@ -195,6 +195,8 @@ const Window = props => {
195
195
  windowDisplayState: 'PINNED'
196
196
  });
197
197
  }
198
+
199
+ props.onPinned();
198
200
  }
199
201
  }
200
202
  };
@@ -279,8 +281,9 @@ const Window = props => {
279
281
  PaperComponent: PaperComponent,
280
282
  PaperProps: {
281
283
  id: 'meetingDialogPaper',
284
+ className: displayState === 'MINIMIZED' ? 'window-paper-min' : displayState === 'MAXIMIZED' ? 'window-paper-max' : 'window-paper-pinned',
282
285
  disabled: displayState === 'MAXIMIZED',
283
- style: displayState === 'MINIMIZED' ? getMinimizedStyle() : displayState === 'MAXIMIZED' ? getMaximizedStyle() : getMinimizedStyle()
286
+ style: displayState === 'MINIMIZED' ? getMinimizedStyle() : displayState === 'MAXIMIZED' ? getMaximizedStyle() : getPinnedStyle()
284
287
  }
285
288
  }, /*#__PURE__*/_react.default.createElement("div", {
286
289
  id: 'window-content',
@@ -70,6 +70,11 @@ const WindowViewContainer = props => {
70
70
  minimizable: false,
71
71
  open: true,
72
72
  displayState: 'MAXIMIZED',
73
+ onPinned: () => {
74
+ if (!pinned) {
75
+ setPinned(true);
76
+ }
77
+ },
73
78
  onPin: () => {
74
79
  _ApplicationManager.default.updateContext({
75
80
  windowDisplayState: pinned ? 'MAXIMIZED' : 'PINNED'
@@ -77,8 +82,7 @@ const WindowViewContainer = props => {
77
82
 
78
83
  setPinned(!pinned);
79
84
  },
80
- onClose: () => {//setPinned(false)
81
- }
85
+ onClose: () => {}
82
86
  }, /*#__PURE__*/_react.default.createElement(_View.View, {
83
87
  config: view.config,
84
88
  parameters: view.parameters,
@@ -18,8 +18,6 @@
18
18
  .digit {
19
19
  font-size: 20px;
20
20
  border-radius: 4px;
21
- border: 1px solid #d1d1d1;
22
- background-color: #f1f1f1;
23
21
  margin-right: 2px !important;
24
22
  margin-left: 0 !important;
25
23
  color: #000000;
@@ -1,3 +1,6 @@
1
+ .vc-toolbar {
2
+ height: 80px !important;
3
+ }
1
4
 
2
5
  .vc-toolbar .button-container {
3
6
  min-width: 200px;
@@ -6,11 +9,15 @@
6
9
  white-space: nowrap;
7
10
  }
8
11
 
9
- .window-pinned .vc-toolbar .timer {
10
- width: 100% !important;
12
+ .vc-toolbar .timer {
13
+ width: 48px !important;
11
14
  text-align: center !important;
12
15
  }
13
16
 
17
+ .window-pinned .vc-toolbar .spacer {
18
+ width: 8px !important;
19
+ }
20
+
14
21
  .vc-toolbar button,
15
22
  .vc-toolbar .more-button-wrapper,
16
23
  .vc-toolbar .button-wrapper {
@@ -64,6 +71,16 @@
64
71
  background-color: #e9e9e9;
65
72
  font-size: 14px;
66
73
  position: absolute;
67
- margin-left: -56px;
74
+ margin-left: 60px;
68
75
  margin-bottom: 16px;
69
76
  }
77
+
78
+ @media only screen and (max-width: 600px) {
79
+ .timer {
80
+ display: none;
81
+ }
82
+
83
+ .spacer {
84
+ display: none;
85
+ }
86
+ }
@@ -227,21 +227,19 @@ const Toolbar = props => {
227
227
  }, roomStatus === 'SESSION_ENDED' ? /*#__PURE__*/_react.default.createElement("div", {
228
228
  className: 'row centered-flex-box button-wrapper no-margin no-padding'
229
229
  }, /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, null)) : /*#__PURE__*/_react.default.createElement("div", {
230
- className: 'row',
230
+ className: 'row flex-nowrap',
231
231
  style: {
232
232
  justifyContent: 'right',
233
233
  margin: '8px',
234
234
  width: '100%'
235
235
  }
236
236
  }, /*#__PURE__*/_react.default.createElement("div", {
237
- style: {
238
- width: '120px'
239
- },
240
237
  className: 'timer'
241
238
  }, /*#__PURE__*/_react.default.createElement(_Timer.default, null)), /*#__PURE__*/_react.default.createElement("div", {
242
239
  style: {
243
240
  width: '60px'
244
- }
241
+ },
242
+ className: 'spacer'
245
243
  }, "\xA0"), /*#__PURE__*/_react.default.createElement("div", {
246
244
  style: {
247
245
  display: 'flex',
@@ -251,7 +249,7 @@ const Toolbar = props => {
251
249
  className: 'col button-container'
252
250
  }, /*#__PURE__*/_react.default.createElement("div", {
253
251
  className: 'no-margin no-padding'
254
- }, isHost && roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && /*#__PURE__*/_react.default.createElement("div", {
252
+ }, isHost && roomStatus === 'SESSION' && /*#__PURE__*/_react.default.createElement("div", {
255
253
  className: 'button-wrapper col no-margin no-padding'
256
254
  }, /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
257
255
  onVisibilityChange: visible => handleVisibilityChange('record', visible)
@@ -329,7 +327,7 @@ const Toolbar = props => {
329
327
  id: 'MIC'
330
328
  })), /*#__PURE__*/_react.default.createElement("div", {
331
329
  className: 'text'
332
- }, "Mic")))))), ' ', roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && !whiteBoardShown && /*#__PURE__*/_react.default.createElement("div", {
330
+ }, "Mic")))))), ' ', roomStatus === 'SESSION' && !whiteBoardShown && /*#__PURE__*/_react.default.createElement("div", {
333
331
  className: 'button-wrapper col no-margin no-padding'
334
332
  }, /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
335
333
  onVisibilityChange: visible => handleVisibilityChange('shareScreen', visible)
@@ -368,10 +366,12 @@ const Toolbar = props => {
368
366
  style: {
369
367
  marginRight: '8px'
370
368
  }
371
- }, "Share screen")))))))), roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
369
+ }, "Share screen")))))))), roomStatus === 'SESSION' && /*#__PURE__*/_react.default.createElement("div", {
370
+ className: 'button-wrapper'
371
+ }, /*#__PURE__*/_react.default.createElement("div", {
372
372
  className: 'marker'
373
373
  }, participants.length), /*#__PURE__*/_react.default.createElement("div", {
374
- className: 'button-wrapper col no-margin no-padding'
374
+ className: 'button-wrapper no-margin no-padding'
375
375
  }, /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
376
376
  onVisibilityChange: visible => handleVisibilityChange('people', visible)
377
377
  }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
@@ -393,13 +393,11 @@ const Toolbar = props => {
393
393
  })), /*#__PURE__*/_react.default.createElement("div", {
394
394
  className: 'text'
395
395
  }, "People"))))))), roomStatus === 'SESSION' && /*#__PURE__*/_react.default.createElement("div", {
396
- style: {
397
- display: 'inline-block'
398
- }
396
+ className: 'button-wrapper'
399
397
  }, raisedHands.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
400
398
  className: 'marker'
401
399
  }, raisedHands.length), /*#__PURE__*/_react.default.createElement("div", {
402
- className: 'button-wrapper col no-margin no-padding'
400
+ className: 'button-wrapper no-margin no-padding'
403
401
  }, /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, {
404
402
  onVisibilityChange: visible => handleVisibilityChange('raiseHand', visible)
405
403
  }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
@@ -505,10 +503,9 @@ const Toolbar = props => {
505
503
  horizontal: 'right',
506
504
  vertical: 'top'
507
505
  }
508
- }, !buttonVisibility.record && isHost && roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && /*#__PURE__*/_react.default.createElement("div", {
506
+ }, !buttonVisibility.record && isHost && roomStatus === 'SESSION' && /*#__PURE__*/_react.default.createElement("div", {
509
507
  className: 'button-wrapper no-margin no-padding'
510
508
  }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
511
- disabled: !isHost,
512
509
  onClick: () => {
513
510
  toggleRecorder();
514
511
  }
@@ -517,7 +514,6 @@ const Toolbar = props => {
517
514
  })), "Record")), !buttonVisibility.video && (roomStatus === 'SESSION' || roomStatus === 'LOBBY') && !videoDisabled && /*#__PURE__*/_react.default.createElement("div", {
518
515
  className: 'button-wrapper no-margin no-padding'
519
516
  }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
520
- disabled: !isHost,
521
517
  onClick: () => {
522
518
  muteVideo();
523
519
  }
@@ -528,7 +524,6 @@ const Toolbar = props => {
528
524
  })), "Camera")), !buttonVisibility.audio && (roomStatus === 'SESSION' || roomStatus === 'LOBBY') && !videoDisabled && /*#__PURE__*/_react.default.createElement("div", {
529
525
  className: 'button-wrapper no-margin no-padding'
530
526
  }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
531
- disabled: !isHost,
532
527
  onClick: () => {
533
528
  muteAudio();
534
529
  }
@@ -536,10 +531,9 @@ const Toolbar = props => {
536
531
  id: 'MIC_OFF'
537
532
  }) : /*#__PURE__*/_react.default.createElement(_Icon.default, {
538
533
  id: 'MIC'
539
- })), "Mic")), !buttonVisibility.shareScreen && roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && !whiteBoardShown && /*#__PURE__*/_react.default.createElement("div", {
534
+ })), "Mic")), !buttonVisibility.shareScreen && roomStatus === 'SESSION' && !whiteBoardShown && /*#__PURE__*/_react.default.createElement("div", {
540
535
  className: 'button-wrapper no-margin no-padding'
541
536
  }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
542
- disabled: !isHost,
543
537
  onClick: () => {
544
538
  if (screenShared) {
545
539
  stopShareScreen();
@@ -559,10 +553,9 @@ const Toolbar = props => {
559
553
  style: {
560
554
  marginRight: '8px'
561
555
  }
562
- }, "Share screen")))), !buttonVisibility.people && roomStatus === 'SESSION' && displayState === 'MAXIMIZED' && /*#__PURE__*/_react.default.createElement("div", {
556
+ }, "Share screen")))), !buttonVisibility.people && roomStatus === 'SESSION' && /*#__PURE__*/_react.default.createElement("div", {
563
557
  className: 'button-wrapper no-margin no-padding'
564
558
  }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
565
- disabled: !isHost,
566
559
  onClick: () => {
567
560
  showPeople();
568
561
  }
@@ -571,7 +564,6 @@ const Toolbar = props => {
571
564
  })), /*#__PURE__*/_react.default.createElement("div", null, participants.length, "\xA0People"))), !buttonVisibility.raiseHand && roomStatus === 'SESSION' && /*#__PURE__*/_react.default.createElement("div", {
572
565
  className: 'button-wrapper no-margin no-padding'
573
566
  }, /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
574
- disabled: !isHost,
575
567
  onClick: () => {
576
568
  if (handRaised) {
577
569
  lowerHand();
@@ -146,7 +146,7 @@ const TrainingRoom = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defau
146
146
 
147
147
  const onLowerHand = payload => {
148
148
  if (raisedHands.length > 0) {
149
- let index = raisedHands.findIndex(p => p.userId === payload.userId);
149
+ let index = raisedHands.findIndex(p => p === payload.userId);
150
150
 
151
151
  if (index > -1) {
152
152
  raisedHands.splice(index, 1);
@@ -231,16 +231,16 @@ const TrainingRoom = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defau
231
231
  });
232
232
  };
233
233
 
234
- const removeUser = user => {
235
- if (props.calendarEvent.id === user.meetingId) {
236
- const userId = user.userId;
234
+ const removeUser = payload => {
235
+ if (props.calendarEvent.id === payload.meetingId) {
236
+ const userId = payload.userId;
237
237
  const find = participants.find(p => p.userId === userId);
238
238
 
239
239
  if (find) {
240
240
  const newParticipants = participants.filter(p => p.userId !== userId);
241
+ setParticipants(newParticipants);
241
242
 
242
243
  if (newParticipants.length === 0) {
243
- setParticipants(newParticipants);
244
244
  setAllUserParticipantsLeft(true);
245
245
  setRoomStatus(Status.LOBBY);
246
246
  }
@@ -330,7 +330,6 @@ const TrainingRoom = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defau
330
330
  if (props.calendarEvent.host.username === sessionStorage.getItem('username')) {
331
331
  userFullName = props.calendarEvent.host.name;
332
332
  } else {
333
- console.log("\n\n\n\nATTENDEEES : ", sessionStorage.getItem('username'));
334
333
  userFullName = props.calendarEvent.attendees.find(a => a.username === sessionStorage.getItem('username')).name;
335
334
  }
336
335
 
@@ -466,7 +465,7 @@ const TrainingRoom = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defau
466
465
  borderRadius: '4px'
467
466
  }
468
467
  }, /*#__PURE__*/_react.default.createElement("div", {
469
- className: 'row no-margin no-padding w-100 h-100'
468
+ className: 'row flex-nowrap no-margin no-padding w-100 h-100'
470
469
  }, /*#__PURE__*/_react.default.createElement("div", {
471
470
  className: 'col no-margin no-padding',
472
471
  style: {
@@ -477,6 +476,7 @@ const TrainingRoom = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defau
477
476
  }, /*#__PURE__*/_react.default.createElement("div", {
478
477
  style: {
479
478
  width: '100%',
479
+ height: '80px',
480
480
  borderBottom: '1px solid #e2e2e2'
481
481
  }
482
482
  }, /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
@@ -242,21 +242,7 @@ const VCParticipantListItem = props => {
242
242
  }), videoMuted && /*#__PURE__*/_react.default.createElement(_Icon.default, {
243
243
  id: 'CAMERA_OFF',
244
244
  color: '#eb3f21'
245
- })), sessionStorage.getItem('username') !== participant.userId && /*#__PURE__*/_react.default.createElement(_Tooltip.default, {
246
- title: "More Actions"
247
- }, /*#__PURE__*/_react.default.createElement(_core.IconButton, {
248
- onClick: handleClick,
249
- size: "small",
250
- sx: {
251
- ml: 2
252
- },
253
- "aria-controls": openMoreActions ? 'account-menu' : undefined,
254
- "aria-haspopup": "true",
255
- "aria-expanded": openMoreActions ? 'true' : undefined
256
- }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
257
- id: 'MORE',
258
- color: '#404239'
259
- })))), /*#__PURE__*/_react.default.createElement(_core.Menu, {
245
+ }))), /*#__PURE__*/_react.default.createElement(_core.Menu, {
260
246
  anchorEl: anchorEl,
261
247
  id: "account-menu",
262
248
  open: openMoreActions,
@@ -4,8 +4,8 @@
4
4
  text-align: center;
5
5
  width: 100%;
6
6
  height: 100%;
7
- min-width: 120px;
8
- min-height: 120px;
7
+ max-width: 320px;
8
+ min-width: 320px;
9
9
  color: rgb(40, 40, 43);
10
10
  background-color: #f9f9f9;
11
11
  }
@@ -651,8 +651,8 @@ const VCRoomParticipant = props => {
651
651
  className: props.sizing === 'sm' ? 'name-label-sm' : 'name-label',
652
652
  style: {
653
653
  position: 'absolute',
654
- bottom: '0',
655
- padding: props.isCurrentUser ? '4px 16px' : props.sizing !== 'sm' ? '16px' : '4px'
654
+ bottom: props.isCurrentUser ? '12px' : '0',
655
+ padding: props.isCurrentUser ? '4px 16px' : props.sizing !== 'sm' ? '4px' : '4px'
656
656
  }
657
657
  }, !props.isCurrentUser && getParticipantName(), !props.isCurrentUser && /*#__PURE__*/_react.default.createElement("span", {
658
658
  style: {
@@ -502,12 +502,10 @@ const VCRoomWorkspace = props => {
502
502
  }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, row.map((participant, index) => {
503
503
  return /*#__PURE__*/_react.default.createElement(_Grid.default, {
504
504
  item: true,
505
- xs: 4,
506
505
  key: index + '-' + participant.userId,
507
506
  className: 'meetingParticipantContainer',
508
507
  style: {
509
508
  borderRadius: '4px',
510
- width: 100 / row.length + '%',
511
509
  height: '100%',
512
510
  flexBasis: null,
513
511
  maxWidth: null
@@ -576,8 +574,7 @@ const VCRoomWorkspace = props => {
576
574
  return /*#__PURE__*/_react.default.createElement("div", {
577
575
  style: {
578
576
  width: '100%',
579
- height: 100 / grid.length + '%',
580
- maxHeight: '50%'
577
+ height: '280px'
581
578
  }
582
579
  }, /*#__PURE__*/_react.default.createElement(_react.Fragment, {
583
580
  key: index
@@ -15,6 +15,8 @@ var _reactPlayer = _interopRequireDefault(require("react-player"));
15
15
 
16
16
  var _ApplicationManager = _interopRequireDefault(require("../../ApplicationManager"));
17
17
 
18
+ var _Observable = _interopRequireDefault(require("../../event/Observable"));
19
+
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
21
 
20
22
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -28,10 +30,30 @@ const VideoPlayer = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defaul
28
30
  const [documentId, setDocumentId] = (0, _react.useState)(false);
29
31
  const [downloadUrl, setDownloadUrl] = (0, _react.useState)(null);
30
32
 
33
+ const [disabled, setDisabled] = _react.default.useState(false);
34
+
35
+ const [visible, setVisible] = _react.default.useState(true);
36
+
31
37
  _react.default.useEffect(() => {
32
38
  props.handle.api = api();
33
39
  });
34
40
 
41
+ _react.default.useEffect(() => {
42
+ props.handle.api = api();
43
+
44
+ let parsedConfig = _Utils.default.parseConfig(props.config, props.viewId);
45
+
46
+ _Observable.default.addSubscriptions(parsedConfig.eventHandlingConfig, props.handle, props.viewId);
47
+
48
+ _Observable.default.addSystemSubscriptions(props.viewId, parsedConfig);
49
+
50
+ props.handle.api.refresh();
51
+ }, []);
52
+
53
+ _react.default.useEffect(() => {
54
+ props.handle.api.refresh();
55
+ }, [documentId]);
56
+
35
57
  _react.default.useEffect(() => {}, [playing]);
36
58
 
37
59
  _react.default.useEffect(() => {
@@ -57,13 +79,32 @@ const VideoPlayer = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defaul
57
79
  setDocumentId(documentId);
58
80
  },
59
81
 
82
+ get documentId() {
83
+ return documentId;
84
+ },
85
+
86
+ set disabled(disabled) {
87
+ setDisabled(disabled);
88
+ },
89
+
90
+ set visible(visible) {
91
+ setVisible(visible);
92
+ },
93
+
94
+ refresh() {
95
+ let parsedConfig = _Utils.default.parseConfig(props.config, props.viewId);
96
+
97
+ setDisabled(_Utils.default.evaluateBooleanExpression(parsedConfig.disabled, parsedConfig.id));
98
+ setVisible(_Utils.default.isNull(parsedConfig.visible) || _Utils.default.evaluateBooleanExpression(parsedConfig.visible, parsedConfig.id));
99
+ },
100
+
60
101
  getChildren: () => {
61
102
  return [];
62
103
  }
63
104
  };
64
105
  };
65
106
 
66
- return /*#__PURE__*/_react.default.createElement("div", {
107
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, visible && /*#__PURE__*/_react.default.createElement("div", {
67
108
  style: _Utils.default.mergeStyles({}, props.config)
68
109
  }, downloadUrl && /*#__PURE__*/_react.default.createElement("div", {
69
110
  className: "player-wrapper"
@@ -79,7 +120,7 @@ const VideoPlayer = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defaul
79
120
  height: "100%",
80
121
  onPlay: () => setPlaying(true),
81
122
  onPause: () => setPlaying(false)
82
- })));
123
+ }))));
83
124
  }));
84
125
 
85
126
  var _default = VideoPlayer;
@@ -141,7 +141,11 @@ class Observable {
141
141
 
142
142
  async emitContextChangeEvent(context, newValues) {
143
143
  for (const applicationContextSubscription of this.applicationContextSubscription) {
144
- applicationContextSubscription.handler.onContextChange(context, newValues);
144
+ if (applicationContextSubscription.handler.api) {
145
+ applicationContextSubscription.handler.api.onContextChange(context, newValues);
146
+ } else {
147
+ applicationContextSubscription.handler.onContextChange(context, newValues);
148
+ }
145
149
  }
146
150
  }
147
151
  /**
@@ -159,25 +159,24 @@ const ChangePassword = props => {
159
159
  margin: 'auto'
160
160
  }
161
161
  }, /*#__PURE__*/_react.default.createElement("div", {
162
- className: "row",
162
+ className: "row no-margin no-padding",
163
163
  style: _loginBasicStyle.default.title
164
164
  }, /*#__PURE__*/_react.default.createElement("div", {
165
165
  style: {
166
- width: '30%',
167
- textAlign: 'right'
168
- },
169
- className: 'col-*-*'
166
+ textAlign: 'right',
167
+ maxWidth: '60%'
168
+ }
170
169
  }, /*#__PURE__*/_react.default.createElement("img", {
171
170
  src: props.logo,
172
171
  alt: "..."
173
172
  })), /*#__PURE__*/_react.default.createElement("div", {
174
173
  style: {
175
- width: '70%',
174
+ width: props.title.length === 0 ? '0' : '70%',
176
175
  textAlign: 'left',
177
176
  margin: 'auto',
178
177
  paddingLeft: '16px'
179
178
  },
180
- className: 'col-*-*'
179
+ className: 'col'
181
180
  }, props.title)), !_Utils.default.isNull(message) ? /*#__PURE__*/_react.default.createElement(_Alert.default, {
182
181
  variant: alertVariant,
183
182
  show: !_Utils.default.isNull(message),
@@ -277,7 +276,11 @@ const ChangePassword = props => {
277
276
  marginRight: "8px"
278
277
  }
279
278
  }), isLoading && /*#__PURE__*/_react.default.createElement("span", null, "LOADING..."), !isLoading && /*#__PURE__*/_react.default.createElement("span", null, "CHANGE PASSWORD")))))))), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Footer.default, {
280
- white: true
279
+ white: true,
280
+ logo: props.footerLogo,
281
+ text: props.footerText,
282
+ width: props.footerWidth,
283
+ splitterColor: props.footerSplitterColor
281
284
  })));
282
285
  };
283
286
 
@@ -104,25 +104,24 @@ const ResetPassword = props => {
104
104
  margin: 'auto'
105
105
  }
106
106
  }, /*#__PURE__*/_react.default.createElement("div", {
107
- className: "row",
107
+ className: "row no-margin no-padding",
108
108
  style: _loginBasicStyle.default.title
109
109
  }, /*#__PURE__*/_react.default.createElement("div", {
110
110
  style: {
111
- width: '30%',
112
- textAlign: 'right'
113
- },
114
- className: 'col-*-*'
111
+ textAlign: 'right',
112
+ maxWidth: '60%'
113
+ }
115
114
  }, /*#__PURE__*/_react.default.createElement("img", {
116
115
  src: props.logo,
117
116
  alt: "..."
118
117
  })), /*#__PURE__*/_react.default.createElement("div", {
119
118
  style: {
120
- width: '70%',
119
+ width: props.title.length === 0 ? '0' : '70%',
121
120
  textAlign: 'left',
122
121
  margin: 'auto',
123
122
  paddingLeft: '16px'
124
123
  },
125
- className: 'col-*-*'
124
+ className: 'col'
126
125
  }, props.title)), !_Utils.default.isNull(message) ? /*#__PURE__*/_react.default.createElement(_Alert.default, {
127
126
  variant: alertVariant,
128
127
  show: !_Utils.default.isNull(message),
@@ -171,7 +170,11 @@ const ResetPassword = props => {
171
170
  style: _loginBasicStyle.default.flatButton,
172
171
  startIcon: /*#__PURE__*/_react.default.createElement(_Lock.default, null)
173
172
  }, "Back to Login"))))), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Footer.default, {
174
- white: true
173
+ white: true,
174
+ logo: props.footerLogo,
175
+ text: props.footerText,
176
+ width: props.footerWidth,
177
+ splitterColor: props.footerSplitterColor
175
178
  })));
176
179
  };
177
180
 
@@ -92,25 +92,24 @@ const Login = props => {
92
92
  margin: 'auto'
93
93
  }
94
94
  }, /*#__PURE__*/_react.default.createElement("div", {
95
- className: "row",
95
+ className: "row no-margin no-padding",
96
96
  style: _loginBasicStyle.default.title
97
97
  }, /*#__PURE__*/_react.default.createElement("div", {
98
98
  style: {
99
- width: '30%',
100
- textAlign: 'right'
101
- },
102
- className: 'col-*-*'
99
+ textAlign: 'right',
100
+ maxWidth: '60%'
101
+ }
103
102
  }, /*#__PURE__*/_react.default.createElement("img", {
104
103
  src: props.logo,
105
104
  alt: "..."
106
105
  })), /*#__PURE__*/_react.default.createElement("div", {
107
106
  style: {
108
- width: '70%',
107
+ width: props.title.length === 0 ? '0' : '70%',
109
108
  textAlign: 'left',
110
109
  margin: 'auto',
111
110
  paddingLeft: '16px'
112
111
  },
113
- className: 'col-*-*'
112
+ className: 'col'
114
113
  }, props.title)), !_Utils.default.isNull(errorMessage) ? /*#__PURE__*/_react.default.createElement(_Alert.default, {
115
114
  variant: "danger",
116
115
  show: !_Utils.default.isNull(errorMessage),
@@ -156,25 +156,24 @@ const ResetPassword = props => {
156
156
  margin: 'auto'
157
157
  }
158
158
  }, /*#__PURE__*/_react.default.createElement("div", {
159
- className: "row",
159
+ className: "row no-margin no-padding",
160
160
  style: _loginBasicStyle.default.title
161
161
  }, /*#__PURE__*/_react.default.createElement("div", {
162
162
  style: {
163
- width: '30%',
164
- textAlign: 'right'
165
- },
166
- className: 'col-*-*'
163
+ textAlign: 'right',
164
+ maxWidth: '60%'
165
+ }
167
166
  }, /*#__PURE__*/_react.default.createElement("img", {
168
167
  src: props.logo,
169
168
  alt: "..."
170
169
  })), /*#__PURE__*/_react.default.createElement("div", {
171
170
  style: {
172
- width: '70%',
171
+ width: props.title.length === 0 ? '0' : '70%',
173
172
  textAlign: 'left',
174
173
  margin: 'auto',
175
174
  paddingLeft: '16px'
176
175
  },
177
- className: 'col-*-*'
176
+ className: 'col'
178
177
  }, props.title)), !_Utils.default.isNull(message) ? /*#__PURE__*/_react.default.createElement(_Alert.default, {
179
178
  variant: alertVariant,
180
179
  show: !_Utils.default.isNull(message),
@@ -273,7 +272,11 @@ const ResetPassword = props => {
273
272
  marginRight: "8px"
274
273
  }
275
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, {
276
- white: true
275
+ white: true,
276
+ logo: props.footerLogo,
277
+ text: props.footerText,
278
+ width: props.footerWidth,
279
+ splitterColor: props.footerSplitterColor
277
280
  })));
278
281
  };
279
282
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agilemotion/oui-react-js",
3
- "version": "1.5.1",
3
+ "version": "1.5.3",
4
4
  "babel": {
5
5
  "presets": [
6
6
  "@babel/preset-env",