fcr-ui-scene 3.7.2 → 3.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/lib/creator.js +23 -44
  2. package/lib/electron/app.js +7 -0
  3. package/lib/electron/injections.d.ts +1 -1
  4. package/lib/electron/injections.js +5 -3
  5. package/lib/electron/main.js +3 -1
  6. package/lib/fragments/annotation/index.d.ts +1 -0
  7. package/lib/fragments/annotation/index.js +13 -7
  8. package/lib/fragments/annotation/store.d.ts +8 -4
  9. package/lib/fragments/annotation/store.js +351 -267
  10. package/lib/fragments/annotation/toolbar/components/color-tool/index.js +4 -0
  11. package/lib/fragments/annotation/toolbar/components/graphic-tool/index.js +4 -0
  12. package/lib/fragments/annotation/toolbar/components/item/item.d.ts +2 -0
  13. package/lib/fragments/annotation/toolbar/components/item/item.js +2 -4
  14. package/lib/fragments/annotation/toolbar/components/item/style.css +4 -2
  15. package/lib/fragments/annotation/toolbar/components/pen-tool/index.js +4 -0
  16. package/lib/fragments/annotation/utils.d.ts +1 -0
  17. package/lib/fragments/annotation/utils.js +27 -0
  18. package/lib/fragments/annotation/view.js +1 -6
  19. package/lib/fragments/base.js +5 -3
  20. package/lib/fragments/whiteboard/cursor.css +77 -0
  21. package/lib/fragments/whiteboard/index.d.ts +11 -0
  22. package/lib/fragments/whiteboard/index.js +91 -0
  23. package/lib/fragments/whiteboard/store.d.ts +31 -0
  24. package/lib/fragments/whiteboard/store.js +475 -0
  25. package/lib/fragments/whiteboard/style.css +4 -0
  26. package/lib/fragments/whiteboard/view.d.ts +4 -0
  27. package/lib/fragments/whiteboard/view.js +31 -0
  28. package/lib/index.d.ts +1 -0
  29. package/lib/index.js +1 -0
  30. package/lib/modules/action-bar/components/apps/index.js +15 -5
  31. package/lib/modules/action-bar/components/leave/index.js +4 -11
  32. package/lib/modules/action-bar/view.d.ts +1 -0
  33. package/lib/modules/action-bar/view.js +3 -2
  34. package/lib/modules/annotation/annotation-toolbar-store.d.ts +4 -11
  35. package/lib/modules/annotation/annotation-toolbar-store.js +46 -88
  36. package/lib/modules/annotation/index.d.ts +2 -0
  37. package/lib/modules/annotation/index.js +2 -2
  38. package/lib/modules/annotation/store.d.ts +11 -49
  39. package/lib/modules/annotation/store.js +135 -418
  40. package/lib/modules/annotation/view.js +3 -6
  41. package/lib/modules/components/control-bar/components/loading/index.css +76 -0
  42. package/lib/modules/components/control-bar/components/loading/index.d.ts +8 -0
  43. package/lib/modules/components/control-bar/components/loading/index.js +64 -0
  44. package/lib/modules/components/control-bar/components/loading/loading.png +0 -0
  45. package/lib/modules/components/control-bar/components/progress/index.d.ts +5 -0
  46. package/lib/modules/components/control-bar/components/progress/index.js +43 -0
  47. package/lib/modules/components/control-bar/components/progress/style.css +51 -0
  48. package/lib/modules/components/control-bar/components/switch-theme/index.css +99 -0
  49. package/lib/modules/components/control-bar/components/switch-theme/index.d.ts +9 -0
  50. package/lib/modules/components/control-bar/components/switch-theme/index.js +94 -0
  51. package/lib/modules/components/control-bar/components/switch-theme/item.d.ts +9 -0
  52. package/lib/modules/components/control-bar/components/switch-theme/item.js +54 -0
  53. package/lib/modules/components/control-bar/components/switch-theme/libs.d.ts +4 -0
  54. package/lib/modules/components/control-bar/components/switch-theme/libs.js +31 -0
  55. package/lib/modules/components/control-bar/index.css +87 -0
  56. package/lib/modules/components/control-bar/index.d.ts +20 -0
  57. package/lib/modules/components/control-bar/index.js +276 -0
  58. package/lib/modules/components/leave-meeting/components/index.css +0 -9
  59. package/lib/modules/components/leave-meeting/index.d.ts +2 -1
  60. package/lib/modules/components/leave-meeting/index.js +15 -7
  61. package/lib/modules/components/leave-meeting/portal.d.ts +6 -0
  62. package/lib/modules/components/leave-meeting/portal.js +29 -0
  63. package/lib/modules/components/leave-meeting/style.css +9 -0
  64. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +5 -2
  65. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +19 -9
  66. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +4 -4
  67. package/lib/modules/components/member-window/components/member-actions/index.js +13 -6
  68. package/lib/modules/components/member-window/components/member-actions/provider.d.ts +1 -0
  69. package/lib/modules/components/member-window/components/member-actions/provider.js +4 -3
  70. package/lib/modules/components/member-window/components/member-actions/store.d.ts +2 -1
  71. package/lib/modules/components/member-window/components/member-actions/store.js +5 -1
  72. package/lib/modules/components/member-window/index.css +4 -0
  73. package/lib/modules/components/member-window/types.d.ts +6 -2
  74. package/lib/modules/components/toolbar/components/capture-tool/index.d.ts +9 -0
  75. package/lib/modules/components/toolbar/components/capture-tool/index.js +68 -0
  76. package/lib/modules/components/toolbar/components/clean-tool/index.d.ts +11 -0
  77. package/lib/modules/components/toolbar/components/clean-tool/index.js +71 -0
  78. package/lib/modules/components/toolbar/components/color-tool/color-panel/index.d.ts +11 -0
  79. package/lib/modules/components/toolbar/components/color-tool/color-panel/index.js +77 -0
  80. package/lib/modules/components/toolbar/components/color-tool/index.d.ts +14 -0
  81. package/lib/modules/components/toolbar/components/color-tool/index.js +66 -0
  82. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/index.d.ts +11 -0
  83. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/index.js +64 -0
  84. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +12 -0
  85. package/lib/modules/components/toolbar/components/graphic-tool/graphic-panel/libs.js +65 -0
  86. package/lib/modules/components/toolbar/components/graphic-tool/index.d.ts +15 -0
  87. package/lib/modules/components/toolbar/components/graphic-tool/index.js +82 -0
  88. package/lib/modules/components/toolbar/components/group-tool/index.d.ts +5 -0
  89. package/lib/modules/components/toolbar/components/group-tool/index.js +43 -0
  90. package/lib/modules/components/toolbar/components/icons/fold-icon.d.ts +2 -0
  91. package/lib/modules/components/toolbar/components/icons/fold-icon.js +41 -0
  92. package/lib/modules/components/toolbar/components/icons/move-icon.d.ts +1 -0
  93. package/lib/modules/components/toolbar/components/icons/move-icon.js +66 -0
  94. package/lib/modules/components/toolbar/components/item/index.d.ts +25 -0
  95. package/lib/modules/components/toolbar/components/item/index.js +165 -0
  96. package/lib/modules/components/toolbar/components/item/style.css +94 -0
  97. package/lib/modules/components/toolbar/components/multiple-color-tool/index.d.ts +12 -0
  98. package/lib/modules/components/toolbar/components/multiple-color-tool/index.js +75 -0
  99. package/lib/modules/components/toolbar/components/panel/index.d.ts +9 -0
  100. package/lib/modules/components/toolbar/components/panel/index.js +28 -0
  101. package/lib/modules/components/toolbar/components/panel/style.css +86 -0
  102. package/lib/modules/components/toolbar/components/pen-tool/index.d.ts +13 -0
  103. package/lib/modules/components/toolbar/components/pen-tool/index.js +62 -0
  104. package/lib/modules/components/toolbar/components/pen-tool/pen-panel/index.d.ts +8 -0
  105. package/lib/modules/components/toolbar/components/pen-tool/pen-panel/index.js +39 -0
  106. package/lib/modules/components/toolbar/components/save-draft/index.d.ts +7 -0
  107. package/lib/modules/components/toolbar/components/save-draft/index.js +59 -0
  108. package/lib/modules/components/toolbar/components/vertical-frame/index.d.ts +8 -0
  109. package/lib/modules/components/toolbar/components/vertical-frame/index.js +179 -0
  110. package/lib/modules/components/toolbar/hooks/use-resize-visible.d.ts +4 -0
  111. package/lib/modules/components/toolbar/hooks/use-resize-visible.js +59 -0
  112. package/lib/modules/components/toolbar/index.d.ts +29 -0
  113. package/lib/modules/components/toolbar/index.js +258 -0
  114. package/lib/modules/components/toolbar/style.css +85 -0
  115. package/lib/modules/components/toolbar/types.d.ts +13 -0
  116. package/lib/modules/components/toolbar/types.js +6 -0
  117. package/lib/modules/control-bar/components/more-actions/index.js +0 -6
  118. package/lib/modules/control-bar/components/share-state-nav/index.js +3 -2
  119. package/lib/modules/control-bar/index.js +2 -1
  120. package/lib/modules/control-bar/store.d.ts +7 -6
  121. package/lib/modules/control-bar/store.js +28 -21
  122. package/lib/modules/control-bar/view.js +7 -55
  123. package/lib/modules/dialog/dialogs/control-bar/index.d.ts +1 -0
  124. package/lib/modules/dialog/dialogs/control-bar/index.js +17 -3
  125. package/lib/modules/dialog/dialogs/participant/components/title.js +1 -1
  126. package/lib/modules/dialog/dialogs/sub-window/index.d.ts +2 -0
  127. package/lib/modules/dialog/dialogs/sub-window/index.js +98 -0
  128. package/lib/modules/dialog/dialogs/video-window/index.d.ts +1 -0
  129. package/lib/modules/dialog/dialogs/video-window/index.js +3 -2
  130. package/lib/modules/dialog/dialogs/whiteboard/index.js +0 -1
  131. package/lib/modules/dialog/hooks/use-popover-watcher.js +1 -2
  132. package/lib/modules/dialog/hooks/useElectron.d.ts +13 -0
  133. package/lib/modules/dialog/hooks/useElectron.js +62 -12
  134. package/lib/modules/dialog/index.d.ts +6 -3
  135. package/lib/modules/dialog/index.js +5 -3
  136. package/lib/modules/dialog/store.d.ts +21 -8
  137. package/lib/modules/dialog/store.js +79 -11
  138. package/lib/modules/dialog/type.d.ts +8 -0
  139. package/lib/modules/event-confirm/index.css +5 -2
  140. package/lib/modules/event-confirm/store.js +6 -7
  141. package/lib/modules/event-confirm/view.js +1 -1
  142. package/lib/modules/event-sound/index.d.ts +1 -0
  143. package/lib/modules/event-sound/index.js +11 -24
  144. package/lib/modules/invite/components/pstn-invite.js +0 -1
  145. package/lib/modules/layout/components/CommonVideoRenderer.js +21 -21
  146. package/lib/modules/layout/components/who-is-speaking.js +3 -6
  147. package/lib/modules/layout/index.d.ts +3 -1
  148. package/lib/modules/layout/index.js +2 -1
  149. package/lib/modules/layout/store.d.ts +7 -59
  150. package/lib/modules/layout/store.js +126 -24
  151. package/lib/modules/layout/type.d.ts +55 -0
  152. package/lib/modules/participant/components/can-moveable/index.js +0 -1
  153. package/lib/modules/participant/components/participants/components/participants/components/attendee/index.js +4 -2
  154. package/lib/modules/participant/components/participants/components/participants/components/participants-more/index.js +14 -2
  155. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.d.ts +1 -1
  156. package/lib/modules/participant/components/participants/components/participants/components/user-row/index.js +3 -2
  157. package/lib/modules/participant/components/participants/components/participants/index.js +3 -2
  158. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.d.ts +1 -0
  159. package/lib/modules/participant/components/participants/components/render-user/components/user-action/components/move-actions-popover/index.js +3 -1
  160. package/lib/modules/participant/components/participants/components/render-user/components/user-action/index.js +4 -2
  161. package/lib/modules/participant/components/participants/components/render-user/index.d.ts +4 -2
  162. package/lib/modules/participant/components/participants/components/render-user/index.js +5 -3
  163. package/lib/modules/participant/components/participants/index.js +5 -2
  164. package/lib/modules/participant/components/participants/types.d.ts +3 -0
  165. package/lib/modules/participant/index.d.ts +2 -0
  166. package/lib/modules/participant/index.js +2 -1
  167. package/lib/modules/participant/store.d.ts +5 -1
  168. package/lib/modules/participant/store.js +8 -1
  169. package/lib/modules/secondary-window/index.d.ts +49 -0
  170. package/lib/modules/secondary-window/index.js +108 -0
  171. package/lib/modules/secondary-window/store.d.ts +76 -0
  172. package/lib/modules/secondary-window/store.js +407 -0
  173. package/lib/modules/secondary-window/type.d.ts +106 -0
  174. package/lib/modules/secondary-window/type.js +35 -0
  175. package/lib/modules/secondary-window/view.d.ts +6 -0
  176. package/lib/modules/secondary-window/view.js +257 -0
  177. package/lib/modules/setting/general-settings/general-settings.js +9 -0
  178. package/lib/modules/setting/state/index.js +0 -10
  179. package/lib/modules/setting/store.d.ts +1 -0
  180. package/lib/modules/setting/store.js +6 -3
  181. package/lib/modules/share-screen/components/control-bar/index.d.ts +14 -1
  182. package/lib/modules/share-screen/components/control-bar/index.js +17 -12
  183. package/lib/modules/share-screen/components/selection/index.js +10 -15
  184. package/lib/modules/share-screen/index.d.ts +4 -1
  185. package/lib/modules/share-screen/index.js +6 -3
  186. package/lib/modules/share-screen/store.d.ts +9 -9
  187. package/lib/modules/share-screen/store.js +39 -64
  188. package/lib/modules/state-bar/index.d.ts +2 -0
  189. package/lib/modules/state-bar/index.js +2 -1
  190. package/lib/modules/state-bar/live-streaming-state.js +0 -1
  191. package/lib/modules/state-bar/store.d.ts +5 -2
  192. package/lib/modules/state-bar/store.js +14 -7
  193. package/lib/modules/state-bar/view.js +3 -3
  194. package/lib/modules/video-window/components/members/index.js +7 -12
  195. package/lib/modules/video-window/store.d.ts +1 -0
  196. package/lib/modules/video-window/store.js +5 -0
  197. package/lib/modules/whiteboard/components/toolbar/store.d.ts +2 -2
  198. package/lib/modules/whiteboard/index.d.ts +10 -13
  199. package/lib/modules/whiteboard/index.js +12 -11
  200. package/lib/providers/ability-provider.js +2 -0
  201. package/lib/providers/device-provider.d.ts +6 -3
  202. package/lib/providers/device-provider.js +331 -333
  203. package/lib/providers/multi-display-provider.d.ts +85 -0
  204. package/lib/providers/multi-display-provider.js +581 -0
  205. package/lib/providers/privilege-provider.js +1 -7
  206. package/lib/providers/room-provider.js +7 -1
  207. package/lib/providers/screen-share-provider.d.ts +3 -1
  208. package/lib/providers/screen-share-provider.js +39 -40
  209. package/lib/providers/sharing-provider.d.ts +7 -1
  210. package/lib/providers/sharing-provider.js +32 -3
  211. package/lib/providers/whiteboard-provider.d.ts +24 -0
  212. package/lib/providers/whiteboard-provider.js +127 -0
  213. package/lib/runtime.d.ts +1 -0
  214. package/lib/scenes/main-scene.d.ts +6 -0
  215. package/lib/scenes/main-scene.js +38 -2
  216. package/lib/scenes/waiting-scene.d.ts +0 -2
  217. package/lib/scenes/waiting-scene.js +0 -6
  218. package/lib/shared-data-source/member-data.d.ts +2 -2
  219. package/lib/shared-data-source/screen-share-data.d.ts +6 -0
  220. package/lib/shared-data-source/screen-share-data.js +5 -0
  221. package/lib/shared-data-source/setting.js +2 -1
  222. package/lib/shared-data-source/video-window.js +1 -2
  223. package/lib/shared-data-source/whiteboard-data.d.ts +68 -0
  224. package/lib/shared-data-source/whiteboard-data.js +347 -0
  225. package/lib/translations/enUS.d.ts +1 -0
  226. package/lib/translations/enUS.js +2 -1
  227. package/lib/translations/zhCN.d.ts +1 -0
  228. package/lib/translations/zhCN.js +2 -1
  229. package/lib/ui-scene.d.ts +0 -1
  230. package/lib/ui-scene.js +0 -3
  231. package/lib/utilities/constant.d.ts +4 -2
  232. package/lib/utilities/constant.js +3 -1
  233. package/lib/utilities/debug.d.ts +4 -0
  234. package/lib/utilities/debug.js +40 -0
  235. package/lib/utilities/dialog-utils.js +26 -4
  236. package/lib/utilities/meeting-detail.js +4 -1
  237. package/lib/utilities/renderer-event.d.ts +4 -6
  238. package/lib/utilities/renderer-event.js +23 -43
  239. package/lib/utilities/renderer.d.ts +1 -1
  240. package/lib/utilities/renderer.js +44 -10
  241. package/lib/utilities/shared-storage.d.ts +18 -0
  242. package/lib/utilities/shared-storage.js +63 -0
  243. package/lib/utilities/tools.js +2 -1
  244. package/package.json +5 -6
  245. package/lib/electron/tools.d.ts +0 -5
  246. package/lib/electron/tools.js +0 -62
@@ -96,7 +96,7 @@ var _C = /*#__PURE__*/new WeakMap();
96
96
  var _D = /*#__PURE__*/new WeakMap();
97
97
  _ref = (_setOnlyShowVideoStreamDecs = [_mobx.action, _mobx.action.bound], _setIsShowDropMenuDecs = [_mobx.action, _mobx.action.bound], _onVisibleChangeDecs = [_mobx.action, _mobx.action.bound], "isOnlyShowVideoStream");
98
98
  var MemberWindowActionsStore = exports.MemberWindowActionsStore = /*#__PURE__*/function () {
99
- function MemberWindowActionsStore(_windowData, _sendParticipantEvent, _muteAudio, _handleRename, _onVisibleChanged, _interpreterUsers, _interpreterState) {
99
+ function MemberWindowActionsStore(_windowData, _sendParticipantEvent, _muteAudio, _handleRename, _deviceMicrophoneEnabled, _onVisibleChanged, _interpreterUsers, _interpreterState) {
100
100
  (0, _classCallCheck2["default"])(this, MemberWindowActionsStore);
101
101
  _classPrivateFieldInitSpec(this, _A, (_initProto(this), _init_isOnlyShowVideoStream(this, false)));
102
102
  _classPrivateFieldInitSpec(this, _B, _init_isShowDropMenu(this, false));
@@ -106,6 +106,7 @@ var MemberWindowActionsStore = exports.MemberWindowActionsStore = /*#__PURE__*/f
106
106
  this._sendParticipantEvent = _sendParticipantEvent;
107
107
  this._muteAudio = _muteAudio;
108
108
  this._handleRename = _handleRename;
109
+ this._deviceMicrophoneEnabled = _deviceMicrophoneEnabled;
109
110
  this._onVisibleChanged = _onVisibleChanged;
110
111
  this._interpreterUsers = _interpreterUsers;
111
112
  this._interpreterState = _interpreterState;
@@ -235,6 +236,9 @@ var MemberWindowActionsStore = exports.MemberWindowActionsStore = /*#__PURE__*/f
235
236
  key: "hasMicrophoneAudioStream",
236
237
  get: function get() {
237
238
  var _this$_windowData0;
239
+ if (this.isMySelf && this.connectorType === _fcrCore.FcrRoomConnectorType.NONE) {
240
+ return this._deviceMicrophoneEnabled;
241
+ }
238
242
  return (_this$_windowData0 = this._windowData) === null || _this$_windowData0 === void 0 ? void 0 : _this$_windowData0.hasMicrophoneAudioStream;
239
243
  }
240
244
  }, {
@@ -15,6 +15,10 @@
15
15
  z-index: 0;
16
16
  }
17
17
 
18
+ .fcr-member-window-with-share-controlbar .fcr-member-window {
19
+ height: calc(100% - 28px);
20
+ }
21
+
18
22
  .fcr-member-window button,
19
23
  .fcr-member-board button {
20
24
  border: none;
@@ -2,6 +2,7 @@ import { AgoraRtcRenderMode, AgoraRtcVideoStreamType } from 'fcr-core/lib/import
2
2
  import { FcrUIVideoWindowData, FcrUserRole } from '../../../type';
3
3
  import { FcrVideoWindowPreviewType } from '../../video-window/type';
4
4
  import { FcrInterpreterUserInfo } from 'fcr-core/lib/room-control/interpreter-control/types';
5
+ import { FcrPrivilegeUserRole } from 'fcr-core';
5
6
  export interface MemberWindowCustomProps {
6
7
  showAvatar: boolean;
7
8
  onDoubleClick?: () => void;
@@ -60,8 +61,6 @@ export interface MemberWindowActionsProps {
60
61
  allowedOperations: string[];
61
62
  setVideoOrientation: () => void;
62
63
  showActionBottomLabel: boolean;
63
- isShowActionAudio: boolean;
64
- actionAudioTag: string;
65
64
  onVisibleChanged?: (visible: boolean) => void;
66
65
  videoWindowCurrentWidth?: number;
67
66
  videoWindowCurrentHeight?: number;
@@ -73,6 +72,11 @@ export interface MemberWindowActionsProps {
73
72
  renderListLength?: number;
74
73
  id: string | undefined;
75
74
  volume: number;
75
+ isLocalCameraInSecondaryWindow?: boolean;
76
+ deviceMicrophoneEnabled: boolean;
77
+ hasMutePermission: (targetRole: FcrUserRole | FcrPrivilegeUserRole) => boolean;
78
+ hasUnmutePermission: (targetRole: FcrUserRole | FcrPrivilegeUserRole) => boolean;
79
+ hasRequestStartAudioPermission: (targetRole: FcrUserRole | FcrPrivilegeUserRole) => boolean;
76
80
  }
77
81
  export type MemberWindowSlots = {
78
82
  topLeft?: React.ReactNode;
@@ -0,0 +1,9 @@
1
+ import { ToolTipProps } from 'agora-ui-foundation/lib/components/tooltip';
2
+ export declare const AnnotationCaptureTool: (props: {
3
+ popoverVisible?: boolean;
4
+ placement: ToolTipProps["placement"];
5
+ size?: number;
6
+ hideTitle?: boolean;
7
+ direction?: "horizontal" | "vertical";
8
+ setPopoverVisible?: (visible: boolean) => void;
9
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.AnnotationCaptureTool = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
11
+ var _item = require("../item");
12
+ var _react = require("react");
13
+ var _i18n = require("agora-ui-foundation/lib/i18n");
14
+ var _panel = require("../panel");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ var AnnotationCaptureTool = exports.AnnotationCaptureTool = function AnnotationCaptureTool(props) {
17
+ var t = (0, _i18n.useI18n)();
18
+ var size = props.size,
19
+ hideTitle = props.hideTitle,
20
+ popoverVisible = props.popoverVisible,
21
+ placement = props.placement,
22
+ direction = props.direction,
23
+ setPopoverVisible = props.setPopoverVisible;
24
+ var _useState = (0, _react.useState)(false),
25
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
26
+ visible = _useState2[0],
27
+ setVisible = _useState2[1];
28
+ var handleVisibleChange = function handleVisibleChange(visible) {
29
+ setVisible(visible);
30
+ setPopoverVisible === null || setPopoverVisible === void 0 || setPopoverVisible(visible);
31
+ };
32
+ var handleScreenshotClick = function handleScreenshotClick(hideWindow) {
33
+ return function () {
34
+ (window.parent.runtime || window.runtime).captureScreen({
35
+ hideWindow: hideWindow
36
+ });
37
+ handleVisibleChange(false);
38
+ };
39
+ };
40
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
41
+ placement: placement,
42
+ size: size,
43
+ hideTitle: hideTitle,
44
+ iconType: _type.FcrIconType.FCR_WHITEBOARD_SLICE,
45
+ title: t('fmt_screenshare_whiteboard_button_cutting'),
46
+ lineColor: "transparent",
47
+ visible: visible && popoverVisible,
48
+ onVisibleChange: handleVisibleChange,
49
+ showArrow: true,
50
+ content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_panel.AnnotationToolPanel, {
51
+ direction: direction,
52
+ size: "small",
53
+ header: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
54
+ size: size,
55
+ onClick: handleScreenshotClick(false),
56
+ iconType: _type.FcrIconType.FCR_WHITEBOARD_SLICE,
57
+ title: t('fmt_screenshare_whiteboard_button_screenshot'),
58
+ hideTitle: true
59
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
60
+ size: size,
61
+ onClick: handleScreenshotClick(true),
62
+ iconType: _type.FcrIconType.FCR_WIHITEBOARD_SLICEWITHOUTCLASSROOM,
63
+ title: t('fmt_screenshare_whiteboard_options_hideshot'),
64
+ hideTitle: true
65
+ })]
66
+ })
67
+ });
68
+ };
@@ -0,0 +1,11 @@
1
+ import { ToolTipProps } from 'agora-ui-foundation/lib/components/tooltip';
2
+ import { FcrBoardToolType } from 'fcr-core/lib/room-control/whiteboard-control/enums';
3
+ export declare const AnnotationCleanTool: (props: {
4
+ currentTool: FcrBoardToolType;
5
+ placement: ToolTipProps["placement"];
6
+ size?: number;
7
+ hideTitle?: boolean;
8
+ direction?: "horizontal" | "vertical";
9
+ setTool: (tool: FcrBoardToolType) => void;
10
+ clean: () => void;
11
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.AnnotationCleanTool = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
11
+ var _item = require("../item");
12
+ var _react = require("react");
13
+ var _i18n = require("agora-ui-foundation/lib/i18n");
14
+ var _panel = require("../panel");
15
+ var _enums = require("fcr-core/lib/room-control/whiteboard-control/enums");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ var AnnotationCleanTool = exports.AnnotationCleanTool = function AnnotationCleanTool(props) {
18
+ var t = (0, _i18n.useI18n)();
19
+ var size = props.size,
20
+ hideTitle = props.hideTitle,
21
+ currentTool = props.currentTool,
22
+ placement = props.placement,
23
+ direction = props.direction,
24
+ setTool = props.setTool,
25
+ clean = props.clean;
26
+ var _useState = (0, _react.useState)(false),
27
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
28
+ visible = _useState2[0],
29
+ setVisible = _useState2[1];
30
+ var handleVisibleChange = function handleVisibleChange(visible) {
31
+ setVisible(visible);
32
+ };
33
+ var handleEraserClick = function handleEraserClick() {
34
+ setTool(_enums.FcrBoardToolType.ERASER);
35
+ handleVisibleChange(false);
36
+ };
37
+ var handleEmptyClick = function handleEmptyClick() {
38
+ clean();
39
+ handleVisibleChange(false);
40
+ };
41
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
42
+ placement: placement,
43
+ size: size,
44
+ hideTitle: hideTitle,
45
+ active: currentTool === _enums.FcrBoardToolType.ERASER,
46
+ iconType: _type.FcrIconType.FCR_WHITEBOARD_ERASER,
47
+ title: t('fmt_screenshare_whiteboard_button_eraser'),
48
+ lineColor: "transparent",
49
+ visible: visible,
50
+ onVisibleChange: handleVisibleChange,
51
+ showArrow: true,
52
+ content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_panel.AnnotationToolPanel, {
53
+ direction: direction,
54
+ size: "small",
55
+ header: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
56
+ size: size,
57
+ active: currentTool === _enums.FcrBoardToolType.ERASER,
58
+ onClick: handleEraserClick,
59
+ iconType: _type.FcrIconType.FCR_WHITEBOARD_ERASER,
60
+ title: t('fmt_screenshare_whiteboard_button_eraser'),
61
+ hideTitle: true
62
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
63
+ size: size,
64
+ onClick: handleEmptyClick,
65
+ iconType: _type.FcrIconType.FCR_WHITEBOARD_ELIMINATE,
66
+ title: t('fmt_screenshare_whiteboard_button_empty'),
67
+ hideTitle: true
68
+ })]
69
+ })
70
+ });
71
+ };
@@ -0,0 +1,11 @@
1
+ export declare const AnnotationColorPanel: (props: {
2
+ size?: number;
3
+ hideTitle?: boolean;
4
+ colors: string[];
5
+ currentColor: string;
6
+ onClick: (color: string) => void;
7
+ direction?: "horizontal" | "vertical";
8
+ commonColors?: string[];
9
+ contextMenu?: React.ReactNode;
10
+ onContextMenuClick?: (color: string) => void;
11
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.AnnotationColorPanel = void 0;
8
+ require("core-js/modules/es.array.includes.js");
9
+ require("core-js/modules/es.array.map.js");
10
+ require("core-js/modules/es.object.to-string.js");
11
+ require("core-js/modules/es.string.includes.js");
12
+ require("core-js/modules/esnext.iterator.constructor.js");
13
+ require("core-js/modules/esnext.iterator.map.js");
14
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
15
+ var _item = require("../../item");
16
+ var _panel = require("../../panel");
17
+ var _i18n = require("agora-ui-foundation/lib/i18n");
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ var AnnotationColorPanel = exports.AnnotationColorPanel = function AnnotationColorPanel(props) {
20
+ var size = props.size,
21
+ hideTitle = props.hideTitle,
22
+ colors = props.colors,
23
+ currentColor = props.currentColor,
24
+ onClick = props.onClick,
25
+ _props$direction = props.direction,
26
+ direction = _props$direction === void 0 ? 'horizontal' : _props$direction,
27
+ commonColors = props.commonColors,
28
+ contextMenu = props.contextMenu,
29
+ onContextMenuClick = props.onContextMenuClick;
30
+ var transI18n = (0, _i18n.useI18n)();
31
+ return !contextMenu ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_panel.AnnotationToolPanel, {
32
+ type: "color",
33
+ direction: direction,
34
+ header: colors.map(function (color, index) {
35
+ return index < colors.length / 2 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
36
+ size: size,
37
+ active: currentColor === color,
38
+ iconType: _type.FcrIconType.FCR_COLOR,
39
+ color: color,
40
+ lineColor: currentColor === color ? color : 'transparent',
41
+ onClick: onClick,
42
+ selected: currentColor === color,
43
+ hideTitle: hideTitle
44
+ }, color);
45
+ }),
46
+ footer: colors.map(function (color, index) {
47
+ return index >= colors.length / 2 && /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
48
+ size: size,
49
+ active: currentColor === color,
50
+ iconType: _type.FcrIconType.FCR_COLOR,
51
+ color: color,
52
+ lineColor: currentColor === color ? color : 'transparent',
53
+ onClick: onClick,
54
+ selected: currentColor === color,
55
+ hideTitle: hideTitle
56
+ }, color);
57
+ })
58
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_panel.AnnotationToolPanel, {
59
+ size: "small",
60
+ footer: transI18n('fmt_screenshare_whiteboard_tips_righclick'),
61
+ direction: direction,
62
+ content: colors.map(function (color) {
63
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
64
+ size: size,
65
+ active: currentColor === color,
66
+ iconType: _type.FcrIconType.FCR_COLOR,
67
+ color: color,
68
+ lineColor: currentColor === color ? color : 'transparent',
69
+ onClick: onClick,
70
+ selected: commonColors ? commonColors === null || commonColors === void 0 ? void 0 : commonColors.includes(color) : currentColor === color,
71
+ hideTitle: hideTitle,
72
+ contextMenu: contextMenu,
73
+ onContextMenuClick: onContextMenuClick
74
+ }, color);
75
+ })
76
+ });
77
+ };
@@ -0,0 +1,14 @@
1
+ import { ToolTipProps } from 'agora-ui-foundation/lib/components/tooltip';
2
+ export declare const AnnotationColorTool: (props: {
3
+ colors: string[];
4
+ currentColor: string;
5
+ placement: ToolTipProps["placement"];
6
+ size?: number;
7
+ hideTitle?: boolean;
8
+ direction?: "horizontal" | "vertical";
9
+ commonColors?: string[];
10
+ setStrokeColor: (color: string) => void;
11
+ contextMenu?: React.ReactNode;
12
+ onContextMenuClick?: (color: string) => void;
13
+ selected?: boolean;
14
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.AnnotationColorTool = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
11
+ var _item = require("../item");
12
+ var _colorPanel = require("./color-panel");
13
+ var _mobxReact = require("mobx-react");
14
+ var _react = require("react");
15
+ var _i18n = require("agora-ui-foundation/lib/i18n");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ var AnnotationColorTool = exports.AnnotationColorTool = (0, _mobxReact.observer)(function (props) {
18
+ var size = props.size,
19
+ hideTitle = props.hideTitle,
20
+ colors = props.colors,
21
+ currentColor = props.currentColor,
22
+ placement = props.placement,
23
+ direction = props.direction,
24
+ commonColors = props.commonColors,
25
+ setStrokeColor = props.setStrokeColor,
26
+ contextMenu = props.contextMenu,
27
+ onContextMenuClick = props.onContextMenuClick,
28
+ selected = props.selected;
29
+ var t = (0, _i18n.useI18n)();
30
+ var _useState = (0, _react.useState)(false),
31
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
32
+ visible = _useState2[0],
33
+ setVisible = _useState2[1];
34
+ var handleClick = function handleClick(color) {
35
+ setStrokeColor(color);
36
+ setVisible(!visible);
37
+ };
38
+ var handleVisibleChange = function handleVisibleChange(visible) {
39
+ setVisible(visible);
40
+ };
41
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
42
+ placement: placement,
43
+ size: size,
44
+ hideTitle: hideTitle,
45
+ iconType: _type.FcrIconType.FCR_COLOR,
46
+ color: currentColor,
47
+ title: t('fmt_whiteboard_labels_colour'),
48
+ lineColor: "transparent",
49
+ visible: visible,
50
+ onVisibleChange: handleVisibleChange,
51
+ showArrow: true,
52
+ selected: selected,
53
+ commonColors: commonColors,
54
+ content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_colorPanel.AnnotationColorPanel, {
55
+ size: size,
56
+ contextMenu: contextMenu,
57
+ direction: direction,
58
+ hideTitle: hideTitle,
59
+ onClick: handleClick,
60
+ colors: colors,
61
+ currentColor: currentColor,
62
+ commonColors: commonColors,
63
+ onContextMenuClick: onContextMenuClick
64
+ })
65
+ });
66
+ });
@@ -0,0 +1,11 @@
1
+ import { FcrBoardShape, FcrBoardToolType } from 'fcr-core/lib/room-control/whiteboard-control/enums';
2
+ export declare const AnnotationGraphicPanel: (props: {
3
+ size?: number;
4
+ hideTitle?: boolean;
5
+ currentShape: FcrBoardShape;
6
+ setShape: (shape: FcrBoardShape) => void;
7
+ setTool: (tool: FcrBoardToolType) => void;
8
+ setStrokeWidth: (width: number) => void;
9
+ currentStrokeWidth: number;
10
+ direction?: "horizontal" | "vertical";
11
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.AnnotationGraphicPanel = void 0;
8
+ require("core-js/modules/es.array.map.js");
9
+ require("core-js/modules/es.object.to-string.js");
10
+ require("core-js/modules/esnext.iterator.constructor.js");
11
+ require("core-js/modules/esnext.iterator.map.js");
12
+ var _item = require("../../item");
13
+ var _panel = require("../../panel");
14
+ var _libs = require("./libs");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ var AnnotationGraphicPanel = exports.AnnotationGraphicPanel = function AnnotationGraphicPanel(props) {
17
+ var size = props.size,
18
+ hideTitle = props.hideTitle,
19
+ currentShape = props.currentShape,
20
+ setShape = props.setShape,
21
+ setTool = props.setTool,
22
+ setStrokeWidth = props.setStrokeWidth,
23
+ currentStrokeWidth = props.currentStrokeWidth,
24
+ direction = props.direction;
25
+ var handleShapeClick = function handleShapeClick(shape) {
26
+ return function () {
27
+ // onClick();
28
+ setShape(shape);
29
+ setTool((0, _libs.convertShapeToBoardToolType)(shape));
30
+ };
31
+ };
32
+ var handleLineWidthClick = function handleLineWidthClick(lineWidth) {
33
+ return function () {
34
+ // onClick();
35
+ setStrokeWidth(lineWidth);
36
+ };
37
+ };
38
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_panel.AnnotationToolPanel, {
39
+ direction: direction,
40
+ size: "small",
41
+ header: _libs.tools.map(function (tool) {
42
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
43
+ size: size,
44
+ onClick: handleShapeClick(tool.shape),
45
+ active: currentShape === tool.shape,
46
+ iconType: tool.iconType,
47
+ title: tool.tip,
48
+ hideTitle: hideTitle
49
+ }, tool.shape);
50
+ }),
51
+ footer: _libs.lineWidths.map(function (_ref, index) {
52
+ var iconType = _ref.iconType,
53
+ width = _ref.width;
54
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
55
+ size: size,
56
+ hideTitle: hideTitle,
57
+ onClick: handleLineWidthClick(width),
58
+ active: currentStrokeWidth === width,
59
+ iconType: iconType,
60
+ level: index + 1
61
+ }, width);
62
+ })
63
+ });
64
+ };
@@ -0,0 +1,12 @@
1
+ import { FcrIconType } from 'agora-ui-foundation/lib/components/icon/type';
2
+ import { FcrBoardShape, FcrBoardToolType } from 'fcr-core/lib/room-control/whiteboard-control/enums';
3
+ export declare const tools: {
4
+ iconType: FcrIconType;
5
+ shape: FcrBoardShape;
6
+ tip: string;
7
+ }[];
8
+ export declare const lineWidths: {
9
+ iconType: FcrIconType;
10
+ width: number;
11
+ }[];
12
+ export declare function convertShapeToBoardToolType(shape: FcrBoardShape): FcrBoardToolType;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.convertShapeToBoardToolType = convertShapeToBoardToolType;
8
+ exports.tools = exports.lineWidths = void 0;
9
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
10
+ var _enums = require("fcr-core/lib/room-control/whiteboard-control/enums");
11
+ var _i18n = require("agora-ui-foundation/lib/i18n");
12
+ var tools = exports.tools = [{
13
+ iconType: _type.FcrIconType.FCR_WHITEBOARD_SHAP_SQUARE,
14
+ shape: _enums.FcrBoardShape.Rectangle,
15
+ tip: (0, _i18n.transI18n)('fmt_whiteboard_tips_rectangle')
16
+ }, {
17
+ iconType: _type.FcrIconType.FCR_WHITEBOARD_SHAP_CIRCLE,
18
+ shape: _enums.FcrBoardShape.Ellipse,
19
+ tip: (0, _i18n.transI18n)('fmt_whiteboard_tips_circle')
20
+ }, {
21
+ iconType: _type.FcrIconType.FCR_WHITEBOARD_SHAP_TRIANGLE,
22
+ shape: _enums.FcrBoardShape.Triangle,
23
+ tip: (0, _i18n.transI18n)('fmt_whiteboard_tips_triangle')
24
+ }, {
25
+ iconType: _type.FcrIconType.FCR_WHITEBOARD_SHAP_LINE,
26
+ shape: _enums.FcrBoardShape.Straight,
27
+ tip: (0, _i18n.transI18n)('fmt_whiteboard_tips_straight')
28
+ }, {
29
+ iconType: _type.FcrIconType.FCR_WHITEBOARD_SHAP_ARROW,
30
+ shape: _enums.FcrBoardShape.Arrow,
31
+ tip: (0, _i18n.transI18n)('fmt_whiteboard_tips_arrow')
32
+ }];
33
+ var lineWidths = exports.lineWidths = [{
34
+ iconType: _type.FcrIconType.FCR_PENSIZE,
35
+ width: 2
36
+ }, {
37
+ iconType: _type.FcrIconType.FCR_PENSIZE,
38
+ width: 4
39
+ }, {
40
+ iconType: _type.FcrIconType.FCR_PENSIZE,
41
+ width: 5
42
+ }, {
43
+ iconType: _type.FcrIconType.FCR_PENSIZE,
44
+ width: 6
45
+ }];
46
+ function convertShapeToBoardToolType(shape) {
47
+ switch (shape) {
48
+ case _enums.FcrBoardShape.Arrow:
49
+ return _enums.FcrBoardToolType.ARROW;
50
+ case _enums.FcrBoardShape.Curve:
51
+ return _enums.FcrBoardToolType.CURVE;
52
+ case _enums.FcrBoardShape.Ellipse:
53
+ return _enums.FcrBoardToolType.ELLIPSE;
54
+ case _enums.FcrBoardShape.Pentagram:
55
+ return _enums.FcrBoardToolType.PENTAGRAM;
56
+ case _enums.FcrBoardShape.Rectangle:
57
+ return _enums.FcrBoardToolType.RECTANGLE;
58
+ case _enums.FcrBoardShape.Straight:
59
+ return _enums.FcrBoardToolType.STRAIGHT;
60
+ case _enums.FcrBoardShape.Triangle:
61
+ return _enums.FcrBoardToolType.TRIANGLE;
62
+ default:
63
+ return _enums.FcrBoardToolType.NONE;
64
+ }
65
+ }
@@ -0,0 +1,15 @@
1
+ import { FcrBoardShape, FcrBoardToolType } from 'fcr-core/lib/room-control/whiteboard-control/enums';
2
+ import { ToolTipProps } from 'agora-ui-foundation/lib/components/tooltip';
3
+ export declare const AnnotationGraphicTool: (props: {
4
+ size?: number;
5
+ currentColor: string;
6
+ currentTool: FcrBoardToolType;
7
+ currentShape: FcrBoardShape;
8
+ setShape: (shape: FcrBoardShape) => void;
9
+ setStrokeWidth: (width: number) => void;
10
+ currentStrokeWidth: number;
11
+ setTool: (tool: FcrBoardToolType) => void;
12
+ hideTitle?: boolean;
13
+ placement: ToolTipProps["placement"];
14
+ direction?: "horizontal" | "vertical";
15
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.AnnotationGraphicTool = void 0;
9
+ require("core-js/modules/es.array.find.js");
10
+ require("core-js/modules/es.array.some.js");
11
+ require("core-js/modules/es.object.to-string.js");
12
+ require("core-js/modules/esnext.iterator.constructor.js");
13
+ require("core-js/modules/esnext.iterator.find.js");
14
+ require("core-js/modules/esnext.iterator.some.js");
15
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
16
+ var _item = require("../item");
17
+ var _graphicPanel = require("./graphic-panel");
18
+ var _mobxReact = require("mobx-react");
19
+ var _react = require("react");
20
+ var _libs = require("./graphic-panel/libs");
21
+ var _i18n = require("agora-ui-foundation/lib/i18n");
22
+ var _jsxRuntime = require("react/jsx-runtime");
23
+ var AnnotationGraphicTool = exports.AnnotationGraphicTool = (0, _mobxReact.observer)(function (props) {
24
+ var size = props.size,
25
+ currentTool = props.currentTool,
26
+ currentColor = props.currentColor,
27
+ currentShape = props.currentShape,
28
+ setShape = props.setShape,
29
+ setStrokeWidth = props.setStrokeWidth,
30
+ currentStrokeWidth = props.currentStrokeWidth,
31
+ setTool = props.setTool,
32
+ hideTitle = props.hideTitle,
33
+ placement = props.placement,
34
+ direction = props.direction;
35
+ var _useState = (0, _react.useState)(false),
36
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
37
+ visible = _useState2[0],
38
+ setVisible = _useState2[1];
39
+ var t = (0, _i18n.useI18n)();
40
+ var handleClick = function handleClick() {
41
+ setVisible(!visible);
42
+ setTool((0, _libs.convertShapeToBoardToolType)(currentShape));
43
+ };
44
+ var handleShapeClick = function handleShapeClick(shape) {
45
+ setShape(shape);
46
+ setVisible(!visible);
47
+ };
48
+ var handleStrokeWidthClick = function handleStrokeWidthClick(width) {
49
+ setStrokeWidth(width);
50
+ setVisible(!visible);
51
+ };
52
+ var handleVisibleChange = function handleVisibleChange(visible) {
53
+ setVisible(visible);
54
+ };
55
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
56
+ size: size,
57
+ placement: placement,
58
+ hideTitle: hideTitle,
59
+ active: _libs.tools.some(function (tool) {
60
+ return (0, _libs.convertShapeToBoardToolType)(tool.shape) === currentTool;
61
+ }),
62
+ iconType: _libs.tools.find(function (tool) {
63
+ return tool.shape === currentShape;
64
+ }).iconType,
65
+ title: t('fmt_screenshare_whiteboard_button_shape'),
66
+ color: currentColor,
67
+ visible: visible,
68
+ onVisibleChange: handleVisibleChange,
69
+ onClick: handleClick,
70
+ showArrow: true,
71
+ content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_graphicPanel.AnnotationGraphicPanel, {
72
+ hideTitle: hideTitle,
73
+ size: size,
74
+ currentShape: currentShape,
75
+ setShape: handleShapeClick,
76
+ setTool: setTool,
77
+ setStrokeWidth: handleStrokeWidthClick,
78
+ currentStrokeWidth: currentStrokeWidth,
79
+ direction: direction
80
+ })
81
+ });
82
+ });
@@ -0,0 +1,5 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export declare const AnnotationGroupTool: (props: PropsWithChildren<{
3
+ size: number;
4
+ placement: "left" | "right";
5
+ }>) => import("react/jsx-runtime").JSX.Element;