@agilemotion/oui-react-js 1.6.0 → 1.6.2

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 (229) hide show
  1. package/dist/ApplicationManager.js +698 -421
  2. package/dist/BasicApp.js +5 -5
  3. package/dist/BasicAppHome.js +55 -26
  4. package/dist/DynamicJS.js +147 -65
  5. package/dist/InteractionPortalApp.css +1 -1
  6. package/dist/InteractionPortalApp.js +5 -5
  7. package/dist/InteractionPortalAppHome.js +65 -18
  8. package/dist/InteractionPortalApp_old.js +107 -61
  9. package/dist/RestUtils.js +339 -287
  10. package/dist/TypedValue.js +18 -15
  11. package/dist/Utils.js +375 -276
  12. package/dist/WithRouter.js +6 -6
  13. package/dist/assets/jss/components/authNavbarStyle.js +166 -164
  14. package/dist/assets/jss/components/buttonStyle.js +1 -1
  15. package/dist/assets/jss/components/cardAvatarStyle.js +1 -1
  16. package/dist/assets/jss/components/cardBodyStyle.js +1 -1
  17. package/dist/assets/jss/components/cardFooterStyle.js +1 -1
  18. package/dist/assets/jss/components/cardHeaderStyle.js +13 -13
  19. package/dist/assets/jss/components/cardIconStyle.js +1 -1
  20. package/dist/assets/jss/components/cardStyle.js +1 -1
  21. package/dist/assets/jss/components/cardTextStyle.js +1 -1
  22. package/dist/assets/jss/components/customDropdownStyle.js +168 -169
  23. package/dist/assets/jss/components/customInputStyle.js +9 -3
  24. package/dist/assets/jss/components/dropdownStyle.js +69 -69
  25. package/dist/assets/jss/components/footerStyle.js +19 -13
  26. package/dist/assets/jss/components/headerLinksStyle.js +45 -48
  27. package/dist/assets/jss/components/headerStyle.js +68 -65
  28. package/dist/assets/jss/components/navbarLinksStyle.js +66 -77
  29. package/dist/assets/jss/components/navbarStyle.js +79 -76
  30. package/dist/assets/jss/components/sidebarStyle.js +436 -436
  31. package/dist/assets/jss/components/typographyStyle.js +9 -3
  32. package/dist/assets/jss/rootStyle.js +96 -81
  33. package/dist/assets/jss/views/layoutStyle.js +44 -41
  34. package/dist/assets/jss/views/loginBasicStyle.js +1 -1
  35. package/dist/assets/jss/views/loginBusinessPortalStyle.js +1 -1
  36. package/dist/assets/jss/views/loginStyle.js +82 -77
  37. package/dist/components/AlertBar.js +50 -17
  38. package/dist/components/AlertItem.js +35 -12
  39. package/dist/components/AlertTemplate.js +30 -29
  40. package/dist/components/Button.js +62 -34
  41. package/dist/components/Calendar.js +140 -91
  42. package/dist/components/ConfirmationDialog.js +36 -11
  43. package/dist/components/DataGrid.js +512 -270
  44. package/dist/components/DataGridColumn.js +47 -22
  45. package/dist/components/DataGridFilter.js +186 -105
  46. package/dist/components/DataGridHeading.js +50 -32
  47. package/dist/components/Dialog.js +90 -35
  48. package/dist/components/DocumentTemplateDesigner.js +34 -16
  49. package/dist/components/DocumentTemplateDesignerComponent.css +0 -157
  50. package/dist/components/DocumentTemplateDesignerComponent.js +118 -62
  51. package/dist/components/DocumentTemplatePlaceholderDialog.js +52 -30
  52. package/dist/components/DocumentViewer.js +34 -18
  53. package/dist/components/DocumentViewerComponent.js +26 -9
  54. package/dist/components/ElementResizeHandler.js +229 -207
  55. package/dist/components/FileThumb.js +32 -10
  56. package/dist/components/Graph.js +153 -85
  57. package/dist/components/GraphNode.js +58 -38
  58. package/dist/components/HtmlPanel.js +67 -39
  59. package/dist/components/Icon.js +206 -166
  60. package/dist/components/LoadingIndicator.js +3 -3
  61. package/dist/components/LottieIcon.js +1 -1
  62. package/dist/components/PopupView.js +39 -19
  63. package/dist/components/Portlet.js +35 -19
  64. package/dist/components/RegularButton.js +28 -32
  65. package/dist/components/SignaturePanel.js +37 -17
  66. package/dist/components/SocketManager.js +178 -119
  67. package/dist/components/StepperTitleBar.js +62 -42
  68. package/dist/components/TabPage.js +30 -25
  69. package/dist/components/TabPanel.js +86 -33
  70. package/dist/components/TableCellContent.js +51 -32
  71. package/dist/components/TemplateDesigner.js +173 -121
  72. package/dist/components/TemplateItemEventHandler.js +335 -221
  73. package/dist/components/TemplateTable.js +183 -118
  74. package/dist/components/TitleBar.js +26 -11
  75. package/dist/components/Toolbar.js +67 -38
  76. package/dist/components/Tooltip.js +43 -35
  77. package/dist/components/Tree.js +85 -44
  78. package/dist/components/UseIsVisible.js +25 -4
  79. package/dist/components/card/Card.js +27 -33
  80. package/dist/components/card/CardAvatar.js +20 -19
  81. package/dist/components/card/CardBody.js +24 -27
  82. package/dist/components/card/CardFooter.js +23 -24
  83. package/dist/components/card/CardHeader.js +24 -27
  84. package/dist/components/card/CardIcon.js +17 -13
  85. package/dist/components/card/CardText.js +17 -13
  86. package/dist/components/customInput/CustomInput.js +22 -36
  87. package/dist/components/dashboard/{BasicBusinessAppDashboard.js → FoldingSideTabDashboard.js} +111 -63
  88. package/dist/components/dashboard/SideMenuModuleDashboard.css +60 -0
  89. package/dist/components/dashboard/SideMenuModuleDashboard.js +423 -0
  90. package/dist/components/dashboard/TopMenuModuleDashboard.js +138 -0
  91. package/dist/components/dashboard/components/Header.js +29 -12
  92. package/dist/components/dashboard/components/LeftDrawer.js +3 -5
  93. package/dist/components/dashboard/components/UserIdentity.js +2 -2
  94. package/dist/components/dashboard/components/blackDashboard/fixedPlugin/FixedPlugin.js +131 -87
  95. package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +488 -0
  96. package/dist/components/dashboard/components/blackDashboard/sidebar/ModuleMenu.js +64 -0
  97. package/dist/components/dashboard/components/blackDashboard/sidebar/ModuleMenuSidebar.css +65 -0
  98. package/dist/components/dashboard/components/blackDashboard/sidebar/ModuleMenuSidebar.js +556 -0
  99. package/dist/components/dashboard/components/portal/Timeline.js +1 -1
  100. package/dist/components/dashboard/components/portal/Workspace.js +5 -11
  101. package/dist/components/footer/Footer.js +31 -24
  102. package/dist/components/footer/HomeFooter.js +68 -34
  103. package/dist/components/form/AddressSearch.js +78 -42
  104. package/dist/components/form/AutoComplete.js +136 -55
  105. package/dist/components/form/BaseField.js +108 -56
  106. package/dist/components/form/Checkbox.js +10 -8
  107. package/dist/components/form/DatePicker.js +47 -25
  108. package/dist/components/form/FieldSet.js +217 -84
  109. package/dist/components/form/Form.js +334 -200
  110. package/dist/components/form/GridField.js +185 -82
  111. package/dist/components/form/IconField.js +9 -7
  112. package/dist/components/form/ImageEditor.js +141 -92
  113. package/dist/components/form/LabelField.js +12 -10
  114. package/dist/components/form/LookupField.js +54 -32
  115. package/dist/components/form/MultiFileUploadField.js +101 -67
  116. package/dist/components/form/RadioGroup.js +33 -16
  117. package/dist/components/form/Section.js +84 -34
  118. package/dist/components/form/SelectItem.js +55 -33
  119. package/dist/components/form/SignatureTemplateDesignerField.js +11 -9
  120. package/dist/components/form/Switch.js +10 -8
  121. package/dist/components/form/TextField.js +34 -16
  122. package/dist/components/form/TimePicker.js +19 -15
  123. package/dist/components/form/TransferList.js +153 -75
  124. package/dist/components/form/UploadField.js +183 -128
  125. package/dist/components/grid/GridContainer.js +12 -8
  126. package/dist/components/grid/GridItem.js +12 -8
  127. package/dist/components/layout/CollapsiblePanel.js +44 -18
  128. package/dist/components/layout/Layout.js +81 -40
  129. package/dist/components/layout/VC.css +1 -1
  130. package/dist/components/layout/View.js +136 -62
  131. package/dist/components/layout/ViewContainer.js +13 -11
  132. package/dist/components/layout/ViewPort.js +25 -10
  133. package/dist/components/layout/Window.js +87 -53
  134. package/dist/components/layout/WindowViewPort.js +38 -16
  135. package/dist/components/media/ClosablePanel.js +7 -7
  136. package/dist/components/media/LobbyWaitingList.js +7 -9
  137. package/dist/components/media/MediaSoupHelper.js +379 -187
  138. package/dist/components/media/SideBarContent.js +22 -14
  139. package/dist/components/media/SocketRequest.js +5 -1
  140. package/dist/components/media/SocketResponse.js +5 -1
  141. package/dist/components/media/Timer.js +35 -15
  142. package/dist/components/media/Toolbar.css +5 -0
  143. package/dist/components/media/Toolbar.js +220 -102
  144. package/dist/components/media/ToolbarButton.js +82 -33
  145. package/dist/components/media/Toolbar_bck.js +142 -70
  146. package/dist/components/media/Tracks.js +31 -28
  147. package/dist/components/media/TrainingRoom.js +284 -121
  148. package/dist/components/media/Transports.js +27 -24
  149. package/dist/components/media/VCEventManager.js +95 -31
  150. package/dist/components/media/VCEventType.js +5 -1
  151. package/dist/components/media/VCParticipantList.js +40 -14
  152. package/dist/components/media/VCParticipantListItem.js +92 -41
  153. package/dist/components/media/VCRoom.js +29 -11
  154. package/dist/components/media/VCRoomParticipant.js +488 -242
  155. package/dist/components/media/VCRoomRecorder.js +236 -175
  156. package/dist/components/media/VCRoomWorkspace.js +505 -245
  157. package/dist/components/media/Video.js +89 -25
  158. package/dist/components/media/VideoPlayer.js +56 -22
  159. package/dist/components/media/chat/ChatRoom.js +255 -132
  160. package/dist/components/media/chat/ChatRoomItem.js +35 -14
  161. package/dist/components/media/chat/ChatRoomList.js +43 -13
  162. package/dist/components/menu/CollapsibleMenu.js +39 -20
  163. package/dist/components/menu/MenuBars.js +81 -48
  164. package/dist/components/menu/MenuButton.js +95 -60
  165. package/dist/components/menu/MenuItem.js +28 -9
  166. package/dist/components/menu/MenuLink.js +12 -10
  167. package/dist/components/menu/PopupMenu.js +16 -12
  168. package/dist/components/navbars/AuthNavbar.js +27 -18
  169. package/dist/components/navbars/HomeNavbar.js +243 -194
  170. package/dist/components/navbars/PortalNavbar.js +50 -26
  171. package/dist/components/signatures/AgilitySignaturePanel.js +96 -39
  172. package/dist/components/signatures/AlertItem.js +36 -13
  173. package/dist/components/signatures/Card.js +4 -4
  174. package/dist/components/signatures/DocumentContainer.js +141 -57
  175. package/dist/components/signatures/ImageSignatureInput.js +90 -59
  176. package/dist/components/signatures/MenuButton.js +53 -33
  177. package/dist/components/signatures/Prompt.js +26 -5
  178. package/dist/components/signatures/ResponsiveTable.js +302 -197
  179. package/dist/components/signatures/SearchView.js +77 -36
  180. package/dist/components/signatures/SignatorySearch.js +30 -10
  181. package/dist/components/signatures/SignatorySearchForm.js +35 -18
  182. package/dist/components/signatures/SignatureInput.js +56 -26
  183. package/dist/components/signatures/SignatureInputProps.js +107 -55
  184. package/dist/components/signatures/SignatureTemplateDesigner.js +340 -235
  185. package/dist/components/signatures/Toolbar.js +135 -94
  186. package/dist/components/signatures/ViewUtils.js +273 -224
  187. package/dist/components/typography/Danger.js +3 -5
  188. package/dist/components/typography/Info.js +3 -5
  189. package/dist/components/typography/Link.js +3 -5
  190. package/dist/event/ActionHandlers.js +57 -43
  191. package/dist/event/Event.js +16 -13
  192. package/dist/event/EventListener.js +39 -36
  193. package/dist/event/EventType.js +5 -1
  194. package/dist/event/LoadDataActionHandler.js +20 -8
  195. package/dist/event/Observable.js +323 -142
  196. package/dist/event/RouteActionHandler.js +139 -125
  197. package/dist/event/ScriptActionHandler.js +20 -8
  198. package/dist/event/ServiceCallActionHandler.js +51 -39
  199. package/dist/event/SignalGraphActionHandler.js +19 -7
  200. package/dist/js/Addresses.js +38 -24
  201. package/dist/js/Calendar.js +168 -161
  202. package/dist/js/DynamicLib.js +14 -11
  203. package/dist/js/Media.js +213 -120
  204. package/dist/js/Validators.js +6 -5
  205. package/dist/js/Windows.js +48 -47
  206. package/dist/redux/store/ConfigureStore.js +17 -9
  207. package/dist/redux/store/DashboardStore.js +110 -43
  208. package/dist/redux/store/History.js +1 -1
  209. package/dist/redux/store/SecurityStore.js +59 -20
  210. package/dist/security/TokenManager.js +44 -30
  211. package/dist/theme-default.js +1 -1
  212. package/dist/view/Dashboard.js +230 -137
  213. package/dist/view/PortalDashboard.js +5 -5
  214. package/dist/view/Settings.js +4 -2
  215. package/dist/view/Views.js +27 -14
  216. package/dist/view/security/ChangePasswordBasic.js +97 -40
  217. package/dist/view/security/ForgotPassword.js +59 -22
  218. package/dist/view/security/ForgotPasswordBasic.js +62 -21
  219. package/dist/view/security/Login.js +64 -24
  220. package/dist/view/security/LoginBasic.js +65 -26
  221. package/dist/view/security/LoginInteractionPortal.js +62 -25
  222. package/dist/view/security/ResetPassword.js +65 -23
  223. package/dist/view/security/ResetPasswordBasic.js +91 -37
  224. package/dist/view/security/Security.js +12 -12
  225. package/package.json +1 -2
  226. package/dist/components/dashboard/BusinessPortalAppDashboard.js +0 -154
  227. package/dist/components/dashboard/components/blackDashboard/sidebar/Sidebar.js +0 -447
  228. /package/dist/components/dashboard/{BusinessPortalAppDashboard.css → TopMenuModuleDashboard.css} +0 -0
  229. /package/dist/components/dashboard/components/blackDashboard/sidebar/{Sidebar.css → FoldingTabSidebar.css} +0 -0
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -37,18 +39,37 @@ var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
37
39
 
38
40
  var _ApplicationManager = _interopRequireDefault(require("../../ApplicationManager"));
39
41
 
42
+ var _this = void 0;
43
+
40
44
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
45
 
42
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
46
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { 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
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
51
+
52
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
53
+
54
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
55
+
56
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
43
57
 
44
- 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; }
58
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
45
59
 
46
- /* eslint-disable react-hooks/exhaustive-deps */
47
- const VIDEO_CODEC_OPTIONS = {
60
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
61
+
62
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
63
+
64
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
65
+
66
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
67
+
68
+ var VIDEO_CODEC_OPTIONS = {
48
69
  videoGoogleStartBitrate: 1000
49
70
  };
50
71
  exports.VIDEO_CODEC_OPTIONS = VIDEO_CODEC_OPTIONS;
51
- const VIDEO_CONSTRAINTS = {
72
+ var VIDEO_CONSTRAINTS = {
52
73
  audio: false,
53
74
  video: {
54
75
  width: {
@@ -62,7 +83,7 @@ const VIDEO_CONSTRAINTS = {
62
83
  }
63
84
  };
64
85
  exports.VIDEO_CONSTRAINTS = VIDEO_CONSTRAINTS;
65
- const VIDEO_ENCODINGS = [{
86
+ var VIDEO_ENCODINGS = [{
66
87
  rid: 'r0',
67
88
  maxBitrate: 20000,
68
89
  //scaleResolutionDownBy: 10.0,
@@ -77,56 +98,95 @@ const VIDEO_ENCODINGS = [{
77
98
  scalabilityMode: 'S1T3'
78
99
  }];
79
100
  exports.VIDEO_ENCODINGS = VIDEO_ENCODINGS;
80
- const location = window.location.protocol + '//' + window.location.hostname;
81
-
82
- const VCRoomParticipant = props => {
83
- const [handRaised, setHandRaised] = _react.default.useState(false);
84
-
85
- const [videoMuted, setVideoMuted] = _react.default.useState(props.videoMuted);
86
-
87
- const [audioMuted, setAudioMuted] = _react.default.useState(props.audioMuted);
88
-
89
- const [producerTransport, setProducerTransport] = _react.default.useState(props.producerTransport);
90
-
91
- const [videoRefresher, setVideoRefresher] = _react.default.useState(false);
92
-
93
- const [producers] = _react.default.useState(new Map());
94
-
95
- const [failedProducersDueToNullTransport] = _react.default.useState([]);
96
-
97
- const [audioDevices, setAudioDevices] = _react.default.useState([]);
98
-
99
- const [selectedAudioDevice, setSelectedAudioDevice] = _react.default.useState(null);
100
-
101
- const [consumers] = _react.default.useState(new Map());
102
-
103
- const [soundLevel, setSoundLevel] = _react.default.useState(0);
104
-
105
- const [eventHandler] = (0, _react.useState)({});
106
- const videoRef = (0, _react.useRef)();
107
- const videoStream = (0, _react.useRef)();
108
- const audioRef = (0, _react.useRef)();
109
- const tracks = (0, _react.useRef)(new _Tracks.default());
110
- const soundLevelCounter = (0, _react.useRef)(0);
111
- const showVideo = true;
112
- const {
113
- consumerTransport,
114
- device
115
- } = props;
116
- const {
117
- numberOfInViewParticipants
118
- } = props;
119
- const [anchorEl, setAnchorEl] = (0, _react.useState)(null);
120
- const openMoreActions = Boolean(anchorEl);
121
- const [downloadUrl, setDownloadUrl] = (0, _react.useState)(null);
122
-
123
- const handler = () => {
101
+ var location = window.location.protocol + '//' + window.location.hostname;
102
+
103
+ var VCRoomParticipant = function VCRoomParticipant(props) {
104
+ var _React$useState = _react.default.useState(false),
105
+ _React$useState2 = _slicedToArray(_React$useState, 2),
106
+ handRaised = _React$useState2[0],
107
+ setHandRaised = _React$useState2[1];
108
+
109
+ var _React$useState3 = _react.default.useState(props.videoMuted),
110
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
111
+ videoMuted = _React$useState4[0],
112
+ setVideoMuted = _React$useState4[1];
113
+
114
+ var _React$useState5 = _react.default.useState(props.audioMuted),
115
+ _React$useState6 = _slicedToArray(_React$useState5, 2),
116
+ audioMuted = _React$useState6[0],
117
+ setAudioMuted = _React$useState6[1];
118
+
119
+ var _React$useState7 = _react.default.useState(props.producerTransport),
120
+ _React$useState8 = _slicedToArray(_React$useState7, 2),
121
+ producerTransport = _React$useState8[0],
122
+ setProducerTransport = _React$useState8[1];
123
+
124
+ var _React$useState9 = _react.default.useState(false),
125
+ _React$useState10 = _slicedToArray(_React$useState9, 2),
126
+ videoRefresher = _React$useState10[0],
127
+ setVideoRefresher = _React$useState10[1];
128
+
129
+ var _React$useState11 = _react.default.useState(new Map()),
130
+ _React$useState12 = _slicedToArray(_React$useState11, 1),
131
+ producers = _React$useState12[0];
132
+
133
+ var _React$useState13 = _react.default.useState([]),
134
+ _React$useState14 = _slicedToArray(_React$useState13, 1),
135
+ failedProducersDueToNullTransport = _React$useState14[0];
136
+
137
+ var _React$useState15 = _react.default.useState([]),
138
+ _React$useState16 = _slicedToArray(_React$useState15, 2),
139
+ audioDevices = _React$useState16[0],
140
+ setAudioDevices = _React$useState16[1];
141
+
142
+ var _React$useState17 = _react.default.useState(null),
143
+ _React$useState18 = _slicedToArray(_React$useState17, 2),
144
+ selectedAudioDevice = _React$useState18[0],
145
+ setSelectedAudioDevice = _React$useState18[1];
146
+
147
+ var _React$useState19 = _react.default.useState(new Map()),
148
+ _React$useState20 = _slicedToArray(_React$useState19, 1),
149
+ consumers = _React$useState20[0];
150
+
151
+ var _React$useState21 = _react.default.useState(0),
152
+ _React$useState22 = _slicedToArray(_React$useState21, 2),
153
+ soundLevel = _React$useState22[0],
154
+ setSoundLevel = _React$useState22[1];
155
+
156
+ var _useState = (0, _react.useState)({}),
157
+ _useState2 = _slicedToArray(_useState, 1),
158
+ eventHandler = _useState2[0];
159
+
160
+ var videoRef = (0, _react.useRef)();
161
+ var videoStream = (0, _react.useRef)();
162
+ var audioRef = (0, _react.useRef)();
163
+ var tracks = (0, _react.useRef)(new _Tracks.default());
164
+ var soundLevelCounter = (0, _react.useRef)(0);
165
+ var showVideo = true;
166
+ var consumerTransport = props.consumerTransport,
167
+ device = props.device,
168
+ participants = props.participants;
169
+ var numberOfInViewParticipants = props.numberOfInViewParticipants;
170
+
171
+ var _useState3 = (0, _react.useState)(null),
172
+ _useState4 = _slicedToArray(_useState3, 2),
173
+ anchorEl = _useState4[0],
174
+ setAnchorEl = _useState4[1];
175
+
176
+ var openMoreActions = Boolean(anchorEl);
177
+
178
+ var _useState5 = (0, _react.useState)(null),
179
+ _useState6 = _slicedToArray(_useState5, 2),
180
+ downloadUrl = _useState6[0],
181
+ setDownloadUrl = _useState6[1];
182
+
183
+ var handler = function handler() {
124
184
  return {
125
185
  get id() {
126
186
  return 'meeting-participant-' + props.data.userId;
127
187
  },
128
188
 
129
- on: (eventType, be) => {
189
+ on: function on(eventType, be) {
130
190
  switch (eventType) {
131
191
  case _VCEventType.VCEventType.AUDIO_VISUAL_SETTINGS_CHANGED:
132
192
  onAVSettingsChange(be.payload ? be.payload : be);
@@ -155,37 +215,37 @@ const VCRoomParticipant = props => {
155
215
  };
156
216
  };
157
217
 
158
- const handleClickDevicesIcon = event => {
218
+ var handleClickDevicesIcon = function handleClickDevicesIcon(event) {
159
219
  setAnchorEl(event.currentTarget);
160
220
  };
161
221
 
162
- const changeAudioDevice = device => {
222
+ var changeAudioDevice = function changeAudioDevice(device) {
163
223
  setSelectedAudioDevice(device);
164
224
  };
165
225
 
166
- const onRaiseHand = payload => {
226
+ var onRaiseHand = function onRaiseHand(payload) {
167
227
  if (payload && payload.userId === props.data.userId) {
168
228
  setHandRaised(true);
169
229
  props.data.handRaised = true;
170
230
  }
171
231
  };
172
232
 
173
- const onLowerHand = payload => {
233
+ var onLowerHand = function onLowerHand(payload) {
174
234
  if (payload && payload.userId === props.data.userId) {
175
235
  setHandRaised(false);
176
236
  props.data.handRaised = false;
177
237
  }
178
238
  };
179
239
 
180
- (0, _react.useEffect)(() => {
240
+ (0, _react.useEffect)(function () {
181
241
  eventHandler.api = handler();
182
242
  });
183
- (0, _react.useEffect)(() => {
243
+ (0, _react.useEffect)(function () {
184
244
  if (videoRef.current && videoStream.current) {
185
245
  videoRef.current.srcObject = videoStream.current;
186
246
  }
187
247
  }, [videoRef.current]);
188
- (0, _react.useEffect)(() => {
248
+ (0, _react.useEffect)(function () {
189
249
  if (props.soundMonitor && !props.inView) {
190
250
  if (soundLevel > 3) {
191
251
  soundLevelCounter.current = 10;
@@ -196,7 +256,7 @@ const VCRoomParticipant = props => {
196
256
  props.soundMonitor(props.data.userId, soundLevelCounter.current === 0 || audioMuted);
197
257
  }
198
258
  }, [soundLevel]);
199
- (0, _react.useEffect)(() => {
259
+ (0, _react.useEffect)(function () {
200
260
  if (audioMuted) {
201
261
  setSoundLevel(0);
202
262
 
@@ -206,11 +266,11 @@ const VCRoomParticipant = props => {
206
266
  }
207
267
  }, [audioMuted]);
208
268
 
209
- const handleCloseDeviceMenu = () => {
269
+ var handleCloseDeviceMenu = function handleCloseDeviceMenu() {
210
270
  setAnchorEl(null);
211
271
  };
212
272
 
213
- const onAVSettingsChange = payload => {
273
+ var onAVSettingsChange = function onAVSettingsChange(payload) {
214
274
  if (props.data.userId === payload.userId) {
215
275
  if (props.isCurrentUser) {
216
276
  if (payload.audioMuted) {
@@ -235,18 +295,18 @@ const VCRoomParticipant = props => {
235
295
  } else if (props.isCurrentUser) {}
236
296
  };
237
297
 
238
- (0, _react.useEffect)(() => {
298
+ (0, _react.useEffect)(function () {
239
299
  if (props.data && !_Utils.default.isNull(props.data.avatarId) && props.data.avatarId !== 'undefined' && props.data.avatarId !== 'null') {
240
300
  setDownloadUrl(location + _ApplicationManager.default.getContextRoot() + '/docs/api/v1/manager/download/' + props.data.avatarId + '?access_token=' + sessionStorage.getItem('accessToken') + '&idToken=' + sessionStorage.getItem('idToken'));
241
301
  }
242
302
  }, [props.data]);
243
- (0, _react.useEffect)(() => {
303
+ (0, _react.useEffect)(function () {
244
304
  setAudioMuted(props.audioMuted);
245
305
  }, [props.audioMuted]);
246
- (0, _react.useEffect)(() => {
306
+ (0, _react.useEffect)(function () {
247
307
  setVideoMuted(props.videoMuted);
248
308
  }, [props.videoMuted]);
249
- (0, _react.useEffect)(() => {
309
+ (0, _react.useEffect)(function () {
250
310
  if (producerTransport) {
251
311
  if (props.videoMuted) {
252
312
  stopProducing('video');
@@ -261,13 +321,13 @@ const VCRoomParticipant = props => {
261
321
  }
262
322
  }
263
323
  }, [producerTransport]);
264
- (0, _react.useEffect)(() => {
324
+ (0, _react.useEffect)(function () {
265
325
  setProducerTransport(props.producerTransport);
266
326
  }, [props.producerTransport]);
267
- (0, _react.useEffect)(() => {
327
+ (0, _react.useEffect)(function () {
268
328
  if (props.isCurrentUser) {
269
329
  props.onAudioDeviceChange(selectedAudioDevice);
270
- stopProducing('audio', () => {
330
+ stopProducing('audio', function () {
271
331
  if (selectedAudioDevice) {
272
332
  if (!producerTransport) {
273
333
  createProducerTransport();
@@ -278,7 +338,7 @@ const VCRoomParticipant = props => {
278
338
  });
279
339
  }
280
340
  }, [selectedAudioDevice]);
281
- (0, _react.useEffect)(() => {
341
+ (0, _react.useEffect)(function () {
282
342
  if (consumerTransport) {
283
343
  console.log('TRANSI ARRIVED WITH PRODUCERS : ', props.data.producers);
284
344
 
@@ -292,26 +352,68 @@ const VCRoomParticipant = props => {
292
352
  if (producers) {
293
353
  console.log('RE-INSTATING CONSUMERS');
294
354
 
295
- for (let [key, value] of producers) {
296
- console.log('PROCESSING PRODUCER OF TYPE : ' + key + ' : ' + value.id);
355
+ var _iterator = _createForOfIteratorHelper(producers),
356
+ _step;
357
+
358
+ try {
359
+ var _loop = function _loop() {
360
+ var _step$value = _slicedToArray(_step.value, 2),
361
+ key = _step$value[0],
362
+ value = _step$value[1];
363
+
364
+ console.log('PROCESSING PRODUCER OF TYPE : ' + key + ' : ' + value.id);
297
365
 
298
- if (!(props.data.producers && (void 0).props.data.producers.find(p => p.producerId === value.id))) {
299
- consume(value.id, key, true, value.userId);
300
- } else {
301
- console.log('PRODUCER ALREADY PROCESSED');
366
+ if (!(props.data.producers && _this.props.data.producers.find(function (p) {
367
+ return p.producerId === value.id;
368
+ }))) {
369
+ consume(value.id, key, true, value.userId);
370
+ } else {
371
+ console.log('PRODUCER ALREADY PROCESSED');
372
+ }
373
+ };
374
+
375
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
376
+ _loop();
302
377
  }
378
+ } catch (err) {
379
+ _iterator.e(err);
380
+ } finally {
381
+ _iterator.f();
303
382
  }
304
383
  }
305
384
  }
306
385
  }, [consumerTransport]);
307
386
 
308
- const createProducerTransport = async () => {
309
- setProducerTransport(await _MediaSoupHelper.default.initProducerTransport(props.device, props.meetingId, sessionStorage.getItem('username')));
310
- };
387
+ var createProducerTransport = /*#__PURE__*/function () {
388
+ var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
389
+ return regeneratorRuntime.wrap(function _callee$(_context) {
390
+ while (1) {
391
+ switch (_context.prev = _context.next) {
392
+ case 0:
393
+ _context.t0 = setProducerTransport;
394
+ _context.next = 3;
395
+ return _MediaSoupHelper.default.initProducerTransport(props.device, props.meetingId, sessionStorage.getItem('username'));
396
+
397
+ case 3:
398
+ _context.t1 = _context.sent;
399
+ (0, _context.t0)(_context.t1);
400
+
401
+ case 5:
402
+ case "end":
403
+ return _context.stop();
404
+ }
405
+ }
406
+ }, _callee);
407
+ }));
408
+
409
+ return function createProducerTransport() {
410
+ return _ref.apply(this, arguments);
411
+ };
412
+ }();
311
413
 
312
- const handleDevicesChanged = devices => {
313
- let audioDeviceList = [];
314
- devices.forEach(device => {
414
+ var handleDevicesChanged = function handleDevicesChanged(devices) {
415
+ var audioDeviceList = [];
416
+ devices.forEach(function (device) {
315
417
  if ('audioinput' === device.kind) {
316
418
  audioDeviceList.push({
317
419
  id: device.deviceId,
@@ -328,24 +430,28 @@ const VCRoomParticipant = props => {
328
430
  }
329
431
  };
330
432
 
331
- (0, _react.useEffect)(() => {
433
+ (0, _react.useEffect)(function () {
332
434
  _VCEventManager.default.removeSubscriptions(eventHandler);
333
435
 
334
436
  _VCEventManager.default.addSubscriptions(eventHandler, _VCEventType.VCEventType.AUDIO_VISUAL_SETTINGS_CHANGED, _VCEventType.VCEventType.RAISE_HAND, _VCEventType.VCEventType.LOWER_HAND, _VCEventType.VCEventType.NEW_PRODUCERS, _VCEventType.VCEventType.CONSUMER_CLOSED);
335
437
 
336
438
  if (props.isCurrentUser) {
337
- navigator.mediaDevices.ondevicechange = () => {
338
- navigator.mediaDevices.enumerateDevices().then(devices => {
439
+ navigator.mediaDevices.ondevicechange = function () {
440
+ navigator.mediaDevices.enumerateDevices().then(function (devices) {
339
441
  handleDevicesChanged(devices);
340
442
  });
341
443
  };
342
444
 
343
- navigator.mediaDevices.enumerateDevices().then(devices => {
445
+ navigator.mediaDevices.enumerateDevices().then(function (devices) {
344
446
  handleDevicesChanged(devices);
345
447
  });
346
448
  }
347
449
 
348
- return () => {
450
+ if (props.isCurrentUser) {
451
+ consumeFailedProducers();
452
+ }
453
+
454
+ return function () {
349
455
  console.log('======================DESTROYING PARTICIPANT========================= : ' + props.data.userId);
350
456
 
351
457
  if (props.isCurrentUser) {
@@ -353,114 +459,185 @@ const VCRoomParticipant = props => {
353
459
  stopProducing('video');
354
460
  }
355
461
 
356
- for (let [key, value] of consumers) {
357
- removeConsumer(key, 'video');
462
+ var _iterator2 = _createForOfIteratorHelper(consumers),
463
+ _step2;
464
+
465
+ try {
466
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
467
+ var _step2$value = _slicedToArray(_step2.value, 2),
468
+ key = _step2$value[0],
469
+ value = _step2$value[1];
470
+
471
+ removeConsumer(key, 'video');
472
+ }
473
+ } catch (err) {
474
+ _iterator2.e(err);
475
+ } finally {
476
+ _iterator2.f();
358
477
  }
359
478
 
360
479
  _VCEventManager.default.removeSubscriptions(eventHandler);
361
480
  };
362
481
  }, []);
363
482
 
364
- const produce = async type => {
365
- if (!device) {
366
- console.error('No available device');
367
- return;
368
- }
369
-
370
- if (!device.canProduce('video') && type === 'video') {
371
- console.error('Cannot produce video');
372
- return;
373
- }
374
-
375
- if (!selectedAudioDevice && type === 'audio') {
376
- console.error('No audio device selected');
377
- return;
378
- }
379
-
380
- if (producers.has(type)) {
381
- console.log('Producer already exists for this type ' + type);
382
- return;
383
- }
384
-
385
- let mediaConstraints;
386
-
387
- switch (type) {
388
- case 'audio':
389
- mediaConstraints = {
390
- deviceId: selectedAudioDevice.id,
391
- audio: true,
392
- video: false
393
- };
394
- break;
395
-
396
- case 'video':
397
- mediaConstraints = VIDEO_CONSTRAINTS;
398
- break;
399
-
400
- default:
401
- return;
402
- }
483
+ var produce = /*#__PURE__*/function () {
484
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(type) {
485
+ var mediaConstraints, stream, track, params, producer;
486
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
487
+ while (1) {
488
+ switch (_context2.prev = _context2.next) {
489
+ case 0:
490
+ if (device) {
491
+ _context2.next = 3;
492
+ break;
493
+ }
494
+
495
+ console.error('No available device');
496
+ return _context2.abrupt("return");
497
+
498
+ case 3:
499
+ if (!(!device.canProduce('video') && type === 'video')) {
500
+ _context2.next = 6;
501
+ break;
502
+ }
503
+
504
+ console.error('Cannot produce video');
505
+ return _context2.abrupt("return");
506
+
507
+ case 6:
508
+ if (!(!selectedAudioDevice && type === 'audio')) {
509
+ _context2.next = 9;
510
+ break;
511
+ }
512
+
513
+ console.error('No audio device selected');
514
+ return _context2.abrupt("return");
515
+
516
+ case 9:
517
+ if (!producers.has(type)) {
518
+ _context2.next = 12;
519
+ break;
520
+ }
521
+
522
+ console.log('Producer already exists for this type ' + type);
523
+ return _context2.abrupt("return");
524
+
525
+ case 12:
526
+ _context2.t0 = type;
527
+ _context2.next = _context2.t0 === 'audio' ? 15 : _context2.t0 === 'video' ? 17 : 19;
528
+ break;
529
+
530
+ case 15:
531
+ mediaConstraints = {
532
+ deviceId: selectedAudioDevice.id,
533
+ audio: true,
534
+ video: false
535
+ };
536
+ return _context2.abrupt("break", 20);
537
+
538
+ case 17:
539
+ mediaConstraints = VIDEO_CONSTRAINTS;
540
+ return _context2.abrupt("break", 20);
541
+
542
+ case 19:
543
+ return _context2.abrupt("return");
544
+
545
+ case 20:
546
+ _context2.next = 22;
547
+ return navigator.mediaDevices.getUserMedia(mediaConstraints);
548
+
549
+ case 22:
550
+ stream = _context2.sent;
551
+ track = type === 'audio' ? stream.getAudioTracks()[0] : stream.getVideoTracks()[0];
552
+ params = {
553
+ track: track
554
+ };
555
+ audioRef.current = stream;
556
+
557
+ if (props.isHost && type === 'audio') {
558
+ _VCRoomRecorder.default.addTrack(props.data.userId, track);
559
+
560
+ tracks.current.setAudioTrack(track);
561
+ }
562
+
563
+ if (type === 'video') {
564
+ params.encodings = VIDEO_ENCODINGS;
565
+ params.codecOptions = VIDEO_CODEC_OPTIONS;
566
+ tracks.current.setVideoTrack(track);
567
+ }
568
+
569
+ _context2.prev = 28;
570
+ _context2.next = 31;
571
+ return producerTransport.produce(params);
572
+
573
+ case 31:
574
+ producer = _context2.sent;
575
+ _context2.next = 37;
576
+ break;
577
+
578
+ case 34:
579
+ _context2.prev = 34;
580
+ _context2.t1 = _context2["catch"](28);
581
+ console.log(_context2.t1);
582
+
583
+ case 37:
584
+ if (producer) {
585
+ producerTransport.getStats().then(function (data) {
586
+ return console.log(data);
587
+ });
588
+ producers.set(type, producer);
589
+
590
+ if (type === 'video') {
591
+ videoRef.current.srcObject = stream;
592
+ videoStream.current = stream;
593
+ setVideoRefresher(!videoRefresher);
594
+ console.log(stream);
595
+ }
596
+
597
+ producer.on('transportclose', function () {
598
+ stream.srcObject.getTracks().forEach(function (track) {
599
+ track.stop();
600
+ });
601
+ producers.delete(type);
602
+ });
603
+ producer.on('close', function () {
604
+ stream.srcObject.getTracks().forEach(function (track) {
605
+ track.stop();
606
+ });
607
+ producers.delete(type);
608
+ });
609
+ }
610
+
611
+ case 38:
612
+ case "end":
613
+ return _context2.stop();
614
+ }
615
+ }
616
+ }, _callee2, null, [[28, 34]]);
617
+ }));
403
618
 
404
- let stream = await navigator.mediaDevices.getUserMedia(mediaConstraints);
405
- const track = type === 'audio' ? stream.getAudioTracks()[0] : stream.getVideoTracks()[0];
406
- const params = {
407
- track
619
+ return function produce(_x) {
620
+ return _ref2.apply(this, arguments);
408
621
  };
409
- audioRef.current = stream;
410
-
411
- if (props.isHost && type === 'audio') {
412
- _VCRoomRecorder.default.addTrack(props.data.userId, track);
413
-
414
- tracks.current.setAudioTrack(track);
415
- }
416
-
417
- if (type === 'video') {
418
- params.encodings = VIDEO_ENCODINGS;
419
- params.codecOptions = VIDEO_CODEC_OPTIONS;
420
- tracks.current.setVideoTrack(track);
421
- }
422
-
423
- let producer;
424
-
425
- try {
426
- producer = await producerTransport.produce(params);
427
- } catch (e) {
428
- console.log(e);
429
- }
622
+ }();
430
623
 
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);
624
+ var consumeFailedProducers = function consumeFailedProducers() {
625
+ setTimeout(function () {
626
+ if (consumerTransport) {
627
+ onNewProducers(failedProducersDueToNullTransport, true);
628
+ failedProducersDueToNullTransport.splice(0, failedProducersDueToNullTransport.length);
629
+ consumeFailedProducers();
440
630
  }
441
-
442
- producer.on('transportclose', () => {
443
- stream.srcObject.getTracks().forEach(function (track) {
444
- track.stop();
445
- });
446
- producers.delete(type);
447
- });
448
- producer.on('close', () => {
449
- stream.srcObject.getTracks().forEach(function (track) {
450
- track.stop();
451
- });
452
- producers.delete(type);
453
- });
454
- }
631
+ }, 5000);
455
632
  };
456
633
 
457
- const stopProducing = (type, callback) => {
634
+ var stopProducing = function stopProducing(type, callback) {
458
635
  if (!producers.has(type)) {
459
636
  console.log('There is no producer for this type ' + type);
460
637
  return;
461
638
  }
462
639
 
463
- let producerId = producers.get(type).id;
640
+ var producerId = producers.get(type).id;
464
641
  console.log('Close producer', producerId);
465
642
  producers.get(type).close();
466
643
  producers.delete(type);
@@ -481,35 +658,53 @@ const VCRoomParticipant = props => {
481
658
 
482
659
  _SocketManager.default.emitEvent(_VCEventType.VCEventType.PRODUCER_CLOSED, {
483
660
  userId: props.data.userId,
484
- producerId,
661
+ producerId: producerId,
485
662
  roomId: props.meetingId
486
- }).then(data => {}).catch(e => console.log('PRODUCER_CLOSED ERROR : ', e));
663
+ }).then(function (data) {}).catch(function (e) {
664
+ return console.log('PRODUCER_CLOSED ERROR : ', e);
665
+ });
487
666
  };
488
667
 
489
- const onNewProducers = (producers, loading = false) => {
490
- for (const producer of producers) {
491
- if (consumerTransport) {
492
- if (producer.userId === props.data.userId) {
493
- if (producer.kind === 'video' && !producer.screenSharing) {
494
- console.log('CALLING CONSUME FROM ON NEW PRODUCERS FOR : ' + props.data.userId + ' - ' + producer.producerId);
495
- consume(producer.producerId, producer.kind, loading, producer.userId);
668
+ var onNewProducers = function onNewProducers(producers) {
669
+ var loading = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
670
+ console.log("====== PRODUCERS RECEIVED : [ " + JSON.stringify(producers) + " ] =======");
671
+
672
+ var _iterator3 = _createForOfIteratorHelper(producers),
673
+ _step3;
674
+
675
+ try {
676
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
677
+ var producer = _step3.value;
678
+
679
+ if (consumerTransport) {
680
+ if (producer.userId === props.data.userId) {
681
+ if (producer.kind === 'video' && !producer.screenSharing) {
682
+ console.log('CALLING CONSUME FROM ON NEW PRODUCERS FOR : ' + props.data.userId + ' - ' + producer.producerId);
683
+ consume(producer.producerId, producer.kind, loading, producer.userId);
684
+ }
496
685
  }
497
- }
498
686
 
499
- if (props.isCurrentUser || loading) {
500
- // The small participant box at the bottom belonging to the current user must consume all audio
501
- // This is because we do not want to disturb the audio due to any rendering such as Bring to view
502
- if (producer.kind === 'audio') {
503
- consume(producer.producerId, producer.kind, loading, producer.userId);
687
+ if (props.isCurrentUser || loading) {
688
+ // The small participant box at the bottom belonging to the current user must consume all audio
689
+ // This is because we do not want to disturb the audio due to any rendering such as Bring to view
690
+ if (producer.kind === 'audio') {
691
+ consume(producer.producerId, producer.kind, loading, producer.userId);
692
+ }
504
693
  }
694
+ } else {
695
+ failedProducersDueToNullTransport.push(producer);
505
696
  }
506
- } else {
507
- failedProducersDueToNullTransport.push(producer);
508
697
  }
698
+ } catch (err) {
699
+ _iterator3.e(err);
700
+ } finally {
701
+ _iterator3.f();
509
702
  }
703
+
704
+ console.log("====== PRODUCERS THAT COULD NOT BE CONSUMES : [ " + JSON.stringify(failedProducersDueToNullTransport) + " ] =======");
510
705
  };
511
706
 
512
- const removeConsumer = (consumerId, kind, userId) => {
707
+ var removeConsumer = function removeConsumer(consumerId, kind, userId) {
513
708
  if (kind === 'video') {
514
709
  if (videoStream.current) {
515
710
  if (videoStream.current) {
@@ -519,7 +714,7 @@ const VCRoomParticipant = props => {
519
714
  }
520
715
  }
521
716
  } else if (kind === 'audio') {
522
- let audioElement = document.getElementById(consumerId);
717
+ var audioElement = document.getElementById(consumerId);
523
718
 
524
719
  if (audioElement && audioElement.srcObject) {
525
720
  audioElement.srcObject.getTracks().forEach(function (track) {
@@ -530,7 +725,7 @@ const VCRoomParticipant = props => {
530
725
  _VCRoomRecorder.default.removeTrack(userId);
531
726
  }
532
727
 
533
- let elementById = document.getElementById(props.data.userId + '-audio-el-container');
728
+ var elementById = document.getElementById(props.data.userId + '-audio-el-container');
534
729
 
535
730
  if (elementById) {
536
731
  elementById.removeChild(audioElement);
@@ -541,52 +736,101 @@ const VCRoomParticipant = props => {
541
736
  consumers.delete(consumerId);
542
737
  };
543
738
 
544
- const consume = async (producerId, kind, loading, userId) => {
545
- _MediaSoupHelper.default.getConsumeStream(producerId, device.rtpCapabilities, consumerTransport, props.meetingId, sessionStorage.getItem('username'), kind).then(({
546
- consumer,
547
- stream,
548
- kind
549
- }) => {
550
- if (consumer) {
551
- consumers.set(consumer.id, consumer);
552
- console.log('=====================================CONSUME===================================== : ' + kind + ' FOR : ' + userId);
553
-
554
- if (kind === 'video') {
555
- if (videoRef.current) {
556
- videoRef.current.srcObject = stream;
557
- }
739
+ function retryConsume(kind, userId, e, retries, producerId, loading) {
740
+ console.log('FAILED TO CONSUME ' + kind + ' FROM ' + userId);
741
+ console.log(e);
558
742
 
559
- videoStream.current = stream;
560
- setVideoMuted(false);
561
- setVideoRefresher(!videoRefresher);
562
- tracks.current.setVideoTrack(stream.getVideoTracks()[0]);
563
- } else {
564
- if (props.isCurrentUser || loading) {
565
- let audioElement = document.createElement('audio');
566
- audioElement.srcObject = stream;
567
- audioElement.id = consumer.id;
568
- audioElement.playsinline = false;
569
- audioElement.autoplay = true;
570
- document.getElementById('meeting-audio-el-container').appendChild(audioElement);
571
-
572
- if (props.isHost) {
573
- _VCRoomRecorder.default.addTrack(userId, stream.getAudioTracks()[0]);
574
- }
743
+ if (retries < 10) {
744
+ console.log('RE-TRYING [' + retries + ']');
745
+ setTimeout(function () {
746
+ consume(producerId, kind, loading, userId, retries);
747
+ }, 5000);
748
+ } else {
749
+ console.log('COMPLETELY FAILED TO CONSUME ' + kind + ' FROM ' + userId);
750
+ }
751
+ }
752
+
753
+ var consume = /*#__PURE__*/function () {
754
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(producerId, kind, loading, userId) {
755
+ var retries,
756
+ _args3 = arguments;
757
+ return regeneratorRuntime.wrap(function _callee3$(_context3) {
758
+ while (1) {
759
+ switch (_context3.prev = _context3.next) {
760
+ case 0:
761
+ retries = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : 0;
762
+
763
+ _MediaSoupHelper.default.getConsumeStream(producerId, device.rtpCapabilities, consumerTransport, props.meetingId, sessionStorage.getItem('username'), kind).then(function (_ref4) {
764
+ var consumer = _ref4.consumer,
765
+ stream = _ref4.stream,
766
+ kind = _ref4.kind;
767
+
768
+ if (consumer) {
769
+ consumers.set(consumer.id, consumer);
770
+ console.log('=====================================CONSUME===================================== : ' + kind + ' FOR : ' + userId);
771
+
772
+ if (kind === 'video') {
773
+ if (videoRef.current) {
774
+ videoRef.current.srcObject = stream;
775
+ }
776
+
777
+ videoStream.current = stream;
778
+ setVideoMuted(false);
779
+ setVideoRefresher(!videoRefresher);
780
+ tracks.current.setVideoTrack(stream.getVideoTracks()[0]);
781
+ } else {
782
+ if (props.isCurrentUser || loading) {
783
+ var audioElement = document.createElement('audio');
784
+ audioElement.srcObject = stream;
785
+ audioElement.id = consumer.id;
786
+ audioElement.playsinline = false;
787
+ audioElement.autoplay = true;
788
+ document.getElementById('meeting-audio-el-container').appendChild(audioElement);
789
+
790
+ if (props.isHost) {
791
+ _VCRoomRecorder.default.addTrack(userId, stream.getAudioTracks()[0]);
792
+ }
793
+ }
794
+ }
795
+
796
+ consumer.on('trackended', function () {
797
+ console.log(kind + " CONSUMER TRACK ENDED FOR " + userId);
798
+ removeConsumer(consumer.id, kind, userId);
799
+ var participantVideoMuted = participants.find(function (p) {
800
+ return p.userId === userId;
801
+ }).videoMuted;
802
+ var participantAudioMuted = participants.find(function (p) {
803
+ return p.userId === userId;
804
+ }).audioMuted;
805
+
806
+ if (kind === 'video' && !participantVideoMuted || kind === 'audio' && !participantAudioMuted) {
807
+ retryConsume(kind, userId, new Error('trackended while ' + kind + ' is NOT muted'), retries, producerId, loading);
808
+ }
809
+ });
810
+ consumer.on('transportclose', function () {
811
+ console.log(kind + " CONSUMER CLOSED FOR " + userId);
812
+ removeConsumer(consumer.id, kind, userId);
813
+ });
814
+ }
815
+ }).catch(function (e) {
816
+ retryConsume(kind, userId, e, retries, producerId, loading);
817
+ });
818
+
819
+ case 2:
820
+ case "end":
821
+ return _context3.stop();
575
822
  }
576
823
  }
824
+ }, _callee3);
825
+ }));
577
826
 
578
- consumer.on('trackended', () => {
579
- removeConsumer(consumer.id, kind, userId);
580
- });
581
- consumer.on('transportclose', () => {
582
- removeConsumer(consumer.id, kind, userId);
583
- });
584
- }
585
- });
586
- };
827
+ return function consume(_x2, _x3, _x4, _x5) {
828
+ return _ref3.apply(this, arguments);
829
+ };
830
+ }();
587
831
 
588
- const getParticipantName = () => {
589
- let name = props.data.name;
832
+ var getParticipantName = function getParticipantName() {
833
+ var name = props.data.name;
590
834
 
591
835
  if (_Utils.default.isNull(props.data.userId)) {
592
836
  name = "".concat(name, " (Guest)");
@@ -668,7 +912,7 @@ const VCRoomParticipant = props => {
668
912
  marginLeft: '4px'
669
913
  }
670
914
  }, props.isHost && !audioMuted ? /*#__PURE__*/_react.default.createElement(_IconButton.default, {
671
- onClick: e => {
915
+ onClick: function onClick(e) {
672
916
  props.onHostAudioMute(props.data);
673
917
  },
674
918
  style: {
@@ -684,7 +928,7 @@ const VCRoomParticipant = props => {
684
928
  }) : /*#__PURE__*/_react.default.createElement(_Icon.default, {
685
929
  id: 'MIC'
686
930
  })), props.isHost && !videoMuted && /*#__PURE__*/_react.default.createElement(_IconButton.default, {
687
- onClick: e => {
931
+ onClick: function onClick(e) {
688
932
  props.onHostVideoMute(props.data);
689
933
  },
690
934
  style: {
@@ -784,9 +1028,11 @@ const VCRoomParticipant = props => {
784
1028
  horizontal: 'right',
785
1029
  vertical: 'top'
786
1030
  }
787
- }, audioDevices.map((device, index) => {
1031
+ }, audioDevices.map(function (device, index) {
788
1032
  return /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
789
- onClick: () => changeAudioDevice(device)
1033
+ onClick: function onClick() {
1034
+ return changeAudioDevice(device);
1035
+ }
790
1036
  }, /*#__PURE__*/_react.default.createElement("span", {
791
1037
  style: {
792
1038
  color: selectedAudioDevice && selectedAudioDevice.id === device.id ? '#198754' : null