fcr-ui-scene 3.8.0-alpha → 3.8.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 (54) hide show
  1. package/lib/fragments/whiteboard/store.js +1 -1
  2. package/lib/modules/caption/draggable-container/index.js +34 -12
  3. package/lib/modules/caption/store.d.ts +1 -4
  4. package/lib/modules/caption/store.js +10 -18
  5. package/lib/modules/caption/view.js +16 -27
  6. package/lib/modules/chat/store.d.ts +1 -0
  7. package/lib/modules/chat/store.js +2 -2
  8. package/lib/modules/components/caption-menu/index.d.ts +2 -0
  9. package/lib/modules/components/caption-menu/index.js +13 -10
  10. package/lib/modules/components/caption-menu/participants-privilege-control-options.js +5 -19
  11. package/lib/modules/components/caption-menu/translation-setting-options.js +31 -24
  12. package/lib/modules/control-bar/components/carmera/index.js +7 -39
  13. package/lib/modules/control-bar/components/cloud-recording-buttons.js +18 -33
  14. package/lib/modules/control-bar/components/microphone/index.js +3 -43
  15. package/lib/modules/control-bar/components/share-audio/index.d.ts +2 -0
  16. package/lib/modules/control-bar/components/share-audio/index.js +4 -10
  17. package/lib/modules/control-bar/hooks.d.ts +1 -0
  18. package/lib/modules/control-bar/hooks.js +140 -1
  19. package/lib/modules/control-bar/store.d.ts +3 -4
  20. package/lib/modules/control-bar/store.js +37 -30
  21. package/lib/modules/control-bar/type.d.ts +3 -0
  22. package/lib/modules/control-bar/view.js +40 -57
  23. package/lib/modules/dialog/components/confirm/index.js +0 -1
  24. package/lib/modules/dialog/components/dialog-container/index.js +1 -0
  25. package/lib/modules/event-toast/index.js +7 -1
  26. package/lib/modules/layout/store.base.d.ts +1 -1
  27. package/lib/modules/layout/store.electron.d.ts +0 -1
  28. package/lib/modules/layout/store.electron.js +37 -133
  29. package/lib/modules/participant/store.base.js +8 -10
  30. package/lib/modules/secondary-window/store.js +1 -3
  31. package/lib/modules/setting/audio-whiteList/audio-device-adaptation.d.ts +28 -0
  32. package/lib/modules/setting/audio-whiteList/audio-device-adaptation.js +41 -5
  33. package/lib/modules/setting/audio-whiteList/audio-whiteList-manager.d.ts +3 -14
  34. package/lib/modules/setting/audio-whiteList/audio-whiteList-manager.js +45 -24
  35. package/lib/modules/setting/index.js +4 -2
  36. package/lib/modules/setting/store.base.d.ts +5 -3
  37. package/lib/modules/setting/store.base.js +64 -43
  38. package/lib/modules/setting/store.electron.d.ts +1 -1
  39. package/lib/modules/setting/store.electron.js +3 -7
  40. package/lib/modules/setting/view.js +3 -2
  41. package/lib/modules/share-screen/store.electron.js +51 -23
  42. package/lib/modules/subtitles-history/components/list-item.js +4 -7
  43. package/lib/modules/subtitles-history/store.base.d.ts +3 -1
  44. package/lib/modules/subtitles-history/store.base.js +11 -1
  45. package/lib/providers/screen-share/provider.base.d.ts +2 -13
  46. package/lib/providers/screen-share/provider.base.js +5 -12
  47. package/lib/providers/screen-share/provider.electron.d.ts +0 -5
  48. package/lib/providers/screen-share/provider.electron.js +31 -18
  49. package/lib/providers/screen-share/type.d.ts +0 -16
  50. package/lib/providers/stt-provider/stt-provider.d.ts +3 -4
  51. package/lib/providers/stt-provider/stt-provider.js +145 -146
  52. package/lib/providers/stt-provider/type.d.ts +2 -10
  53. package/lib/providers/stt-provider/type.js +3 -3
  54. package/package.json +8 -8
@@ -15,7 +15,6 @@ var _type2 = require("agora-ui-foundation/lib/components/icon/type");
15
15
  var _tooltip = require("agora-ui-foundation/lib/components/tooltip");
16
16
  var _store = require("../store");
17
17
  var _i18n = require("agora-ui-foundation/lib/i18n");
18
- var _boundaryDetector = require("./boundary-detector");
19
18
  var _popover = require("agora-ui-foundation/lib/components/popover");
20
19
  var _context = require("../context");
21
20
  var _jsxRuntime = require("react/jsx-runtime");
@@ -77,48 +76,34 @@ var CloudRecordingButtons = exports.CloudRecordingButtons = (0, _mobxReact.obser
77
76
  var StopCloudRecording = exports.StopCloudRecording = (0, _mobxReact.observer)(function (_ref) {
78
77
  var stopCloudRecording = _ref.stopCloudRecording,
79
78
  children = _ref.children;
80
- var _useContext2 = (0, _react.useContext)(_store.StoreContext),
81
- setPopoverArea = _useContext2.setPopoverArea;
82
79
  var _useState = (0, _react.useState)(false),
83
80
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
84
81
  visible = _useState2[0],
85
82
  setVisible = _useState2[1];
86
83
  var transI18n = (0, _i18n.useI18n)();
87
- var handleBoundariesChanged = (0, _react.useCallback)(function (boundaries) {
88
- setPopoverArea(boundaries);
89
- }, []);
90
- var _useContext3 = (0, _react.useContext)(_context.ControlBarCalculationContext),
91
- isShareActionNavHidden = _useContext3.isShareActionNavHidden;
84
+ var _useContext2 = (0, _react.useContext)(_context.ControlBarCalculationContext),
85
+ isShareActionNavHidden = _useContext2.isShareActionNavHidden;
92
86
  (0, _react.useEffect)(function () {
93
87
  if (isShareActionNavHidden) {
94
88
  setVisible(false);
95
- setPopoverArea({
96
- x: 0,
97
- y: 0,
98
- width: 0,
99
- height: 0
100
- });
101
89
  }
102
90
  }, [isShareActionNavHidden]);
103
- var content = /*#__PURE__*/(0, _jsxRuntime.jsx)(_boundaryDetector.BoundaryDetector, {
104
- onBoundariesChanged: handleBoundariesChanged,
105
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
106
- className: "leave-container",
107
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
108
- className: "leave-title",
109
- children: transI18n('fmt_actionbar_record_tips_stoprecord')
110
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
111
- className: "leave-confirm",
112
- onClick: stopCloudRecording,
113
- children: transI18n('fmt_actionbar_record_option_stoprecord')
114
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
115
- className: "leave-cancel",
116
- onClick: function onClick() {
117
- return setVisible(false);
118
- },
119
- children: transI18n('fmt_security_buttons_cancel')
120
- })]
121
- })
91
+ var content = /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
92
+ className: "leave-container",
93
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
94
+ className: "leave-title",
95
+ children: transI18n('fmt_actionbar_record_tips_stoprecord')
96
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
97
+ className: "leave-confirm",
98
+ onClick: stopCloudRecording,
99
+ children: transI18n('fmt_actionbar_record_option_stoprecord')
100
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
101
+ className: "leave-cancel",
102
+ onClick: function onClick() {
103
+ return setVisible(false);
104
+ },
105
+ children: transI18n('fmt_security_buttons_cancel')
106
+ })]
122
107
  });
123
108
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, {
124
109
  showArrow: false,
@@ -21,8 +21,6 @@ var _noneMenu = _interopRequireDefault(require("../../../components/device-contr
21
21
  var _phoneMenu = _interopRequireDefault(require("../../../components/device-control/components/phone-menu"));
22
22
  var _hooks = _interopRequireDefault(require("../../../components/device-control/hooks"));
23
23
  var _store = require("../../../components/device-control/store.base");
24
- var _boundaryDetector = require("../boundary-detector");
25
- var _store2 = require("../../store");
26
24
  var _context = require("../../context");
27
25
  var _tooltip = require("agora-ui-foundation/lib/components/tooltip");
28
26
  var _jsxRuntime = require("react/jsx-runtime");
@@ -66,10 +64,8 @@ var MicrophoneControl = exports.MicrophoneControl = (0, _mobxReact.observer)(fun
66
64
  checkMediaPermission = _useContext2.checkMediaPermission,
67
65
  connectType = _useContext2.connectType,
68
66
  microphoneState = _useContext2.microphoneState;
69
- var _useContext3 = (0, _react.useContext)(_store2.StoreContext),
70
- setPopoverArea = _useContext3.setPopoverArea;
71
- var _useContext4 = (0, _react.useContext)(_context.ControlBarCalculationContext),
72
- isShareActionNavHidden = _useContext4.isShareActionNavHidden;
67
+ var _useContext3 = (0, _react.useContext)(_context.ControlBarCalculationContext),
68
+ isShareActionNavHidden = _useContext3.isShareActionNavHidden;
73
69
  var _useDeviceTooltipVisi = (0, _hooks["default"])(),
74
70
  popoverOpened = _useDeviceTooltipVisi.popoverOpened,
75
71
  _setPopoverOpened = _useDeviceTooltipVisi.setPopoverOpened,
@@ -90,18 +86,9 @@ var MicrophoneControl = exports.MicrophoneControl = (0, _mobxReact.observer)(fun
90
86
  iconPrimary: "var(--fcr_web_ui_scene_mainicon1)",
91
87
  iconSecondary: 'var(--fcr_ui_scene_ramp_red6)'
92
88
  };
93
- var handleBoundariesChanged = (0, _react.useCallback)(function (boundaries) {
94
- setPopoverArea(boundaries);
95
- }, []);
96
89
  (0, _react.useEffect)(function () {
97
90
  if (isShareActionNavHidden) {
98
91
  _setPopoverOpened(false);
99
- setPopoverArea({
100
- x: 0,
101
- y: 0,
102
- width: 0,
103
- height: 0
104
- });
105
92
  }
106
93
  }, [isShareActionNavHidden]);
107
94
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
@@ -169,48 +156,21 @@ var MicrophoneControl = exports.MicrophoneControl = (0, _mobxReact.observer)(fun
169
156
  visible: popoverOpened,
170
157
  onVisibleChange: handlePopoverVisibleChanged,
171
158
  trigger: "click",
172
- content: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_boundaryDetector.BoundaryDetector, {
173
- onBoundariesChanged: handleBoundariesChanged,
159
+ content: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
174
160
  children: [connectType === _type2.FcrUIConnectType.NONE && /*#__PURE__*/(0, _jsxRuntime.jsx)(_noneMenu["default"], {
175
161
  onItemClick: function onItemClick() {
176
162
  handlePopoverVisibleChanged(false);
177
- setPopoverArea({
178
- x: 0,
179
- y: 0,
180
- width: 0,
181
- height: 0
182
- });
183
163
  }
184
164
  }), connectType === _type2.FcrUIConnectType.COMPUTER && /*#__PURE__*/(0, _jsxRuntime.jsx)(_audioMenu["default"], {
185
165
  setPopoverOpened: function setPopoverOpened(opened) {
186
166
  _setPopoverOpened(opened);
187
- if (!opened) {
188
- setPopoverArea({
189
- x: 0,
190
- y: 0,
191
- width: 0,
192
- height: 0
193
- });
194
- }
195
167
  },
196
168
  onConnectClick: function onConnectClick() {
197
169
  handlePopoverVisibleChanged(false);
198
- setPopoverArea({
199
- x: 0,
200
- y: 0,
201
- width: 0,
202
- height: 0
203
- });
204
170
  }
205
171
  }), connectType === _type2.FcrUIConnectType.PHONE && /*#__PURE__*/(0, _jsxRuntime.jsx)(_phoneMenu["default"], {
206
172
  onItemClick: function onItemClick() {
207
173
  handlePopoverVisibleChanged(false);
208
- setPopoverArea({
209
- x: 0,
210
- y: 0,
211
- width: 0,
212
- height: 0
213
- });
214
174
  }
215
175
  })]
216
176
  }),
@@ -8,6 +8,8 @@ export interface ShareAudioProps {
8
8
  currentAudioChannel?: AudioProcessingChannel;
9
9
  onSwitchAudioChannel?: (target: AudioProcessingChannel) => void;
10
10
  toggleShareWithAudio?: (target: boolean) => void;
11
+ popoverVisible: boolean;
12
+ setPopoverVisible: (visible: boolean) => void;
11
13
  showInfoTip?: boolean;
12
14
  }
13
15
  export declare const ShareAudio: (props: ShareAudioProps) => import("react/jsx-runtime").JSX.Element;
@@ -20,7 +20,6 @@ Object.defineProperty(exports, "__esModule", {
20
20
  });
21
21
  exports.ShareAudio = exports.AudioProcessingChannel = void 0;
22
22
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
24
23
  var _react = require("react");
25
24
  require("./index.css");
26
25
  var _i18n = require("agora-ui-foundation/lib/i18n");
@@ -45,14 +44,9 @@ var ShareAudio = exports.ShareAudio = function ShareAudio(props) {
45
44
  currentAudioChannel = _props$currentAudioCh === void 0 ? AudioProcessingChannel.MONO : _props$currentAudioCh,
46
45
  toggleShareWithAudio = props.toggleShareWithAudio,
47
46
  _props$showInfoTip = props.showInfoTip,
48
- showInfoTip = _props$showInfoTip === void 0 ? false : _props$showInfoTip;
49
- var _useState = (0, _react.useState)(false),
50
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
51
- popoverVisible = _useState2[0],
52
- setVisible = _useState2[1];
53
- var handlerVisibleChange = function handlerVisibleChange(visible) {
54
- setVisible(visible);
55
- };
47
+ showInfoTip = _props$showInfoTip === void 0 ? false : _props$showInfoTip,
48
+ popoverVisible = props.popoverVisible,
49
+ setPopoverVisible = props.setPopoverVisible;
56
50
  var shareAudioTips = (0, _react.useMemo)(function () {
57
51
  if (!shareWithAudio) {
58
52
  return t('fmt_screenshare_window_checkbox_shareAudio');
@@ -89,7 +83,7 @@ var ShareAudio = exports.ShareAudio = function ShareAudio(props) {
89
83
  content: /*#__PURE__*/(0, _jsxRuntime.jsx)(ShareAudioOptions, _objectSpread({}, props)),
90
84
  trigger: "click",
91
85
  visible: popoverVisible,
92
- onVisibleChange: handlerVisibleChange,
86
+ onVisibleChange: setPopoverVisible,
93
87
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
94
88
  className: "share-audio-action-button share-selectrion",
95
89
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
@@ -1,3 +1,4 @@
1
1
  export declare const useBoundaryDetect: (ref: React.RefObject<HTMLDivElement>, callbacks: {
2
2
  onBoundariesChanged: (rect: FcrUI.FcrUIRectangle) => void;
3
3
  }) => void;
4
+ export declare const usePopoverWatcher: (containerRef: React.RefObject<HTMLDivElement>, setArea: (id: string, area: FcrUI.FcrUIRectangle) => void, removeArea: (id: string) => void) => void;
@@ -4,8 +4,36 @@ require("core-js/modules/es.object.define-property.js");
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.useBoundaryDetect = void 0;
7
+ exports.usePopoverWatcher = exports.useBoundaryDetect = void 0;
8
+ require("core-js/modules/es.array.concat.js");
9
+ require("core-js/modules/es.array.for-each.js");
10
+ require("core-js/modules/es.array.iterator.js");
11
+ require("core-js/modules/es.array.some.js");
12
+ require("core-js/modules/es.date.now.js");
13
+ require("core-js/modules/es.map.js");
14
+ require("core-js/modules/es.object.to-string.js");
15
+ require("core-js/modules/es.string.iterator.js");
16
+ require("core-js/modules/esnext.iterator.constructor.js");
17
+ require("core-js/modules/esnext.iterator.for-each.js");
18
+ require("core-js/modules/esnext.iterator.some.js");
19
+ require("core-js/modules/esnext.map.delete-all.js");
20
+ require("core-js/modules/esnext.map.emplace.js");
21
+ require("core-js/modules/esnext.map.every.js");
22
+ require("core-js/modules/esnext.map.filter.js");
23
+ require("core-js/modules/esnext.map.find.js");
24
+ require("core-js/modules/esnext.map.find-key.js");
25
+ require("core-js/modules/esnext.map.includes.js");
26
+ require("core-js/modules/esnext.map.key-of.js");
27
+ require("core-js/modules/esnext.map.map-keys.js");
28
+ require("core-js/modules/esnext.map.map-values.js");
29
+ require("core-js/modules/esnext.map.merge.js");
30
+ require("core-js/modules/esnext.map.reduce.js");
31
+ require("core-js/modules/esnext.map.some.js");
32
+ require("core-js/modules/esnext.map.update.js");
33
+ require("core-js/modules/web.dom-collections.for-each.js");
34
+ require("core-js/modules/web.dom-collections.iterator.js");
8
35
  var _schedule = require("agora-foundation/lib/schedule");
36
+ var _lodash = require("lodash");
9
37
  var _react = require("react");
10
38
  var useBoundaryDetect = exports.useBoundaryDetect = function useBoundaryDetect(ref, callbacks) {
11
39
  (0, _react.useEffect)(function () {
@@ -33,4 +61,115 @@ var useBoundaryDetect = exports.useBoundaryDetect = function useBoundaryDetect(r
33
61
  }
34
62
  };
35
63
  }, [callbacks]);
64
+ };
65
+ var handlePositionChange = function handlePositionChange(popover, _onChange) {
66
+ var lastRect = null;
67
+ var onChange = (0, _lodash.debounce)(_onChange, 300);
68
+ var readRect = function readRect() {
69
+ var domRect = popover.getBoundingClientRect();
70
+ return {
71
+ x: domRect.left,
72
+ y: domRect.top,
73
+ width: domRect.width,
74
+ height: domRect.height
75
+ };
76
+ };
77
+ var notifyIfChanged = function notifyIfChanged() {
78
+ var nextRect = readRect();
79
+ if (!lastRect || lastRect.x !== nextRect.x || lastRect.y !== nextRect.y || lastRect.width !== nextRect.width || lastRect.height !== nextRect.height) {
80
+ lastRect = nextRect;
81
+ onChange(nextRect);
82
+ }
83
+ };
84
+ notifyIfChanged();
85
+ var observer = new MutationObserver(function (mutationsList) {
86
+ var shouldUpdate = mutationsList.some(function (mutation) {
87
+ return mutation.type === 'attributes' && mutation.attributeName === 'style';
88
+ });
89
+ if (shouldUpdate) {
90
+ notifyIfChanged();
91
+ }
92
+ });
93
+ observer.observe(popover, {
94
+ attributes: true,
95
+ attributeFilter: ['style']
96
+ });
97
+ return function () {
98
+ onChange.cancel();
99
+ observer.disconnect();
100
+ };
101
+ };
102
+ var usePopoverWatcher = exports.usePopoverWatcher = function usePopoverWatcher(containerRef, setArea, removeArea) {
103
+ (0, _react.useEffect)(function () {
104
+ if (containerRef.current === null) return;
105
+ var countNum = 0;
106
+ var body = containerRef.current.ownerDocument.body;
107
+ var popoverClassName = 'fcr-popover';
108
+ var popoverObservers = new Map();
109
+ var getPopoverElement = function getPopoverElement(node) {
110
+ if (node.classList.contains(popoverClassName)) {
111
+ return node;
112
+ } else {
113
+ return node.querySelector(".".concat(popoverClassName));
114
+ }
115
+ };
116
+ var observer = new MutationObserver(function (mutationsList) {
117
+ mutationsList.forEach(function (mutation) {
118
+ if (mutation.type !== 'childList') {
119
+ return;
120
+ }
121
+ mutation.addedNodes.forEach(function (node) {
122
+ if (node.nodeType !== Node.ELEMENT_NODE) {
123
+ return;
124
+ }
125
+ var popover = getPopoverElement(node);
126
+ if (!popover) {
127
+ return;
128
+ }
129
+ var popoverElementId = popover.getAttribute('data-popover-id');
130
+ if (popoverElementId) {
131
+ if (popoverObservers.has(popoverElementId)) {
132
+ return;
133
+ }
134
+ } else {
135
+ popoverElementId = "".concat(popoverClassName, "-").concat(Date.now(), "-").concat(countNum++, "}");
136
+ popover.setAttribute('data-popover-id', popoverElementId);
137
+ }
138
+ popoverObservers.set(popoverElementId, handlePositionChange(popover, function (rect) {
139
+ setArea(popoverElementId, rect);
140
+ }));
141
+ });
142
+ mutation.removedNodes.forEach(function (node) {
143
+ if (node.nodeType !== Node.ELEMENT_NODE) {
144
+ return;
145
+ }
146
+ var popover = getPopoverElement(node);
147
+ if (!popover) {
148
+ return;
149
+ }
150
+ var popoverElementId = popover.getAttribute('data-popover-id');
151
+ if (popoverElementId) {
152
+ var disconnect = popoverObservers.get(popoverElementId);
153
+ if (disconnect) {
154
+ disconnect();
155
+ popoverObservers["delete"](popoverElementId);
156
+ }
157
+ removeArea(popoverElementId);
158
+ }
159
+ });
160
+ });
161
+ });
162
+ observer.observe(body, {
163
+ childList: true,
164
+ subtree: true
165
+ });
166
+ return function () {
167
+ observer.disconnect();
168
+ popoverObservers.forEach(function (disconnect, key) {
169
+ disconnect();
170
+ removeArea(key);
171
+ });
172
+ popoverObservers.clear();
173
+ };
174
+ }, [containerRef.current]);
36
175
  };
@@ -29,9 +29,6 @@ export default class ControlBarStore implements FcrUIManagedObject {
29
29
  private _controlBarWindow;
30
30
  private _screenShareObserver;
31
31
  private _mouseDetectObserver;
32
- private _stateNavArea;
33
- private _contentArea;
34
- private _popoverArea;
35
32
  accessor roomDuration: number;
36
33
  accessor startTime: number;
37
34
  accessor cloudRecordingState: FcrRecordingState;
@@ -50,6 +47,7 @@ export default class ControlBarStore implements FcrUIManagedObject {
50
47
  accessor meetingId: string;
51
48
  accessor localUserName: string;
52
49
  accessor titleHeight: number;
50
+ private _detectAreas;
53
51
  get isSharingWithAudio(): boolean;
54
52
  get isInSmoothMode(): boolean;
55
53
  get hasSecurityPermission(): boolean;
@@ -100,9 +98,10 @@ export default class ControlBarStore implements FcrUIManagedObject {
100
98
  setEnableWaitingRoom(enable: boolean): void;
101
99
  getLocalMeetingTime(): string | null;
102
100
  release(): void;
101
+ setArea(id: string, area: FcrUI.FcrUIRectangle): void;
102
+ removeArea(id: string): void;
103
103
  setStateNavArea(area: FcrUI.FcrUIRectangle): void;
104
104
  setControlBarContentArea(area: FcrUI.FcrUIRectangle): void;
105
- setPopoverArea(area: FcrUI.FcrUIRectangle): void;
106
105
  handleLeaveRoom(): void;
107
106
  closeLeaveMeetingDialog(): void;
108
107
  handleMoreClick(actionKey: MoreAction): void;
@@ -6,15 +6,17 @@ require("core-js/modules/es.symbol.to-primitive.js");
6
6
  require("core-js/modules/es.error.cause.js");
7
7
  require("core-js/modules/es.error.to-string.js");
8
8
  require("core-js/modules/es.array.is-array.js");
9
- require("core-js/modules/es.array.push.js");
10
9
  require("core-js/modules/es.date.to-primitive.js");
11
10
  require("core-js/modules/es.function.bind.js");
12
11
  require("core-js/modules/es.function.name.js");
13
12
  require("core-js/modules/es.map.js");
14
13
  require("core-js/modules/es.number.constructor.js");
15
14
  require("core-js/modules/es.object.create.js");
15
+ require("core-js/modules/es.object.define-properties.js");
16
16
  require("core-js/modules/es.object.define-property.js");
17
17
  require("core-js/modules/es.object.get-own-property-descriptor.js");
18
+ require("core-js/modules/es.object.get-own-property-descriptors.js");
19
+ require("core-js/modules/es.object.keys.js");
18
20
  require("core-js/modules/esnext.function.metadata.js");
19
21
  require("core-js/modules/esnext.map.delete-all.js");
20
22
  require("core-js/modules/esnext.map.emplace.js");
@@ -37,14 +39,17 @@ Object.defineProperty(exports, "__esModule", {
37
39
  value: true
38
40
  });
39
41
  exports["default"] = exports.StoreContext = void 0;
42
+ require("core-js/modules/es.array.filter.js");
40
43
  require("core-js/modules/es.array.for-each.js");
41
44
  require("core-js/modules/es.array.includes.js");
42
45
  require("core-js/modules/es.array.iterator.js");
46
+ require("core-js/modules/es.array.push.js");
43
47
  require("core-js/modules/es.date.to-string.js");
44
48
  require("core-js/modules/es.object.to-string.js");
45
49
  require("core-js/modules/es.string.iterator.js");
46
50
  require("core-js/modules/es.weak-map.js");
47
51
  require("core-js/modules/esnext.iterator.constructor.js");
52
+ require("core-js/modules/esnext.iterator.filter.js");
48
53
  require("core-js/modules/esnext.iterator.for-each.js");
49
54
  require("core-js/modules/esnext.weak-map.delete-all.js");
50
55
  require("core-js/modules/esnext.weak-map.emplace.js");
@@ -73,6 +78,8 @@ var _platform = require("../../utilities/platform");
73
78
  var _struct = require("../../providers/mouse-detect/struct");
74
79
  var _ControlBarStore;
75
80
  var _initProto, _init_roomDuration, _init_startTime, _init_cloudRecordingState, _init_playUrl, _init_liveStreamingState, _init_allApplicationWindows, _init_boardOwnerUser, _init_currentShareDisplayId, _init_position, _init_appActionbarPopoverVisible, _setCheckedStateMapDecs, _showLockedRoomToastDecs, _handleNewShareDecs, _handlerStopShareDecs, _pauseCloudRecordingDecs, _resumeCloudRecordingDecs, _stopCloudRecordingDecs, _showToastDecs, _handleLeaveRoomDecs, _closeLeaveMeetingDialogDecs, _handleMoreClickDecs, _setAppActionbarPopoverVisibleDecs, _ref;
81
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
82
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
76
83
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
77
84
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
78
85
  function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
@@ -178,24 +185,6 @@ var ControlBarStore = exports["default"] = /*#__PURE__*/function () {
178
185
  }
179
186
  }
180
187
  });
181
- (0, _defineProperty2["default"])(this, "_stateNavArea", {
182
- x: 0,
183
- y: 0,
184
- width: 0,
185
- height: 0
186
- });
187
- (0, _defineProperty2["default"])(this, "_contentArea", {
188
- x: 0,
189
- y: 0,
190
- width: 0,
191
- height: 0
192
- });
193
- (0, _defineProperty2["default"])(this, "_popoverArea", {
194
- x: 0,
195
- y: 0,
196
- width: 0,
197
- height: 0
198
- });
199
188
  _classPrivateFieldInitSpec(this, _F, _init_roomDuration(this));
200
189
  _classPrivateFieldInitSpec(this, _G, _init_startTime(this));
201
190
  _classPrivateFieldInitSpec(this, _H, _init_cloudRecordingState(this, _type.FcrRecordingState.Stopped));
@@ -388,6 +377,11 @@ var ControlBarStore = exports["default"] = /*#__PURE__*/function () {
388
377
  set: function set(v) {
389
378
  _classPrivateFieldSet(_E, this, v);
390
379
  }
380
+ }, {
381
+ key: "_detectAreas",
382
+ value: function _detectAreas() {
383
+ return this._mouseDetectProvider.getDetectAreas(_struct.FcrUIDetectAreaID.ControlBar);
384
+ }
391
385
  }, {
392
386
  key: "isSharingWithAudio",
393
387
  get: function get() {
@@ -664,23 +658,36 @@ var ControlBarStore = exports["default"] = /*#__PURE__*/function () {
664
658
  this._mouseDetectProvider.removeObserver(this._mouseDetectObserver);
665
659
  this._mouseDetectProvider.deleteDetectArea(_struct.FcrUIDetectAreaID.ControlBar);
666
660
  }
661
+ }, {
662
+ key: "setArea",
663
+ value: function setArea(id, area) {
664
+ var currentOtherAreas = this._detectAreas().filter(function (item) {
665
+ return item.id !== id;
666
+ });
667
+ currentOtherAreas.push(_objectSpread({
668
+ id: id
669
+ }, area));
670
+ this._mouseDetectProvider.setDetectArea(_struct.FcrUIDetectAreaID.ControlBar, currentOtherAreas);
671
+ }
672
+ }, {
673
+ key: "removeArea",
674
+ value: function removeArea(id) {
675
+ var currentOtherAreas = this._detectAreas().filter(function (item) {
676
+ return item.id !== id;
677
+ });
678
+ this._mouseDetectProvider.setDetectArea(_struct.FcrUIDetectAreaID.ControlBar, currentOtherAreas);
679
+ }
667
680
  }, {
668
681
  key: "setStateNavArea",
669
682
  value: function setStateNavArea(area) {
670
- this._stateNavArea = area;
671
- this._mouseDetectProvider.setDetectArea(_struct.FcrUIDetectAreaID.ControlBar, [this._stateNavArea, this._contentArea, this._popoverArea]);
683
+ var id = 'state-nav-area';
684
+ this.setArea(id, area);
672
685
  }
673
686
  }, {
674
687
  key: "setControlBarContentArea",
675
688
  value: function setControlBarContentArea(area) {
676
- this._contentArea = area;
677
- this._mouseDetectProvider.setDetectArea(_struct.FcrUIDetectAreaID.ControlBar, [this._stateNavArea, this._contentArea, this._popoverArea]);
678
- }
679
- }, {
680
- key: "setPopoverArea",
681
- value: function setPopoverArea(area) {
682
- this._popoverArea = area;
683
- this._mouseDetectProvider.setDetectArea(_struct.FcrUIDetectAreaID.ControlBar, [this._stateNavArea, this._contentArea, this._popoverArea]);
689
+ var id = 'control-bar-content-area';
690
+ this.setArea(id, area);
684
691
  }
685
692
  }, {
686
693
  key: "handleLeaveRoom",
@@ -764,7 +771,7 @@ var ControlBarStore = exports["default"] = /*#__PURE__*/function () {
764
771
  }]);
765
772
  }();
766
773
  _ControlBarStore = ControlBarStore;
767
- var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_ControlBarStore, [[_mobx.observable, 1, "roomDuration"], [_mobx.observable, 1, "startTime"], [_mobx.observable, 1, "cloudRecordingState"], [_mobx.observable, 1, "playUrl"], [_mobx.observable, 1, "liveStreamingState"], [_mobx.observable, 1, "allApplicationWindows"], [_mobx.observable, 1, "boardOwnerUser"], [_mobx.observable, 1, "currentShareDisplayId"], [_mobx.observable, 1, "position"], [_mobx.observable, 1, "appActionbarPopoverVisible"], [_mobx.computed, 3, "hasEndRoomPermission"], [_mobx.computed, 3, "hasGetLiveStreamingUrlPermission"], [_mobx.computed, 3, "hasStartCloudRecordingPermission"], [_mobx.computed, 3, "hasStartLiveStreamingPermission"], [_mobx.computed, 3, "hasChatPermission"], [_mobx.computed, 3, "liveStreamingButtonVisible"], [_mobx.computed, 3, "recordingButtonVisible"], [_mobx.computed, 3, "isConnecting"], [_setCheckedStateMapDecs, 18, "setCheckedStateMap"], [_decorator.bound, 2, "setShareWithAudioState"], [_decorator.bound, 2, "setShareInSmoothMode"], [_showLockedRoomToastDecs, 18, "showLockedRoomToast"], [_handleNewShareDecs, 18, "handleNewShare"], [_handlerStopShareDecs, 18, "handlerStopShare"], [_decorator.bound, 2, "handleMouseEnter"], [_decorator.bound, 2, "handleMouseLeave"], [_decorator.bound, 2, "openLiveStreamingDialog"], [_decorator.bound, 2, "setShareAudioMode"], [_pauseCloudRecordingDecs, 2, "pauseCloudRecording"], [_resumeCloudRecordingDecs, 2, "resumeCloudRecording"], [_stopCloudRecordingDecs, 2, "stopCloudRecording"], [_decorator.bound, 2, "startCloudRecording"], [_decorator.bound, 2, "startLiveStreaming"], [_decorator.bound, 2, "stopLiveStreaming"], [_showToastDecs, 18, "showToast"], [_decorator.bound, 2, "handleOpenParticipant"], [_decorator.bound, 2, "handleOpenLiveStreaming"], [_decorator.bound, 2, "setEnableWaitingRoom"], [_decorator.bound, 2, "getLocalMeetingTime"], [[_decorator.bound, _decorator.trace], 2, "setStateNavArea"], [[_decorator.bound, _decorator.trace], 2, "setControlBarContentArea"], [[_decorator.bound, _decorator.trace], 2, "setPopoverArea"], [_handleLeaveRoomDecs, 18, "handleLeaveRoom"], [_closeLeaveMeetingDialogDecs, 18, "closeLeaveMeetingDialog"], [_handleMoreClickDecs, 18, "handleMoreClick"], [[_decorator.trace, _decorator.bound], 2, "updateWindowBounds"], [_setAppActionbarPopoverVisibleDecs, 18, "setAppActionbarPopoverVisible"]], []).e, 11);
774
+ var _applyDecs$e = (0, _slicedToArray2["default"])(_applyDecs(_ControlBarStore, [[_mobx.observable, 1, "roomDuration"], [_mobx.observable, 1, "startTime"], [_mobx.observable, 1, "cloudRecordingState"], [_mobx.observable, 1, "playUrl"], [_mobx.observable, 1, "liveStreamingState"], [_mobx.observable, 1, "allApplicationWindows"], [_mobx.observable, 1, "boardOwnerUser"], [_mobx.observable, 1, "currentShareDisplayId"], [_mobx.observable, 1, "position"], [_mobx.observable, 1, "appActionbarPopoverVisible"], [_mobx.computed, 3, "hasEndRoomPermission"], [_mobx.computed, 3, "hasGetLiveStreamingUrlPermission"], [_mobx.computed, 3, "hasStartCloudRecordingPermission"], [_mobx.computed, 3, "hasStartLiveStreamingPermission"], [_mobx.computed, 3, "hasChatPermission"], [_mobx.computed, 3, "liveStreamingButtonVisible"], [_mobx.computed, 3, "recordingButtonVisible"], [_mobx.computed, 3, "isConnecting"], [_setCheckedStateMapDecs, 18, "setCheckedStateMap"], [_decorator.bound, 2, "setShareWithAudioState"], [_decorator.bound, 2, "setShareInSmoothMode"], [_showLockedRoomToastDecs, 18, "showLockedRoomToast"], [_handleNewShareDecs, 18, "handleNewShare"], [_handlerStopShareDecs, 18, "handlerStopShare"], [_decorator.bound, 2, "handleMouseEnter"], [_decorator.bound, 2, "handleMouseLeave"], [_decorator.bound, 2, "openLiveStreamingDialog"], [_decorator.bound, 2, "setShareAudioMode"], [_pauseCloudRecordingDecs, 2, "pauseCloudRecording"], [_resumeCloudRecordingDecs, 2, "resumeCloudRecording"], [_stopCloudRecordingDecs, 2, "stopCloudRecording"], [_decorator.bound, 2, "startCloudRecording"], [_decorator.bound, 2, "startLiveStreaming"], [_decorator.bound, 2, "stopLiveStreaming"], [_showToastDecs, 18, "showToast"], [_decorator.bound, 2, "handleOpenParticipant"], [_decorator.bound, 2, "handleOpenLiveStreaming"], [_decorator.bound, 2, "setEnableWaitingRoom"], [_decorator.bound, 2, "getLocalMeetingTime"], [[_decorator.bound, _decorator.trace], 2, "setArea"], [[_decorator.bound, _decorator.trace], 2, "removeArea"], [_decorator.bound, 2, "setStateNavArea"], [_decorator.bound, 2, "setControlBarContentArea"], [_handleLeaveRoomDecs, 18, "handleLeaveRoom"], [_closeLeaveMeetingDialogDecs, 18, "closeLeaveMeetingDialog"], [_handleMoreClickDecs, 18, "handleMoreClick"], [[_decorator.trace, _decorator.bound], 2, "updateWindowBounds"], [_setAppActionbarPopoverVisibleDecs, 18, "setAppActionbarPopoverVisible"]], []).e, 11);
768
775
  _init_roomDuration = _applyDecs$e[0];
769
776
  _init_startTime = _applyDecs$e[1];
770
777
  _init_cloudRecordingState = _applyDecs$e[2];
@@ -41,3 +41,6 @@ export type ControlBarCalculationUpdaterType = {
41
41
  restartActiveTask: () => void;
42
42
  cancelActiveTask: () => void;
43
43
  };
44
+ export type FcrUIControlArea = FcrUI.FcrUIRectangle & {
45
+ id?: string;
46
+ };