fcr-ui-scene 3.6.1 → 3.6.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 (257) hide show
  1. package/lib/creator.d.ts +6 -0
  2. package/lib/creator.js +125 -24
  3. package/lib/electron/app.js +5 -4
  4. package/lib/electron/bootstrap-dev.js +3 -0
  5. package/lib/electron/bootstrap-sdk.js +4 -0
  6. package/lib/electron/injections.d.ts +5 -0
  7. package/lib/electron/injections.js +36 -8
  8. package/lib/electron/ipc/ipc.d.ts +1 -0
  9. package/lib/electron/ipc/ipc.js +4 -0
  10. package/lib/electron/main.js +16 -8
  11. package/lib/electron/plugins/screenshot.js +4 -2
  12. package/lib/electron/preload.js +7 -2
  13. package/lib/electron/window.js +4 -6
  14. package/lib/fragments/annotation/index.d.ts +11 -0
  15. package/lib/fragments/annotation/index.js +121 -0
  16. package/lib/fragments/annotation/libs.d.ts +55 -0
  17. package/lib/fragments/annotation/libs.js +93 -0
  18. package/lib/fragments/annotation/store.d.ts +30 -0
  19. package/lib/fragments/annotation/store.js +565 -0
  20. package/lib/fragments/annotation/view.d.ts +3 -0
  21. package/lib/fragments/annotation/view.js +31 -0
  22. package/lib/fragments/base.d.ts +10 -0
  23. package/lib/fragments/base.js +44 -0
  24. package/lib/modules/action-bar/components/screen-share/submenu.js +7 -6
  25. package/lib/modules/action-bar/index.css +11 -0
  26. package/lib/modules/action-bar/index.d.ts +2 -0
  27. package/lib/modules/action-bar/index.js +1 -0
  28. package/lib/modules/action-bar/store.d.ts +7 -9
  29. package/lib/modules/action-bar/store.js +49 -90
  30. package/lib/modules/annotation/board-cursor.css +76 -0
  31. package/lib/modules/annotation/components/control-bar/index.css +48 -0
  32. package/lib/modules/annotation/components/control-bar/index.d.ts +3 -0
  33. package/lib/modules/annotation/components/control-bar/index.js +141 -0
  34. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.d.ts +3 -0
  35. package/lib/modules/annotation/components/toolbar/components/color-tool/color-panel/index.js +46 -0
  36. package/lib/modules/annotation/components/toolbar/components/color-tool/index.d.ts +1 -0
  37. package/lib/modules/annotation/components/toolbar/components/color-tool/index.js +52 -0
  38. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.d.ts +3 -0
  39. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/index.js +61 -0
  40. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.d.ts +12 -0
  41. package/lib/modules/annotation/components/toolbar/components/graphic-tool/graphic-panel/libs.js +65 -0
  42. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.d.ts +1 -0
  43. package/lib/modules/annotation/components/toolbar/components/graphic-tool/index.js +68 -0
  44. package/lib/modules/annotation/components/toolbar/components/item/item.d.ts +18 -0
  45. package/lib/modules/annotation/components/toolbar/components/item/item.js +116 -0
  46. package/lib/modules/annotation/components/toolbar/components/item/style.css +43 -0
  47. package/lib/modules/annotation/components/toolbar/components/panel/index.d.ts +5 -0
  48. package/lib/modules/annotation/components/toolbar/components/panel/index.js +22 -0
  49. package/lib/modules/annotation/components/toolbar/components/panel/style.css +24 -0
  50. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.d.ts +1 -0
  51. package/lib/modules/annotation/components/toolbar/components/pen-tool/index.js +58 -0
  52. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.d.ts +3 -0
  53. package/lib/modules/annotation/components/toolbar/components/pen-tool/pen-panel/index.js +34 -0
  54. package/lib/modules/annotation/components/toolbar/components/tips/index.d.ts +2 -0
  55. package/lib/modules/annotation/components/toolbar/components/tips/index.js +25 -0
  56. package/lib/modules/annotation/components/toolbar/components/tips/style.css +19 -0
  57. package/lib/modules/annotation/components/toolbar/index.d.ts +0 -0
  58. package/lib/modules/annotation/components/toolbar/index.js +1 -0
  59. package/lib/modules/annotation/components/toolbar/store.d.ts +40 -0
  60. package/lib/modules/annotation/components/toolbar/store.js +279 -0
  61. package/lib/modules/annotation/components/toolbar/style.css +55 -0
  62. package/lib/modules/annotation/components/toolbar/view.d.ts +2 -0
  63. package/lib/modules/annotation/components/toolbar/view.js +120 -0
  64. package/lib/modules/annotation/index.d.ts +38 -0
  65. package/lib/modules/annotation/index.js +169 -0
  66. package/lib/modules/annotation/store.d.ts +93 -0
  67. package/lib/modules/annotation/store.js +673 -0
  68. package/lib/modules/annotation/style.css +26 -0
  69. package/lib/modules/annotation/view.d.ts +3 -0
  70. package/lib/modules/annotation/view.js +49 -0
  71. package/lib/modules/chat/view.js +112 -100
  72. package/lib/modules/components/annotation-menu/index.d.ts +7 -0
  73. package/lib/modules/components/annotation-menu/index.js +119 -0
  74. package/lib/modules/components/leave-meeting/components/assign-host.js +26 -23
  75. package/lib/modules/components/member-window/components/member-actions/components/audio-control.d.ts +0 -1
  76. package/lib/modules/components/member-window/components/member-actions/components/audio-control.js +10 -4
  77. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.d.ts +4 -2
  78. package/lib/modules/components/member-window/components/member-actions/components/icon-buttons/index.js +10 -6
  79. package/lib/modules/components/member-window/components/member-actions/components/icon-status.d.ts +0 -2
  80. package/lib/modules/components/member-window/components/member-actions/components/icon-status.js +3 -4
  81. package/lib/modules/components/member-window/components/member-actions/components/more-actions.d.ts +0 -3
  82. package/lib/modules/components/member-window/components/member-actions/components/more-actions.js +6 -32
  83. package/lib/modules/components/member-window/components/member-actions/components/share-status.js +11 -3
  84. package/lib/modules/components/member-window/components/member-actions/components/user-info.d.ts +0 -1
  85. package/lib/modules/components/member-window/components/member-actions/components/user-info.js +7 -10
  86. package/lib/modules/components/member-window/components/member-actions/components/user-tag.d.ts +0 -1
  87. package/lib/modules/components/member-window/components/member-actions/components/user-tag.js +0 -2
  88. package/lib/modules/components/member-window/components/member-actions/index.js +1 -32
  89. package/lib/modules/components/member-window/components/member-actions/store.d.ts +38 -1
  90. package/lib/modules/components/member-window/components/member-actions/store.js +130 -23
  91. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.d.ts +2 -1
  92. package/lib/modules/components/member-window/components/video-player/components/remote-video-player.js +6 -1
  93. package/lib/modules/components/member-window/components/video-player/index.d.ts +1 -0
  94. package/lib/modules/components/member-window/index.css +37 -0
  95. package/lib/modules/components/member-window/index.d.ts +1 -1
  96. package/lib/modules/components/member-window/index.js +8 -5
  97. package/lib/modules/components/member-window/types.d.ts +2 -0
  98. package/lib/modules/components/security-menu/index.js +7 -6
  99. package/lib/modules/control-bar/components/annotation-button/index.d.ts +1 -0
  100. package/lib/modules/control-bar/components/annotation-button/index.js +59 -0
  101. package/lib/modules/control-bar/index.d.ts +6 -6
  102. package/lib/modules/control-bar/index.js +5 -34
  103. package/lib/modules/control-bar/store.d.ts +27 -13
  104. package/lib/modules/control-bar/store.js +121 -126
  105. package/lib/modules/control-bar/view.js +50 -4
  106. package/lib/modules/dialog/components/annotation-tool/index.d.ts +4 -0
  107. package/lib/modules/dialog/components/annotation-tool/index.js +53 -0
  108. package/lib/modules/dialog/components/chat/index.js +1 -1
  109. package/lib/modules/dialog/components/control-bar/index.d.ts +0 -2
  110. package/lib/modules/dialog/components/control-bar/index.js +1 -3
  111. package/lib/modules/dialog/components/host-area-container/index.d.ts +12 -0
  112. package/lib/modules/dialog/components/host-area-container/index.js +214 -0
  113. package/lib/modules/dialog/components/participant/index.js +1 -1
  114. package/lib/modules/dialog/components/system-preference/index.js +1 -1
  115. package/lib/modules/dialog/components/video-window/index.js +1 -0
  116. package/lib/modules/dialog/hooks/use-popover-watcher.d.ts +14 -0
  117. package/lib/modules/dialog/hooks/use-popover-watcher.js +112 -0
  118. package/lib/modules/dialog/hooks/useElectron.d.ts +1 -0
  119. package/lib/modules/dialog/hooks/useElectron.js +13 -3
  120. package/lib/modules/dialog/index.d.ts +2 -3
  121. package/lib/modules/dialog/index.js +3 -26
  122. package/lib/modules/dialog/store.d.ts +14 -9
  123. package/lib/modules/dialog/store.js +56 -50
  124. package/lib/modules/event-confirm/components/window/index.d.ts +7 -0
  125. package/lib/modules/event-confirm/components/window/index.js +188 -0
  126. package/lib/modules/event-confirm/index.d.ts +4 -4
  127. package/lib/modules/event-confirm/index.js +6 -4
  128. package/lib/modules/event-confirm/store.d.ts +4 -5
  129. package/lib/modules/event-confirm/store.js +35 -26
  130. package/lib/modules/event-confirm/view.js +23 -171
  131. package/lib/modules/event-sound/index.js +1 -1
  132. package/lib/modules/layout/components/CommonVideoRenderer.js +33 -16
  133. package/lib/modules/layout/index.d.ts +4 -0
  134. package/lib/modules/layout/index.js +2 -0
  135. package/lib/modules/layout/store.d.ts +14 -2
  136. package/lib/modules/layout/store.js +77 -45
  137. package/lib/modules/layout/type.d.ts +7 -0
  138. package/lib/modules/participant/index.d.ts +2 -0
  139. package/lib/modules/participant/index.js +2 -1
  140. package/lib/modules/participant/store.d.ts +5 -2
  141. package/lib/modules/participant/store.js +73 -25
  142. package/lib/modules/setting/audio-settings/audio-settings.js +3 -14
  143. package/lib/modules/setting/index.d.ts +2 -0
  144. package/lib/modules/setting/index.js +3 -3
  145. package/lib/modules/setting/store.d.ts +8 -10
  146. package/lib/modules/setting/store.js +22 -20
  147. package/lib/modules/share-screen/components/selection/index.js +18 -42
  148. package/lib/modules/share-screen/index.d.ts +6 -2
  149. package/lib/modules/share-screen/index.js +4 -2
  150. package/lib/modules/share-screen/store.d.ts +41 -46
  151. package/lib/modules/share-screen/store.js +297 -718
  152. package/lib/modules/share-screen/view.js +2 -2
  153. package/lib/modules/state-bar/assets/fcr_grid_big.svg +1 -1
  154. package/lib/modules/state-bar/assets/fcr_listontop_big.svg +1 -1
  155. package/lib/modules/state-bar/index.css +8 -6
  156. package/lib/modules/state-bar/index.d.ts +4 -0
  157. package/lib/modules/state-bar/index.js +3 -1
  158. package/lib/modules/state-bar/layout-config.d.ts +1 -0
  159. package/lib/modules/state-bar/layout-config.js +15 -5
  160. package/lib/modules/state-bar/store.d.ts +9 -1
  161. package/lib/modules/state-bar/store.js +17 -2
  162. package/lib/modules/state-bar/view.js +9 -4
  163. package/lib/modules/video-window/components/members/index.js +2 -1
  164. package/lib/modules/waiting-room-layout/store.js +1 -1
  165. package/lib/modules/whiteboard/components/control-bar/store.d.ts +5 -1
  166. package/lib/modules/whiteboard/components/control-bar/store.js +10 -1
  167. package/lib/modules/whiteboard/components/toolbar/components/color-picker/components/picker.js +16 -5
  168. package/lib/modules/whiteboard/components/toolbar/components/eraser-picker.js +67 -12
  169. package/lib/modules/whiteboard/components/toolbar/components/expansion/index.js +22 -2
  170. package/lib/modules/whiteboard/components/toolbar/components/history.js +46 -14
  171. package/lib/modules/whiteboard/components/toolbar/components/item/index.js +3 -2
  172. package/lib/modules/whiteboard/components/toolbar/components/move-handle.js +1 -1
  173. package/lib/modules/whiteboard/components/toolbar/components/pen-picker.js +58 -16
  174. package/lib/modules/whiteboard/components/toolbar/components/screen-capture-picker.js +15 -4
  175. package/lib/modules/whiteboard/components/toolbar/components/shape-picker.js +45 -2
  176. package/lib/modules/whiteboard/components/toolbar/hooks/index.d.ts +14 -0
  177. package/lib/modules/whiteboard/components/toolbar/hooks/index.js +235 -7
  178. package/lib/modules/whiteboard/components/toolbar/index.d.ts +1 -1
  179. package/lib/modules/whiteboard/components/toolbar/index.js +1 -1
  180. package/lib/modules/whiteboard/components/toolbar/store.d.ts +13 -2
  181. package/lib/modules/whiteboard/components/toolbar/store.js +74 -24
  182. package/lib/modules/whiteboard/components/toolbar/{ style.css → style.css} +1 -0
  183. package/lib/modules/whiteboard/index.d.ts +2 -0
  184. package/lib/modules/whiteboard/index.js +22 -21
  185. package/lib/modules/whiteboard/style.css +0 -4
  186. package/lib/modules/whiteboard/view.js +8 -2
  187. package/lib/plugins/browser-runtime-plugin.js +10 -1
  188. package/lib/providers/annotation-provider.d.ts +128 -0
  189. package/lib/providers/annotation-provider.js +421 -0
  190. package/lib/providers/device-provider.d.ts +3 -3
  191. package/lib/providers/device-provider.js +8 -6
  192. package/lib/providers/event-provider.d.ts +3 -3
  193. package/lib/providers/interpreter-provider.d.ts +1 -0
  194. package/lib/providers/interpreter-provider.js +182 -154
  195. package/lib/providers/privilege-provider.d.ts +35 -6
  196. package/lib/providers/privilege-provider.js +105 -49
  197. package/lib/providers/renderer-provider.js +3 -7
  198. package/lib/providers/room-provider.d.ts +13 -1
  199. package/lib/providers/room-provider.js +21 -7
  200. package/lib/providers/screen-share-provider.d.ts +131 -34
  201. package/lib/providers/screen-share-provider.js +554 -173
  202. package/lib/providers/sharing-provider.d.ts +37 -0
  203. package/lib/{shared-data-source/screen-share-data-source.js → providers/sharing-provider.js} +102 -39
  204. package/lib/providers/user-setting-storage-provider.d.ts +20 -0
  205. package/lib/providers/user-setting-storage-provider.js +74 -0
  206. package/lib/runtime.d.ts +6 -1
  207. package/lib/scenes/main-scene.d.ts +7 -2
  208. package/lib/scenes/main-scene.js +55 -27
  209. package/lib/scenes/waiting-scene.d.ts +6 -0
  210. package/lib/scenes/waiting-scene.js +15 -5
  211. package/lib/shared-data-source/config.d.ts +1 -5
  212. package/lib/shared-data-source/config.js +11 -81
  213. package/lib/shared-data-source/member-data.d.ts +21 -5
  214. package/lib/shared-data-source/member-data.js +69 -17
  215. package/lib/shared-data-source/screen-share-data.d.ts +274 -0
  216. package/lib/shared-data-source/screen-share-data.js +390 -0
  217. package/lib/shared-data-source/security-data.d.ts +4 -1
  218. package/lib/shared-data-source/security-data.js +5 -2
  219. package/lib/shared-data-source/setting.d.ts +13 -13
  220. package/lib/shared-data-source/setting.js +16 -10
  221. package/lib/shared-data-source/video-window.d.ts +2 -1
  222. package/lib/shared-data-source/video-window.js +56 -36
  223. package/lib/translations/enUS.d.ts +8 -0
  224. package/lib/translations/enUS.js +9 -1
  225. package/lib/translations/zhCN.d.ts +8 -0
  226. package/lib/translations/zhCN.js +11 -3
  227. package/lib/type.d.ts +55 -1
  228. package/lib/ui-manager.d.ts +3 -2
  229. package/lib/ui-manager.js +6 -4
  230. package/lib/ui-scene.js +70 -50
  231. package/lib/utilities/constant.d.ts +10 -2
  232. package/lib/utilities/constant.js +8 -0
  233. package/lib/utilities/logger.d.ts +4 -0
  234. package/lib/utilities/logger.js +8 -1
  235. package/lib/utilities/renderer-event.d.ts +3 -0
  236. package/lib/utilities/renderer-event.js +14 -1
  237. package/lib/utilities/screen.js +2 -1
  238. package/lib/utilities/setting-config-storage.d.ts +5 -6
  239. package/lib/utilities/setting-config-storage.js +33 -39
  240. package/lib/utilities/tools.d.ts +19 -1
  241. package/lib/utilities/tools.js +51 -4
  242. package/package.json +9 -7
  243. package/public/assets/cursors/fcr_whiteboard_input.ico +0 -0
  244. package/public/assets/cursors/fcr_whiteboard_pen.ico +0 -0
  245. package/public/assets/cursors/fcr_whiteboard_shape_-straightline.ico +0 -0
  246. package/public/assets/cursors/fcr_whiteboard_shape_arrow.ico +0 -0
  247. package/public/assets/cursors/fcr_whiteboard_shape_circle.ico +0 -0
  248. package/public/assets/cursors/fcr_whiteboard_shape_rectangle.ico +0 -0
  249. package/public/assets/cursors/fcr_whiteboard_shape_triangle.ico +0 -0
  250. package/public/assets/fcr_chat_reddot.svg +3 -3
  251. package/public/assets/fcr_grid_big.svg +1 -1
  252. package/public/assets/fcr_leave2.svg +14 -14
  253. package/public/assets/fcr_listontop_big.svg +1 -1
  254. package/public/assets/step-gradient.svg +1 -1
  255. package/public/fragment.html +10 -0
  256. package/public/index.html +3 -1
  257. package/lib/shared-data-source/screen-share-data-source.d.ts +0 -37
@@ -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.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.async-iterator.find.js");
13
+ require("core-js/modules/esnext.async-iterator.some.js");
14
+ require("core-js/modules/esnext.iterator.constructor.js");
15
+ require("core-js/modules/esnext.iterator.find.js");
16
+ require("core-js/modules/esnext.iterator.some.js");
17
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
18
+ var _item = require("../item/item");
19
+ var _graphicPanel = require("./graphic-panel");
20
+ var _mobxReact = require("mobx-react");
21
+ var _store = require("../../store");
22
+ var _react = require("react");
23
+ var _libs = require("./graphic-panel/libs");
24
+ var _i18n = require("agora-ui-foundation/lib/i18n");
25
+ var _jsxRuntime = require("react/jsx-runtime");
26
+ var AnnotationGraphicTool = exports.AnnotationGraphicTool = (0, _mobxReact.observer)(function () {
27
+ var _useContext = (0, _react.useContext)(_store.AnnotationToolbarContext),
28
+ _useContext$observabl = _useContext.observables,
29
+ currentColor = _useContext$observabl.currentColor,
30
+ currentShape = _useContext$observabl.currentShape,
31
+ currentTool = _useContext$observabl.currentTool,
32
+ setTool = _useContext.setTool,
33
+ popoverVisible = _useContext.popoverVisible,
34
+ setPopoverVisible = _useContext.setPopoverVisible;
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
+ setPopoverVisible(!visible);
43
+ setTool((0, _libs.convertShapeToBoardToolType)(currentShape));
44
+ };
45
+ var handleVisibleChange = function handleVisibleChange(visible) {
46
+ setVisible(visible);
47
+ setPopoverVisible(visible);
48
+ };
49
+ (0, _react.useEffect)(function () {
50
+ !popoverVisible && setVisible(false);
51
+ }, [popoverVisible]);
52
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
53
+ active: _libs.tools.some(function (tool) {
54
+ return (0, _libs.convertShapeToBoardToolType)(tool.shape) === currentTool;
55
+ }),
56
+ iconType: _libs.tools.find(function (tool) {
57
+ return tool.shape === currentShape;
58
+ }).iconType,
59
+ title: t('fmt_screenshare_whiteboard_button_shape'),
60
+ color: currentColor,
61
+ visible: visible && popoverVisible,
62
+ onVisibleChange: handleVisibleChange,
63
+ onClick: handleClick,
64
+ content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_graphicPanel.AnnotationGraphicPanel, {
65
+ onClick: handleClick
66
+ })
67
+ });
68
+ });
@@ -0,0 +1,18 @@
1
+ import { FcrIconType } from 'agora-ui-foundation/lib/components/icon/type';
2
+ import './style.css';
3
+ export declare const AnnotationToolItem: (props: {
4
+ iconType: FcrIconType;
5
+ title?: string;
6
+ size?: number;
7
+ active?: boolean;
8
+ content?: React.ReactNode;
9
+ color?: string;
10
+ disabled?: boolean;
11
+ lineColor?: string;
12
+ onClick?: (value: string) => void;
13
+ visible?: boolean;
14
+ onVisibleChange?: (visible: boolean) => void;
15
+ level?: number;
16
+ selected?: boolean;
17
+ hideTitle?: boolean;
18
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,116 @@
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.AnnotationToolItem = void 0;
9
+ require("core-js/modules/es.array.concat.js");
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _icon = require("agora-ui-foundation/lib/components/icon");
12
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
13
+ var _tooltip = require("agora-ui-foundation/lib/components/tooltip");
14
+ var _popover = require("agora-ui-foundation/lib/components/popover");
15
+ var _react = require("react");
16
+ var _hostAreaContainer = require("../../../../../dialog/components/host-area-container");
17
+ require("./style.css");
18
+ var _jsxRuntime = require("react/jsx-runtime");
19
+ var AnnotationToolItem = exports.AnnotationToolItem = function AnnotationToolItem(props) {
20
+ var _props$iconType = props.iconType,
21
+ iconType = _props$iconType === void 0 ? _type.FcrIconType.FCR_WHITEBOARD_TEXT : _props$iconType,
22
+ title = props.title,
23
+ _props$size = props.size,
24
+ size = _props$size === void 0 ? 32 : _props$size,
25
+ _props$active = props.active,
26
+ active = _props$active === void 0 ? false : _props$active,
27
+ content = props.content,
28
+ color = props.color,
29
+ _props$disabled = props.disabled,
30
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
31
+ lineColor = props.lineColor,
32
+ onClick = props.onClick,
33
+ visible = props.visible,
34
+ onVisibleChange = props.onVisibleChange,
35
+ level = props.level,
36
+ selected = props.selected,
37
+ hideTitle = props.hideTitle;
38
+ var _useContext = (0, _react.useContext)(_hostAreaContainer.HotAreaContext),
39
+ placement = _useContext.placement;
40
+ var _useState = (0, _react.useState)(visible),
41
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
42
+ visibled = _useState2[0],
43
+ setVisible = _useState2[1];
44
+ var _useState3 = (0, _react.useState)(false),
45
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
46
+ hover = _useState4[0],
47
+ setHover = _useState4[1];
48
+ var defaultColor = "var(".concat(active || visibled ? "--fcr_ui_scene_ramp_brand6" : "--fcr_ui_scene_icontext1", ")");
49
+ var disabledColor = "".concat(disabled ? "var(--fcr_ui_scene_icontext3)" : defaultColor);
50
+ var handleClick = function handleClick() {
51
+ if (disabled) return;
52
+ onClick === null || onClick === void 0 || onClick(color || '');
53
+ };
54
+ var handleVisibleChange = function handleVisibleChange(visible) {
55
+ onVisibleChange === null || onVisibleChange === void 0 || onVisibleChange(visible);
56
+ setVisible(visible);
57
+ };
58
+ (0, _react.useEffect)(function () {
59
+ setVisible(!!visible);
60
+ }, [visible]);
61
+ var hasSelected = typeof selected === 'boolean';
62
+ var handleMouseEnter = function handleMouseEnter() {
63
+ hasSelected && setHover(!hover);
64
+ };
65
+ var element = /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
66
+ className: "annotation-toolbar-item ".concat((active || visibled) && !hasSelected ? 'is-active' : '', " ").concat(disabled ? 'is-disabled' : ''),
67
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
68
+ className: "annotation-toolbar-item-icon",
69
+ onMouseEnter: handleMouseEnter,
70
+ onMouseLeave: handleMouseEnter,
71
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
72
+ onClick: handleClick,
73
+ type: iconType,
74
+ size: size,
75
+ fill: "none",
76
+ colors: {
77
+ iconPrimary: color || disabledColor,
78
+ iconSecondary: hover ? color : lineColor || defaultColor,
79
+ level: level,
80
+ selected: selected
81
+ }
82
+ })
83
+ }), title && !hideTitle && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
84
+ className: "annotation-toolbar-item-title",
85
+ children: title
86
+ })]
87
+ });
88
+ return title ? content ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
89
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
90
+ showArrow: false,
91
+ content: title,
92
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, {
93
+ visible: visibled,
94
+ overlayOffset: 10,
95
+ overlayInnerStyle: {
96
+ width: 'fit-content'
97
+ },
98
+ placement: placement,
99
+ getTooltipContainer: function getTooltipContainer(e) {
100
+ return e;
101
+ },
102
+ trigger: "click",
103
+ showArrow: false,
104
+ content: content,
105
+ onVisibleChange: handleVisibleChange,
106
+ children: element
107
+ })
108
+ })
109
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
110
+ showArrow: false,
111
+ visible: visibled,
112
+ content: title,
113
+ onVisibleChange: handleVisibleChange,
114
+ children: element
115
+ }) : element;
116
+ };
@@ -0,0 +1,43 @@
1
+ .annotation-toolbar-item {
2
+ min-width: 36px;
3
+ max-width: 64px;
4
+ min-height: 36px;
5
+ max-height: 52px;
6
+ display: flex;
7
+ flex-direction: column;
8
+ align-items: center;
9
+ justify-content: center;
10
+ color: var(--fcr_ui_scene_icontext1);
11
+ cursor: pointer;
12
+ }
13
+
14
+ .annotation-toolbar-item-icon {
15
+ max-width: 44px;
16
+ min-width: 32px;
17
+ height: 32px;
18
+ border-radius: var(--fcr_cornerradius_xs);
19
+ display: flex;
20
+ justify-content: center;
21
+ }
22
+
23
+ .annotation-toolbar-item-title {
24
+ margin-top: 4px;
25
+ font-size: 12px;
26
+ font-weight: 300;
27
+ }
28
+
29
+ .annotation-toolbar-item.is-active > .annotation-toolbar-item-icon {
30
+ background: var(--fcr_ui_scene_ramp_brand0);
31
+ }
32
+
33
+ .annotation-toolbar-item.is-active > .annotation-toolbar-item-title {
34
+ color: var(--fcr_ui_scene_ramp_brand6);
35
+ }
36
+
37
+ .annotation-toolbar-item.is-disabled {
38
+ cursor: not-allowed;
39
+ }
40
+
41
+ .annotation-toolbar-item.is-disabled > .annotation-toolbar-item-title {
42
+ color: var(--fcr_ui_scene_icontext3);
43
+ }
@@ -0,0 +1,5 @@
1
+ import './style.css';
2
+ export declare const AnnotationToolPanel: (props: {
3
+ header: React.ReactNode;
4
+ footer?: React.ReactNode;
5
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,22 @@
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.AnnotationToolPanel = void 0;
8
+ require("./style.css");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ var AnnotationToolPanel = exports.AnnotationToolPanel = function AnnotationToolPanel(props) {
11
+ var footer = props.footer;
12
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
13
+ className: "annotation-toolbar-panel",
14
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
15
+ className: "annotation-toolbar-panel-header",
16
+ children: props.header
17
+ }), footer && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
18
+ className: "annotation-toolbar-panel-footer",
19
+ children: props.footer
20
+ })]
21
+ });
22
+ };
@@ -0,0 +1,24 @@
1
+ .annotation-toolbar-panel {
2
+ max-width: 300px;
3
+ height: auto;
4
+ background: var(fcr_mobile_ui_scene_color_popup_fill2);
5
+ border-radius: var(--fcr_cornerradius_l);
6
+ padding: 12px;
7
+ }
8
+
9
+ .annotation-toolbar-panel > div {
10
+ height: 36px;
11
+ display: flex;
12
+ gap: 12px;
13
+ box-sizing: content-box;
14
+ }
15
+
16
+ .annotation-toolbar-panel .annotation-toolbar-item {
17
+ width: 36px;
18
+ }
19
+
20
+ .annotation-toolbar-panel-footer {
21
+ border-top: 1px solid var(--fcr_ui_scene_line1);
22
+ padding-top: 8px;
23
+ margin-top: 8px;
24
+ }
@@ -0,0 +1 @@
1
+ export declare const AnnotationPenTool: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,58 @@
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.AnnotationPenTool = void 0;
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
12
+ var _item = require("../item/item");
13
+ var _penPanel = require("./pen-panel");
14
+ var _mobxReact = require("mobx-react");
15
+ var _store = require("../../store");
16
+ var _react = require("react");
17
+ var _enums = require("fcr-core/lib/room-control/whiteboard-control/enums");
18
+ var _i18n = require("agora-ui-foundation/lib/i18n");
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ var AnnotationPenTool = exports.AnnotationPenTool = (0, _mobxReact.observer)(function () {
21
+ var _useContext = (0, _react.useContext)(_store.AnnotationToolbarContext),
22
+ _useContext$observabl = _useContext.observables,
23
+ currentColor = _useContext$observabl.currentColor,
24
+ currentTool = _useContext$observabl.currentTool,
25
+ setTool = _useContext.setTool,
26
+ popoverVisible = _useContext.popoverVisible,
27
+ setPopoverVisible = _useContext.setPopoverVisible;
28
+ var _useState = (0, _react.useState)(false),
29
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
30
+ visible = _useState2[0],
31
+ setVisible = _useState2[1];
32
+ var handleClick = function handleClick() {
33
+ setVisible(!visible);
34
+ setPopoverVisible(!visible);
35
+ setTool(_enums.FcrBoardToolType.CURVE);
36
+ };
37
+ var handleVisibleChange = function handleVisibleChange(visible) {
38
+ setVisible(visible);
39
+ setPopoverVisible(visible);
40
+ };
41
+ (0, _react.useEffect)(function () {
42
+ !popoverVisible && setVisible(false);
43
+ }, [popoverVisible]);
44
+ var t = (0, _i18n.useI18n)();
45
+ var penMap = (0, _defineProperty2["default"])({}, _enums.FcrBoardToolType.CURVE, _type.FcrIconType.FCR_WHITEBOARD_PED5);
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
47
+ active: currentTool in penMap,
48
+ iconType: currentTool in penMap ? penMap[currentTool] : _type.FcrIconType.FCR_WHITEBOARD_PED5,
49
+ title: t('fmt_screenshare_whiteboard_button_paintbrush'),
50
+ lineColor: currentColor,
51
+ visible: visible && popoverVisible,
52
+ onVisibleChange: handleVisibleChange,
53
+ onClick: handleClick,
54
+ content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_penPanel.AnnotationPenPanel, {
55
+ onClick: handleClick
56
+ })
57
+ });
58
+ });
@@ -0,0 +1,3 @@
1
+ export declare const AnnotationPenPanel: (props: {
2
+ onClick: () => void;
3
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,34 @@
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.AnnotationPenPanel = void 0;
8
+ require("core-js/modules/es.array.map.js");
9
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
10
+ var _item = require("../../item/item");
11
+ var _panel = require("../../panel");
12
+ var _mobxReact = require("mobx-react");
13
+ var _react = require("react");
14
+ var _store = require("../../../store");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ var AnnotationPenPanel = exports.AnnotationPenPanel = (0, _mobxReact.observer)(function (props) {
17
+ var _useContext = (0, _react.useContext)(_store.AnnotationToolbarContext),
18
+ currentStrokeWidth = _useContext.observables.currentStrokeWidth,
19
+ setStrokeWidth = _useContext.setStrokeWidth;
20
+ var _onClick = props.onClick;
21
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_panel.AnnotationToolPanel, {
22
+ header: [2, 4, 5, 6].map(function (width, index) {
23
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
24
+ active: currentStrokeWidth === width,
25
+ iconType: _type.FcrIconType.FCR_PENSIZE_STRAIGHT,
26
+ level: index + 1,
27
+ onClick: function onClick() {
28
+ _onClick();
29
+ setStrokeWidth(width);
30
+ }
31
+ }, width);
32
+ })
33
+ });
34
+ });
@@ -0,0 +1,2 @@
1
+ import './style.css';
2
+ export declare const AnnotationToolbarTips: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,25 @@
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.AnnotationToolbarTips = void 0;
8
+ var _icon = require("agora-ui-foundation/lib/components/icon");
9
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
10
+ require("./style.css");
11
+ var _i18n = require("agora-ui-foundation/lib/i18n");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ var AnnotationToolbarTips = exports.AnnotationToolbarTips = function AnnotationToolbarTips() {
14
+ var t = (0, _i18n.useI18n)();
15
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
16
+ className: "annotation-toolbar-tips",
17
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
18
+ type: _type.FcrIconType.FCR_SHOWVIDEO,
19
+ size: 24,
20
+ colors: {
21
+ iconPrimary: 'var(--fcr_ui_scene_icontext1)'
22
+ }
23
+ }), t('fmt_screenshare_toast_annotations_visible_participants')]
24
+ });
25
+ };
@@ -0,0 +1,19 @@
1
+ .annotation-toolbar-tips {
2
+ position: absolute;
3
+ left: 50%;
4
+ transform: translateX(-104px);
5
+ /* width: 208px; */
6
+ height: 32px;
7
+ background: var(--fcr_mobile_ui_scene_color_popup_fill2);
8
+ box-shadow: var(--fcr_web_light_dropup);
9
+ border-radius: var(--fcr_cornerradius_m);
10
+ font-size: 12px;
11
+ color: var(--fcr_ui_scene_text1);
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ z-index: 10;
16
+ gap: 4px;
17
+ top: -40px;
18
+ padding: 2px 8px;
19
+ }
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,40 @@
1
+ import { FcrBoardShape, FcrBoardToolType } from 'fcr-core/lib/room-control/whiteboard-control/enums';
2
+ import { FcrUIPrivilegeProvider } from '../../../../providers/privilege-provider';
3
+ export declare class AnnotationToolbarStore {
4
+ private _privilegeProvider;
5
+ private _tipsTimer;
6
+ private _disposer;
7
+ accessor observables: {
8
+ currentTool: FcrBoardToolType;
9
+ currentShape: FcrBoardShape;
10
+ currentColor: string;
11
+ currentStrokeWidth: number;
12
+ redoSteps: boolean;
13
+ undoSteps: boolean;
14
+ lastPen: FcrBoardToolType;
15
+ lastShape: FcrBoardShape;
16
+ colors: string[];
17
+ };
18
+ accessor isTipsVisible: boolean;
19
+ accessor popoverVisible: boolean;
20
+ get hasAnnotationAllowWritePermission(): boolean;
21
+ get allowAnnotationWriteState(): boolean;
22
+ constructor({ privilegeProvider }: {
23
+ privilegeProvider: FcrUIPrivilegeProvider;
24
+ });
25
+ redo(): void;
26
+ undo(): void;
27
+ clean(): void;
28
+ setTool(tool: FcrBoardToolType): void;
29
+ setPen(shape: FcrBoardShape): void;
30
+ setShape(shape: FcrBoardShape): void;
31
+ setStrokeColor(color: string): void;
32
+ setStrokeWidth(strokeWidth: number): void;
33
+ onTooltipMount(dom: HTMLDivElement): void;
34
+ onTooltipUnmount(): void;
35
+ setPopoverVisible(visible: boolean): void;
36
+ captureScreen(): void;
37
+ setAllowAnnotationWrite(allow: boolean): void;
38
+ release(): void;
39
+ }
40
+ export declare const AnnotationToolbarContext: import("react").Context<AnnotationToolbarStore>;