@agilemotion/oui-react-js 1.3.8 → 1.4.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.
Files changed (230) hide show
  1. package/README.TXT +1 -0
  2. package/dist/{ApplicationContext.js → ApplicationManager.js} +334 -335
  3. package/dist/BasicApp.js +67 -64
  4. package/dist/BasicAppHome.js +90 -110
  5. package/dist/BusinessPortalApp.js +1 -1
  6. package/dist/BusinessPortalAppHome.js +15 -50
  7. package/dist/DynamicJS.js +24 -52
  8. package/dist/RestUtils.js +90 -116
  9. package/dist/Utils.js +49 -37
  10. package/dist/WithRouter.js +34 -0
  11. package/dist/assets/jss/components/authNavbarStyle.js +34 -35
  12. package/dist/assets/jss/components/cardHeaderStyle.js +12 -12
  13. package/dist/assets/jss/components/customDropdownStyle.js +26 -26
  14. package/dist/assets/jss/components/customInputStyle.js +2 -8
  15. package/dist/assets/jss/components/dropdownStyle.js +10 -15
  16. package/dist/assets/jss/components/footerStyle.js +12 -18
  17. package/dist/assets/jss/components/headerLinksStyle.js +7 -13
  18. package/dist/assets/jss/components/headerStyle.js +24 -25
  19. package/dist/assets/jss/components/navbarLinksStyle.js +7 -13
  20. package/dist/assets/jss/components/navbarStyle.js +24 -25
  21. package/dist/assets/jss/components/sidebarStyle.js +41 -43
  22. package/dist/assets/jss/components/typographyStyle.js +2 -8
  23. package/dist/assets/jss/rootStyle.js +32 -47
  24. package/dist/assets/jss/views/layoutStyle.js +6 -11
  25. package/dist/assets/jss/views/loginStyle.js +4 -10
  26. package/dist/assets/lotties/call-loading.json +1 -0
  27. package/dist/assets/lotties/calling-2.json +1 -0
  28. package/dist/assets/lotties/calling.json +1 -0
  29. package/dist/assets/lotties/calling2.json +1 -0
  30. package/dist/assets/lotties/chat.json +1 -0
  31. package/dist/assets/lotties/join.json +1 -0
  32. package/dist/assets/lotties/loading.json +1 -0
  33. package/dist/assets/lotties/msg2.json +1 -0
  34. package/dist/assets/lotties/recording.json +1 -0
  35. package/dist/assets/lotties/waiting.json +1 -0
  36. package/dist/assets/scss/black-dashboard-react/bootstrap/_card.scss +5 -5
  37. package/dist/assets/scss/black-dashboard-react/bootstrap/_carousel.scss +2 -2
  38. package/dist/assets/scss/black-dashboard-react/bootstrap/_custom-forms.scss +3 -3
  39. package/dist/assets/scss/black-dashboard-react/bootstrap/_functions.scss +1 -1
  40. package/dist/assets/scss/black-dashboard-react/bootstrap/_images.scss +1 -1
  41. package/dist/assets/scss/black-dashboard-react/bootstrap/_jumbotron.scss +1 -1
  42. package/dist/assets/scss/black-dashboard-react/bootstrap/_popover.scss +7 -5
  43. package/dist/assets/scss/black-dashboard-react/bootstrap/_tooltip.scss +4 -4
  44. package/dist/assets/scss/black-dashboard-react/bootstrap/_variables.scss +5 -5
  45. package/dist/assets/scss/black-dashboard-react/bootstrap/mixins/_grid-framework.scss +2 -2
  46. package/dist/assets/scss/black-dashboard-react/bootstrap/mixins/_grid.scss +11 -9
  47. package/dist/assets/scss/black-dashboard-react/bootstrap/utilities/_embed.scss +6 -4
  48. package/dist/assets/scss/black-dashboard-react/custom/_sidebar-and-main-panel.scss +1 -1
  49. package/dist/assets/scss/black-dashboard-react/custom/_variables.scss +1 -1
  50. package/dist/components/AlertBar.js +39 -80
  51. package/dist/components/AlertItem.js +4 -26
  52. package/dist/components/Button.js +49 -52
  53. package/dist/components/Calendar.js +442 -0
  54. package/dist/components/Calender.css +244 -0
  55. package/dist/components/ConfirmationDialog.js +5 -29
  56. package/dist/components/DataGrid.js +207 -345
  57. package/dist/components/DataGridColumn.js +6 -29
  58. package/dist/components/DataGridFilter.js +48 -116
  59. package/dist/components/DataGridHeading.js +11 -19
  60. package/dist/components/Dialog.js +27 -121
  61. package/dist/components/DocumentViewer.js +12 -38
  62. package/dist/components/DocumentViewerComponent.js +2 -20
  63. package/dist/components/FileThumb.js +126 -0
  64. package/dist/components/Graph.js +33 -75
  65. package/dist/components/GraphNode.js +5 -22
  66. package/dist/components/HtmlPanel.js +68 -82
  67. package/dist/components/Icon.js +107 -1
  68. package/dist/components/LoadingIndicator.js +4 -4
  69. package/dist/components/LottieIcon.js +134 -0
  70. package/dist/components/PopupView.js +3 -21
  71. package/dist/components/Portlet.js +100 -0
  72. package/dist/components/RegularButton.js +15 -19
  73. package/dist/components/SignaturePanel.js +9 -40
  74. package/dist/components/SocketManager.js +170 -0
  75. package/dist/components/StepperTitleBar.js +33 -59
  76. package/dist/components/TabPage.js +6 -9
  77. package/dist/components/TabPanel.js +49 -98
  78. package/dist/components/TableCellContent.js +31 -39
  79. package/dist/components/TemplateDesigner.js +114 -158
  80. package/dist/components/TemplateItemEventHandler.js +33 -100
  81. package/dist/components/TemplateTable.js +6 -42
  82. package/dist/components/TitleBar.js +38 -54
  83. package/dist/components/Toolbar.js +67 -182
  84. package/dist/components/Tree.js +29 -66
  85. package/dist/components/card/Card.js +16 -20
  86. package/dist/components/card/CardAvatar.js +9 -13
  87. package/dist/components/card/CardBody.js +13 -17
  88. package/dist/components/card/CardFooter.js +12 -16
  89. package/dist/components/card/CardHeader.js +13 -17
  90. package/dist/components/card/CardIcon.js +6 -10
  91. package/dist/components/card/CardText.js +6 -10
  92. package/dist/components/customInput/CustomInput.js +12 -10
  93. package/dist/components/dashboard/BasicBusinessAppDashboard.js +85 -159
  94. package/dist/components/dashboard/BusinessPortalAppDashboard.js +30 -75
  95. package/dist/components/dashboard/components/Header.js +9 -26
  96. package/dist/components/dashboard/components/LeftDrawer.js +3 -1
  97. package/dist/components/dashboard/components/blackDashboard/fixedPlugin/FixedPlugin.js +1 -1
  98. package/dist/components/dashboard/components/blackDashboard/sidebar/Sidebar.css +7 -0
  99. package/dist/components/dashboard/components/blackDashboard/sidebar/Sidebar.js +189 -79
  100. package/dist/components/footer/Footer.js +6 -18
  101. package/dist/components/form/AddressSearch.js +32 -66
  102. package/dist/components/form/AutoComplete.js +161 -0
  103. package/dist/components/form/BaseField.js +89 -107
  104. package/dist/components/form/DatePicker.js +8 -23
  105. package/dist/components/form/FieldSet.js +161 -191
  106. package/dist/components/form/Form.css +1 -1
  107. package/dist/components/form/Form.js +153 -479
  108. package/dist/components/form/GridField.js +46 -146
  109. package/dist/components/form/IconField.js +35 -0
  110. package/dist/components/form/ImageEditor.js +22 -60
  111. package/dist/components/form/LookupField.js +8 -29
  112. package/dist/components/form/MultiFileUploadField.js +187 -0
  113. package/dist/components/form/RadioGroup.js +10 -26
  114. package/dist/components/form/Section.js +40 -91
  115. package/dist/components/form/SelectItem.js +14 -33
  116. package/dist/components/form/SignatureTemplateDesignerField.js +0 -1
  117. package/dist/components/form/Switch.js +53 -0
  118. package/dist/components/form/TextField.js +10 -17
  119. package/dist/components/form/TimePicker.js +8 -1
  120. package/dist/components/form/TransferList.css +2 -2
  121. package/dist/components/form/TransferList.js +67 -125
  122. package/dist/components/form/UploadField.js +132 -177
  123. package/dist/components/form/fieldset.css +8 -0
  124. package/dist/components/grid/GridContainer.js +5 -9
  125. package/dist/components/grid/GridItem.js +5 -9
  126. package/dist/components/layout/CollapsiblePanel.js +11 -33
  127. package/dist/components/layout/Layout.js +228 -290
  128. package/dist/components/layout/VC.css +17 -0
  129. package/dist/components/layout/View.css +18 -1
  130. package/dist/components/layout/View.js +80 -200
  131. package/dist/components/layout/ViewContainer.css +3 -0
  132. package/dist/components/layout/ViewContainer.js +59 -0
  133. package/dist/components/layout/ViewPort.js +50 -80
  134. package/dist/components/layout/Window.css +18 -0
  135. package/dist/components/layout/Window.js +287 -0
  136. package/dist/components/layout/WindowViewPort.js +71 -0
  137. package/dist/components/loader.css +1 -1
  138. package/dist/components/media/ClosablePanel.css +37 -0
  139. package/dist/components/media/ClosablePanel.js +53 -0
  140. package/dist/components/media/LobbyWaitingList.js +91 -0
  141. package/dist/components/media/MediaSoupHelper.js +223 -0
  142. package/dist/components/media/Recorder.js +235 -0
  143. package/dist/components/media/SideBarContent.css +54 -0
  144. package/dist/components/media/SideBarContent.js +46 -0
  145. package/dist/components/media/SocketRequest.js +20 -0
  146. package/dist/components/media/SocketResponse.js +16 -0
  147. package/dist/components/media/Timer.css +30 -0
  148. package/dist/components/media/Timer.js +88 -0
  149. package/dist/components/media/Toolbar.css +35 -0
  150. package/dist/components/media/Toolbar.js +494 -0
  151. package/dist/components/media/Tracks.js +39 -0
  152. package/dist/components/media/TrainingRoom.js +608 -0
  153. package/dist/components/media/Transports.js +35 -0
  154. package/dist/components/media/VCEventManager.js +74 -0
  155. package/dist/components/media/VCEventType.js +164 -0
  156. package/dist/components/media/VCParticipantList.css +72 -0
  157. package/dist/components/media/VCParticipantList.js +56 -0
  158. package/dist/components/media/VCParticipantListItem.css +73 -0
  159. package/dist/components/media/VCParticipantListItem.js +319 -0
  160. package/dist/components/media/VCRoom.css +42 -0
  161. package/dist/components/media/VCRoom.js +90 -0
  162. package/dist/components/media/VCRoomParticipant.css +25 -0
  163. package/dist/components/media/VCRoomParticipant.js +808 -0
  164. package/dist/components/media/VCRoomRecorder.js +223 -0
  165. package/dist/components/media/VCRoomWorkspace.css +86 -0
  166. package/dist/components/media/VCRoomWorkspace.js +666 -0
  167. package/dist/components/media/Video.css +4 -0
  168. package/dist/components/media/Video.js +131 -0
  169. package/dist/components/media/VideoPlayer.css +10 -0
  170. package/dist/components/media/VideoPlayer.js +86 -0
  171. package/dist/components/media/chat/ChatRoom.js +926 -0
  172. package/dist/components/media/chat/ChatRoomItem.js +83 -0
  173. package/dist/components/media/chat/ChatRoomList.js +78 -0
  174. package/dist/components/media/chat/ChatRooms.scss +567 -0
  175. package/dist/components/menu/CollapsibleMenu.js +2 -19
  176. package/dist/components/menu/MenuBars.js +6 -33
  177. package/dist/components/menu/MenuButton.js +27 -39
  178. package/dist/components/menu/MenuItem.js +3 -20
  179. package/dist/components/menu/MenuLink.js +22 -13
  180. package/dist/components/navbars/AuthNavbar.js +5 -18
  181. package/dist/components/navbars/HomeNavbar.js +5 -7
  182. package/dist/components/navbars/PortalNavbar.js +7 -25
  183. package/dist/components/signatures/AgilitySignaturePanel.js +38 -104
  184. package/dist/components/signatures/AlertItem.js +3 -24
  185. package/dist/components/signatures/DocumentContainer.js +47 -134
  186. package/dist/components/signatures/ImageSignatureInput.js +11 -38
  187. package/dist/components/signatures/MenuButton.js +1 -16
  188. package/dist/components/signatures/Prompt.js +3 -24
  189. package/dist/components/signatures/ResponsiveTable.js +42 -83
  190. package/dist/components/signatures/SearchView.js +13 -50
  191. package/dist/components/signatures/SignatorySearch.js +83 -99
  192. package/dist/components/signatures/SignatorySearchForm.js +11 -17
  193. package/dist/components/signatures/SignatureInput.js +18 -47
  194. package/dist/components/signatures/SignatureInputProps.js +18 -60
  195. package/dist/components/signatures/SignatureTemplateDesigner.js +151 -239
  196. package/dist/components/signatures/Toolbar.js +7 -34
  197. package/dist/components/signatures/ViewUtils.js +2 -6
  198. package/dist/components/typography/Danger.js +3 -1
  199. package/dist/components/typography/Info.js +3 -1
  200. package/dist/components/typography/Link.js +6 -2
  201. package/dist/event/ActionHandlers.js +6 -6
  202. package/dist/event/EventType.js +7 -1
  203. package/dist/event/LoadDataActionHandler.js +1 -1
  204. package/dist/event/Observable.js +80 -174
  205. package/dist/event/RouteActionHandler.js +74 -31
  206. package/dist/event/ServiceCallActionHandler.js +36 -24
  207. package/dist/event/SignalGraphActionHandler.js +2 -2
  208. package/dist/js/Addresses.js +10 -8
  209. package/dist/js/Calendar.js +220 -0
  210. package/dist/js/Media.js +157 -0
  211. package/dist/redux/store/ConfigureStore.js +3 -9
  212. package/dist/redux/store/DashboardStore.js +42 -94
  213. package/dist/redux/store/SecurityStore.js +15 -50
  214. package/dist/view/Dashboard.js +256 -171
  215. package/dist/view/Views.js +30 -0
  216. package/dist/view/security/ChangePasswordBasic.js +29 -80
  217. package/dist/view/security/ForgotPassword.js +13 -46
  218. package/dist/view/security/ForgotPasswordBasic.js +12 -45
  219. package/dist/view/security/Login.js +15 -51
  220. package/dist/view/security/LoginBasic.js +13 -46
  221. package/dist/view/security/LoginBusinessPortal.js +12 -45
  222. package/dist/view/security/ResetPassword.js +13 -51
  223. package/dist/view/security/ResetPasswordBasic.js +27 -75
  224. package/dist/view/security/Security.js +1 -0
  225. package/package.json +31 -25
  226. package/README.md +0 -1623
  227. package/dist/components/dashboard/BasicApp.js +0 -140
  228. package/dist/components/navbars/NavbarLinks.js +0 -212
  229. package/dist/components/signatures/OLD.js +0 -1138
  230. package/gulpfile.js +0 -77
@@ -0,0 +1,608 @@
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
+ var _Utils = _interopRequireDefault(require("../../Utils"));
11
+
12
+ require("./Video.css");
13
+
14
+ var _Icon = _interopRequireDefault(require("../Icon"));
15
+
16
+ var _ApplicationManager = _interopRequireDefault(require("../../ApplicationManager"));
17
+
18
+ var _Toolbar = _interopRequireDefault(require("./Toolbar"));
19
+
20
+ var _VCRoom = require("./VCRoom");
21
+
22
+ var _VCRoomWorkspace = _interopRequireDefault(require("./VCRoomWorkspace"));
23
+
24
+ var _VCEventType = require("./VCEventType");
25
+
26
+ var _Alert = _interopRequireDefault(require("react-bootstrap/Alert"));
27
+
28
+ var _VCEventManager = _interopRequireDefault(require("./VCEventManager"));
29
+
30
+ var _SocketManager = _interopRequireDefault(require("../SocketManager"));
31
+
32
+ var _ClosablePanel = _interopRequireDefault(require("./ClosablePanel"));
33
+
34
+ var _SideBarContent = _interopRequireDefault(require("./SideBarContent"));
35
+
36
+ var _VCRoomRecorder = _interopRequireDefault(require("./VCRoomRecorder"));
37
+
38
+ var _RestUtils = require("../../RestUtils");
39
+
40
+ var _Media = _interopRequireDefault(require("../../js/Media"));
41
+
42
+ var _Observable = _interopRequireDefault(require("../../event/Observable"));
43
+
44
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
45
+
46
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
47
+
48
+ 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; }
49
+
50
+ const Status = {
51
+ LOBBY: 'LOBBY',
52
+ SESSION: 'SESSION',
53
+ SESSION_ENDED: 'SESSION_ENDED',
54
+ SYSTEM_ERROR: 'SYSTEM_ERROR',
55
+ CONNECTION_ERROR: 'CONNECTION_ERROR',
56
+ STREAM_ERROR: 'STREAM_ERROR'
57
+ };
58
+ const location = window.location.protocol + '//' + window.location.hostname;
59
+
60
+ const TrainingRoom = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.forwardRef((props, ref) => {
61
+ const recordRef = (0, _react.useRef)();
62
+ const [hasUnreadChats, setHasUnreadChats] = (0, _react.useState)(null);
63
+ const [participants, setParticipants] = (0, _react.useState)([]);
64
+ const [handRaised, setHandRaised] = (0, _react.useState)(false);
65
+ const [isRecording, setIsRecording] = (0, _react.useState)(false);
66
+ const [videoDisabled] = (0, _react.useState)(props.videoDisabled);
67
+ const [audioDisabled, setAudioDisabled] = (0, _react.useState)(props.audioDisabled);
68
+ const [videoMuted, setVideoMuted] = (0, _react.useState)(true);
69
+ const [audioMuted, setAudioMuted] = (0, _react.useState)(true);
70
+ const [displayState, setDisplayState] = (0, _react.useState)(null);
71
+ const [roomStatus, setRoomStatus] = (0, _react.useState)(null);
72
+ const [someoneSharing, setSomeoneSharing] = (0, _react.useState)(null);
73
+ const [sideBarOpen, setSideBarOpen] = (0, _react.useState)(false);
74
+ const [sideBarTab, setSideBarTab] = (0, _react.useState)('');
75
+ const [allUserParticipantsLeft, setAllUserParticipantsLeft] = (0, _react.useState)(false);
76
+ const [lobbyWaitingList, setLobbyWaitingList] = (0, _react.useState)([]);
77
+ const [isHost, setIsHost] = (0, _react.useState)(false);
78
+ const [meetingParticipantGridMode, setMeetingParticipantGridMode] = (0, _react.useState)('DEFAULT');
79
+ const [autoPermit, setAutoPermit] = (0, _react.useState)(!props.calendarEvent.askToJoin);
80
+ const [rtpCapabilities, setRtpCapabilities] = (0, _react.useState)(null);
81
+ const [activityMessage, setActivityMessage] = (0, _react.useState)(null);
82
+ const [onloadScreenShareData, setOnloadScreenShareData] = (0, _react.useState)(null);
83
+ const [chatMessage, setChatMessage] = (0, _react.useState)(null);
84
+ const [chatSender, setChatSender] = (0, _react.useState)(null);
85
+ const [currentUserFullName, setCurrentUserFullName] = (0, _react.useState)(null);
86
+ const [eventHandler] = (0, _react.useState)({});
87
+ const [meetingChat, setMeetingChat] = (0, _react.useState)(null);
88
+
89
+ const [screenShared, setScreenShared] = _react.default.useState(null);
90
+
91
+ const handler = () => {
92
+ return {
93
+ get id() {
94
+ return 'meeting-room-' + props.calendarEvent.id;
95
+ },
96
+
97
+ get participants() {
98
+ return participants;
99
+ },
100
+
101
+ on: (eventType, be) => {
102
+ switch (eventType) {
103
+ case _VCEventType.VCEventType.REQUEST_TO_JOIN_MEETING:
104
+ break;
105
+
106
+ case _VCEventType.VCEventType.USER_JOINED:
107
+ addUser(be.payload);
108
+ break;
109
+
110
+ case _VCEventType.VCEventType.USER_LEFT_MEETING:
111
+ removeUser(be.payload);
112
+ break;
113
+
114
+ case _VCEventType.VCEventType.AUDIO_VISUAL_SETTINGS_CHANGED:
115
+ onAVSettingsChange(be.payload);
116
+ break;
117
+
118
+ case _VCEventType.VCEventType.SYSTEM_EVENT:
119
+ alert(_VCEventType.VCEventType.SYSTEM_EVENT);
120
+ break;
121
+ }
122
+ }
123
+ };
124
+ };
125
+
126
+ const fetchChats = () => {
127
+ (0, _RestUtils.sendRequest)("".concat(location, "/api/v1/chat/fetchMeetingChat/").concat(props.calendarEvent.id), response => {
128
+ if (response && response.id) {
129
+ setMeetingChat(response);
130
+ }
131
+ }, e => {}, true, false);
132
+ };
133
+
134
+ const onAVSettingsChange = payload => {
135
+ let participant = participants.find(p => p.userId === payload.userId);
136
+
137
+ if (participant) {
138
+ participant.audioMuted = payload.audioMuted;
139
+ participant.videoMuted = payload.videoMuted;
140
+ }
141
+
142
+ _VCEventManager.default.fireEvent(_VCEventType.VCEventType.AUDIO_VISUAL_SETTINGS_CHANGED, payload);
143
+ };
144
+
145
+ function emitAVSettingsChange() {
146
+ _SocketManager.default.emitEvent(_VCEventType.VCEventType.AUDIO_VISUAL_SETTINGS_CHANGED, {
147
+ meetingId: props.calendarEvent.id,
148
+ userId: sessionStorage.getItem('username'),
149
+ audioMuted: audioMuted,
150
+ videoMuted: videoMuted
151
+ }).catch(error => {});
152
+ }
153
+
154
+ (0, _react.useEffect)(() => {
155
+ if (audioMuted !== null) {
156
+ onAVSettingsChange({
157
+ userId: sessionStorage.getItem('username'),
158
+ videoMuted,
159
+ audioMuted
160
+ });
161
+ emitAVSettingsChange();
162
+ }
163
+ }, [audioMuted]);
164
+ (0, _react.useEffect)(() => {
165
+ if (videoMuted !== null) {
166
+ onAVSettingsChange({
167
+ userId: sessionStorage.getItem('username'),
168
+ videoMuted,
169
+ audioMuted
170
+ });
171
+ emitAVSettingsChange();
172
+ }
173
+ }, [videoMuted]);
174
+
175
+ const handleMessageArrived = event => {
176
+ if (roomStatus === Status.SESSION && event.message && event.message.length > 0) {
177
+ setActivityMessage(event.message);
178
+ const messageTimeout = setTimeout(() => {
179
+ setActivityMessage(null);
180
+ clearTimeout(messageTimeout);
181
+ }, 4000);
182
+ }
183
+ };
184
+
185
+ const addUser = payload => {
186
+ console.log('ADD USER : ', payload);
187
+ addUserToParticipants(payload.user);
188
+ setAllUserParticipantsLeft(false);
189
+
190
+ if (roomStatus === Status.LOBBY) {
191
+ setRoomStatus(Status.SESSION);
192
+ setSideBarTab('People');
193
+ setSideBarOpen(true);
194
+ }
195
+
196
+ handleMessageArrived({
197
+ message: payload.user.name + ' has joined'
198
+ });
199
+ };
200
+
201
+ const removeUser = user => {
202
+ if (props.calendarEvent.id === user.meetingId) {
203
+ const userId = user.userId;
204
+ const find = participants.find(p => p.userId === userId);
205
+
206
+ if (find) {
207
+ const newParticipants = participants.filter(p => p.userId !== userId);
208
+
209
+ if (newParticipants.length === 0) {
210
+ setParticipants(newParticipants);
211
+ setAllUserParticipantsLeft(true);
212
+ setRoomStatus(Status.LOBBY);
213
+ }
214
+ }
215
+ }
216
+ };
217
+
218
+ const handleSidebarToggle = e => {
219
+ let paper = document.getElementById('meetingDialogPaper');
220
+
221
+ if (e.detail.open) {
222
+ paper.style.margin = '54px 0 0 136px';
223
+ } else {
224
+ paper.style.margin = '54px 0 0 0';
225
+ }
226
+ };
227
+
228
+ (0, _react.useEffect)(() => {
229
+ eventHandler.api = handler();
230
+ });
231
+ (0, _react.useEffect)(() => {
232
+ if (props.settings) {
233
+ setAudioMuted(!props.settings.audioOn);
234
+ setVideoMuted(!props.settings.videoOn);
235
+ }
236
+ }, [props.settings]);
237
+ (0, _react.useEffect)(() => {
238
+ _VCEventManager.default.removeSubscriptions(eventHandler);
239
+
240
+ _ApplicationManager.default.addApplicationContextSubscription({
241
+ handler: {
242
+ get id() {
243
+ return 'training-room';
244
+ },
245
+
246
+ onContextChange: (context, newValues) => {
247
+ if (Object.keys(newValues).find(key => key === 'windowDisplayState')) {
248
+ setDisplayState(newValues.windowDisplayState);
249
+ }
250
+ }
251
+ }
252
+ }).then(initialContext => {
253
+ setDisplayState(initialContext ? initialContext.windowDisplayState : 'MAXIMIZED');
254
+ });
255
+
256
+ _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.PEER_DISCONNECT, _VCEventType.VCEventType.CONSUMER_TRANSPORT_FAILED, _VCEventType.VCEventType.CREATE_TRANSPORT_FAILED);
257
+
258
+ document.addEventListener('sideBarToggleEvent', handleSidebarToggle);
259
+
260
+ _ApplicationManager.default.setHasActiveMeeting(true);
261
+
262
+ return () => {
263
+ _VCEventManager.default.removeSubscriptions(eventHandler);
264
+
265
+ _Observable.default.removeApplicationContextSubscriptions('training-room');
266
+
267
+ document.removeEventListener('sideBarToggleEvent', handleSidebarToggle);
268
+
269
+ if (_ApplicationManager.default.hasActiveMeeting()) {
270
+ _SocketManager.default.leaveMeeting(props.calendarEvent.id);
271
+
272
+ _ApplicationManager.default.setHasActiveMeeting(false);
273
+ }
274
+ };
275
+ }, []);
276
+
277
+ _react.default.useEffect(() => {
278
+ _ApplicationManager.default.setHasActiveMeeting(true);
279
+
280
+ let userFullName;
281
+
282
+ if (props.calendarEvent.host.username === sessionStorage.getItem('username')) {
283
+ userFullName = props.calendarEvent.host.name;
284
+ } else {
285
+ userFullName = props.calendarEvent.attendees.find(a => a.username === sessionStorage.getItem('username')).name;
286
+ }
287
+
288
+ setCurrentUserFullName(userFullName);
289
+ setIsHost(props.calendarEvent.host.username === sessionStorage.getItem('username'));
290
+
291
+ try {
292
+ _Media.default.joinMeeting(props.calendarEvent, props.settings, userFullName).then(response => {
293
+ console.log('JOIN RESPONSE : ', response);
294
+ createParticipants(response.participants);
295
+ setRtpCapabilities(response.rtpCapabilities);
296
+ setOnloadScreenShareData(response.shareScreenProducerData);
297
+ setRoomStatus(participants.length > 0 ? Status.SESSION : Status.LOBBY);
298
+ }).catch(e => {
299
+ setRoomStatus(e.message);
300
+ });
301
+ } catch (e) {
302
+ setRoomStatus(Status.SYSTEM_ERROR);
303
+ }
304
+
305
+ return () => {
306
+ _ApplicationManager.default.setHasActiveMeeting(false);
307
+ };
308
+ }, []);
309
+
310
+ function addUserToParticipants(user) {
311
+ // Typically, a user shoud not exist. We are ensuring that there are never duplicates
312
+ console.log('SEARCHING PARTICIPANT : ' + user.userId);
313
+ console.log(participants);
314
+ let participant = participants.find(u => u.userId === user.userId);
315
+
316
+ if (participant) {
317
+ console.log('FOUND EXISTING PARTICIPANT : ', participant);
318
+ participant.name = user.name;
319
+ participant.avatar = user.avatar;
320
+ participant.audioMuted = user.audioMuted;
321
+ participant.videoMuted = user.videoMuted;
322
+ participant.producers = user.producers;
323
+ } else {
324
+ console.log('DID NOT FIND EXISTING PARTICIPANT : ', participant);
325
+ participant = {
326
+ userId: user.userId,
327
+ name: user.name,
328
+ avatar: user.avatar,
329
+ audioMuted: user.audioMuted,
330
+ videoMuted: user.videoMuted,
331
+ producers: user.producers
332
+ };
333
+ participants.push(participant);
334
+ setParticipants([].concat(participants));
335
+ }
336
+ }
337
+
338
+ const changeOtherParticipantAVSettings = (userId, audioMuted, videoMuted) => {};
339
+
340
+ const createParticipants = users => {
341
+ console.log('ALL USERS received and creating participants : ', users);
342
+ users.forEach(user => {
343
+ console.log('ADDING ITEM TO PARTICIPANTS : ', user);
344
+ addUserToParticipants(user);
345
+ });
346
+ setAllUserParticipantsLeft(false);
347
+
348
+ if (participants.length > 0) {
349
+ if (roomStatus === Status.LOBBY) {
350
+ setRoomStatus(Status.SESSION);
351
+ setSideBarOpen(true);
352
+ }
353
+ }
354
+ };
355
+
356
+ const hangUp = () => {
357
+ _SocketManager.default.leaveMeeting(props.calendarEvent.id);
358
+
359
+ _ApplicationManager.default.setHasActiveMeeting(false);
360
+
361
+ _ApplicationManager.default.removeLoadedGraph(false);
362
+
363
+ setSideBarOpen(false);
364
+ setSideBarTab('');
365
+ };
366
+
367
+ const emitSystemEvent = (eventType, data, toParticipantIds = null) => {
368
+ let participantIds = [];
369
+
370
+ if (!toParticipantIds) {
371
+ for (const participant of participants) {
372
+ if (participant.userId !== sessionStorage.getItem("username")) {
373
+ participantIds.push(participant.userId);
374
+ }
375
+ }
376
+ } else {
377
+ participantIds = participantIds.concat(toParticipantIds);
378
+ }
379
+
380
+ _SocketManager.default.emitEvent(_VCEventType.VCEventType.SYSTEM_EVENT, {
381
+ systemEventType: eventType,
382
+ recipients: participantIds,
383
+ data: data
384
+ }).catch(error => {});
385
+ };
386
+
387
+ const recordMeeting = () => {
388
+ _VCRoomRecorder.default.init(props.calendarEvent.id, props.calendarEvent.title);
389
+
390
+ setIsRecording(true);
391
+ emitSystemEvent("MEETING_RECORDING", {
392
+ recording: true,
393
+ userId: sessionStorage.getItem("username")
394
+ });
395
+
396
+ _VCRoomRecorder.default.recordMeeting();
397
+ };
398
+
399
+ const stopRecordingMeeting = (publish = true) => {
400
+ setIsRecording(false);
401
+
402
+ if (publish) {
403
+ emitSystemEvent("MEETING_RECORDING", {
404
+ recording: false,
405
+ userId: sessionStorage.getItem("username")
406
+ });
407
+ }
408
+
409
+ _VCRoomRecorder.default.stopRecordingMeeting();
410
+ };
411
+
412
+ return /*#__PURE__*/_react.default.createElement("div", {
413
+ style: {
414
+ width: '100%',
415
+ height: '100%',
416
+ border: '1px solid #e2e2e2',
417
+ borderRadius: '4px'
418
+ }
419
+ }, /*#__PURE__*/_react.default.createElement("div", {
420
+ className: 'row no-margin no-padding w-100 h-100'
421
+ }, /*#__PURE__*/_react.default.createElement("div", {
422
+ className: 'col no-margin no-padding'
423
+ }, /*#__PURE__*/_react.default.createElement("div", {
424
+ className: 'row no-margin no-padding w-100 h-100'
425
+ }, /*#__PURE__*/_react.default.createElement("div", {
426
+ style: {
427
+ width: '100%',
428
+ borderBottom: '1px solid #e2e2e2'
429
+ }
430
+ }, /*#__PURE__*/_react.default.createElement(_Toolbar.default, {
431
+ eventHandler: {
432
+ onMuteVideo: muted => {
433
+ setVideoMuted(muted);
434
+ },
435
+ onMuteAudio: muted => {
436
+ setAudioMuted(muted);
437
+ },
438
+ endCall: () => {
439
+ hangUp();
440
+ },
441
+ showChat: () => {
442
+ fetchChats();
443
+ },
444
+ showPeople: () => {
445
+ setSideBarTab('People');
446
+ setSideBarOpen(true);
447
+ },
448
+ shareScreen: () => {
449
+ setScreenShared(true);
450
+ },
451
+ stopShareScreen: () => {
452
+ setScreenShared(false);
453
+ },
454
+ recordMeeting: () => {
455
+ recordMeeting();
456
+ },
457
+ stopRecording: () => {
458
+ stopRecordingMeeting();
459
+ }
460
+ },
461
+ hasUnreadChats: hasUnreadChats,
462
+ participants: participants,
463
+ handRaised: handRaised,
464
+ videoDisabled: videoDisabled,
465
+ audioDisabled: audioDisabled,
466
+ videoMuted: videoMuted,
467
+ audioMuted: audioMuted,
468
+ displayState: displayState,
469
+ screenShared: screenShared,
470
+ roomStatus: roomStatus,
471
+ isHost: props.calendarEvent.host.username === sessionStorage.getItem('username'),
472
+ autoPermit: !props.calendarEvent.host.askToJoin,
473
+ someoneSharing: someoneSharing,
474
+ isRecording: isRecording
475
+ })), roomStatus === Status.SYSTEM_ERROR && /*#__PURE__*/_react.default.createElement("div", {
476
+ style: {
477
+ color: 'rgb(235, 63, 33)',
478
+ padding: '32px',
479
+ fontSize: '24px',
480
+ width: '100%',
481
+ height: '100%'
482
+ },
483
+ className: 'centered-flex-box'
484
+ }, _VCRoom.SYSTEM_ERROR_MESSAGE), roomStatus === Status.CONNECTION_ERROR && /*#__PURE__*/_react.default.createElement("div", {
485
+ style: {
486
+ color: 'rgb(235, 63, 33)',
487
+ padding: '32px',
488
+ fontSize: '24px',
489
+ width: '100%',
490
+ height: '100%'
491
+ },
492
+ className: 'centered-flex-box'
493
+ }, /*#__PURE__*/_react.default.createElement("div", null, _VCRoom.SYSTEM_ERROR_MESSAGE)), rtpCapabilities && participants && currentUserFullName && (roomStatus === Status.SESSION || roomStatus === Status.LOBBY) && /*#__PURE__*/_react.default.createElement(_VCRoomWorkspace.default, {
494
+ participants: participants,
495
+ mode: meetingParticipantGridMode,
496
+ audioMuted: audioMuted,
497
+ videoMuted: videoMuted,
498
+ meetingTitle: props.calendarEvent.title,
499
+ meetingId: props.calendarEvent.id,
500
+ currentUserFullName: currentUserFullName,
501
+ onGridSetup: () => {
502
+ setSideBarTab('People');
503
+ },
504
+ roomStatus: roomStatus,
505
+ isHost: isHost,
506
+ sharingHandler: someoneSharing => setSomeoneSharing(someoneSharing),
507
+ onStopSharing: () => setScreenShared(false),
508
+ autoPermit: autoPermit,
509
+ rtpCapabilities: rtpCapabilities,
510
+ screenShared: screenShared,
511
+ displayState: displayState,
512
+ onloadScreenShareData: onloadScreenShareData,
513
+ allUserParticipantsLeft: allUserParticipantsLeft,
514
+ onAudioDeviceChange: device => {
515
+ setAudioDisabled(_Utils.default.isNull(device));
516
+ },
517
+ onHostAudioMute: participant => {
518
+ changeOtherParticipantAVSettings(participant.userId, true, participant.videoMuted);
519
+ },
520
+ onHostVideoMute: participant => {
521
+ changeOtherParticipantAVSettings(participant.userId, participant.audioMuted, true);
522
+ }
523
+ }))), sideBarOpen && sideBarTab && displayState === 'MAXIMIZED' && roomStatus === Status.SESSION && /*#__PURE__*/_react.default.createElement("div", {
524
+ className: 'closable-panel-container'
525
+ }, /*#__PURE__*/_react.default.createElement(_ClosablePanel.default, {
526
+ closeHandler: e => {
527
+ setSideBarOpen(false);
528
+ setSideBarTab(null);
529
+ },
530
+ title: sideBarTab
531
+ }, /*#__PURE__*/_react.default.createElement(_SideBarContent.default, {
532
+ meetingChat: meetingChat,
533
+ isHost: isHost,
534
+ tab: sideBarTab,
535
+ meetingId: props.calendarEvent.id,
536
+ participants: participants,
537
+ onHostAudioMute: participant => {
538
+ changeOtherParticipantAVSettings(participant.userId, true, participant.videoMuted);
539
+ },
540
+ onHostVideoMute: participant => {
541
+ changeOtherParticipantAVSettings(participant.userId, participant.audioMuted, true);
542
+ }
543
+ })))), /*#__PURE__*/_react.default.createElement("div", {
544
+ style: {
545
+ position: 'absolute',
546
+ right: '48px',
547
+ bottom: '48px'
548
+ }
549
+ }, /*#__PURE__*/_react.default.createElement(_Alert.default, {
550
+ variant: 'info',
551
+ show: activityMessage !== null,
552
+ fade: true
553
+ }, /*#__PURE__*/_react.default.createElement("p", {
554
+ style: {
555
+ color: 'rgba(255, 255, 255, 0.8)'
556
+ }
557
+ }, activityMessage)), /*#__PURE__*/_react.default.createElement(_Alert.default, {
558
+ variant: 'info',
559
+ show: chatMessage !== null,
560
+ fade: true
561
+ }, /*#__PURE__*/_react.default.createElement("div", {
562
+ className: 'row',
563
+ style: {
564
+ borderBottom: '1px solid white',
565
+ paddingBottom: '8px'
566
+ }
567
+ }, /*#__PURE__*/_react.default.createElement("div", {
568
+ className: 'col'
569
+ }, /*#__PURE__*/_react.default.createElement("div", {
570
+ className: 'row'
571
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
572
+ id: 'CHAT_BUBBLE'
573
+ })), /*#__PURE__*/_react.default.createElement("div", {
574
+ className: 'col'
575
+ }, /*#__PURE__*/_react.default.createElement("p", {
576
+ style: {
577
+ color: 'rgba(255, 255, 255, 0.8)'
578
+ }
579
+ }, chatSender))))), /*#__PURE__*/_react.default.createElement("div", {
580
+ className: 'row',
581
+ style: {
582
+ marginTop: '8px'
583
+ }
584
+ }, /*#__PURE__*/_react.default.createElement("div", {
585
+ className: 'col'
586
+ }, /*#__PURE__*/_react.default.createElement("p", {
587
+ style: {
588
+ color: 'rgba(255, 255, 255, 0.8)'
589
+ }
590
+ }, chatMessage))))), /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
591
+ style: {
592
+ display: 'none'
593
+ }
594
+ }, /*#__PURE__*/_react.default.createElement("video", {
595
+ hidden: false,
596
+ muted: true,
597
+ playsInline: true,
598
+ autoPlay: true,
599
+ ref: recordRef,
600
+ style: {
601
+ width: '200px',
602
+ height: '200px'
603
+ }
604
+ }))));
605
+ }));
606
+
607
+ var _default = TrainingRoom;
608
+ exports.default = _default;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ 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; }
9
+
10
+ class Transports {
11
+ constructor() {
12
+ _defineProperty(this, "closeProducerTransport", () => {
13
+ if (this.producerTransport) {
14
+ this.producerTransport.close();
15
+ }
16
+ });
17
+
18
+ _defineProperty(this, "setProducerTransport", producerTransport => {
19
+ this.producerTransport = producerTransport;
20
+ });
21
+
22
+ _defineProperty(this, "closeConsumerTransport", () => {
23
+ if (this.consumerTransport) {
24
+ this.consumerTransport.close();
25
+ }
26
+ });
27
+
28
+ _defineProperty(this, "setConsumerTransport", consumerTransport => {
29
+ this.consumerTransport = consumerTransport;
30
+ });
31
+ }
32
+
33
+ }
34
+
35
+ exports.default = Transports;