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
@@ -0,0 +1,43 @@
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.AnnotationGroupTool = 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 _panel = require("../panel");
13
+ var _react = require("react");
14
+ var _i18n = require("agora-ui-foundation/lib/i18n");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ var AnnotationGroupTool = exports.AnnotationGroupTool = function AnnotationGroupTool(props) {
17
+ var size = props.size,
18
+ placement = props.placement,
19
+ children = props.children;
20
+ var t = (0, _i18n.useI18n)();
21
+ var _useState = (0, _react.useState)(false),
22
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
23
+ visible = _useState2[0],
24
+ setVisible = _useState2[1];
25
+ var handleClick = function handleClick() {
26
+ setVisible(!visible);
27
+ };
28
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
29
+ size: size,
30
+ iconType: _type.FcrIconType.FCR_SUBTRACT,
31
+ title: t('fmt_screenshare_whiteboard_button_additionaltools'),
32
+ hideTitle: true,
33
+ placement: placement,
34
+ visible: visible,
35
+ onClick: handleClick,
36
+ onVisibleChange: setVisible,
37
+ content: /*#__PURE__*/(0, _jsxRuntime.jsx)(_panel.AnnotationToolPanel, {
38
+ size: "small",
39
+ direction: "vertical",
40
+ header: children
41
+ })
42
+ });
43
+ };
@@ -0,0 +1,2 @@
1
+ declare const FoldIcon: () => import("react/jsx-runtime").JSX.Element;
2
+ export default FoldIcon;
@@ -0,0 +1,41 @@
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["default"] = void 0;
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ var FoldIcon = function FoldIcon() {
12
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("svg", {
13
+ width: "16",
14
+ height: "72",
15
+ viewBox: "0 0 16 72",
16
+ fill: "none",
17
+ xmlns: "http://www.w3.org/2000/svg",
18
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("g", {
19
+ clipPath: "url(#clip0_9209_166297)",
20
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
21
+ d: "M9.49744 11.6558C12.3854 14.6399 14 18.63 14 22.7827L14 49.2173C14 53.37 12.3854 57.3601 9.49744 60.3442L7 62.9248C4.68094 64.9898 2.69913 67.4048 1.12644 70.0823L-2.86197e-07 72L2.86102e-06 -6.11959e-07L1.12644 1.91773C2.69914 4.5952 4.68094 7.0102 7 9.07519L9.49744 11.6558Z",
22
+ fill: "#2F2F2F",
23
+ fillOpacity: "0.95"
24
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
25
+ d: "M6.56598 35.0095L8.13153 32.2698C8.6403 31.3795 10 31.7401 10 32.7656L10 39.2344C10 40.2599 8.64053 40.6209 8.13176 39.7306L6.56702 36.9923C6.21566 36.3774 6.21463 35.6244 6.56598 35.0095Z",
26
+ fill: "#4262FF"
27
+ })]
28
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("defs", {
29
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("clipPath", {
30
+ id: "clip0_9209_166297",
31
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("rect", {
32
+ width: "72",
33
+ height: "16",
34
+ fill: "white",
35
+ transform: "translate(16) rotate(90)"
36
+ })
37
+ })
38
+ })]
39
+ });
40
+ };
41
+ var _default = exports["default"] = FoldIcon;
@@ -0,0 +1 @@
1
+ export default function MoveIcon(): 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
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = MoveIcon;
8
+ var _jsxRuntime = require("react/jsx-runtime");
9
+ function MoveIcon() {
10
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("svg", {
11
+ width: "40",
12
+ height: "16",
13
+ viewBox: "0 0 40 16",
14
+ fill: "none",
15
+ xmlns: "http://www.w3.org/2000/svg",
16
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("circle", {
17
+ cx: "7.5",
18
+ cy: "4.5",
19
+ r: "1.5",
20
+ fill: "black",
21
+ fillOpacity: "0.1"
22
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", {
23
+ cx: "7.5",
24
+ cy: "10.5",
25
+ r: "1.5",
26
+ fill: "black",
27
+ fillOpacity: "0.1"
28
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", {
29
+ cx: "15.5",
30
+ cy: "4.5",
31
+ r: "1.5",
32
+ fill: "black",
33
+ fillOpacity: "0.1"
34
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", {
35
+ cx: "15.5",
36
+ cy: "10.5",
37
+ r: "1.5",
38
+ fill: "black",
39
+ fillOpacity: "0.1"
40
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", {
41
+ cx: "23.5",
42
+ cy: "4.5",
43
+ r: "1.5",
44
+ fill: "black",
45
+ fillOpacity: "0.1"
46
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", {
47
+ cx: "23.5",
48
+ cy: "10.5",
49
+ r: "1.5",
50
+ fill: "black",
51
+ fillOpacity: "0.1"
52
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", {
53
+ cx: "31.5",
54
+ cy: "4.5",
55
+ r: "1.5",
56
+ fill: "black",
57
+ fillOpacity: "0.1"
58
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", {
59
+ cx: "31.5",
60
+ cy: "10.5",
61
+ r: "1.5",
62
+ fill: "black",
63
+ fillOpacity: "0.1"
64
+ })]
65
+ });
66
+ }
@@ -0,0 +1,25 @@
1
+ import { FcrIconType } from 'agora-ui-foundation/lib/components/icon/type';
2
+ import { ToolTipProps } from 'agora-ui-foundation/lib/components/tooltip';
3
+ import './style.css';
4
+ export declare const toolBarItemClassName = "annotation-toolbar-item";
5
+ export declare const AnnotationToolItem: (props: {
6
+ iconType: FcrIconType;
7
+ title?: string;
8
+ size?: number;
9
+ active?: boolean;
10
+ content?: React.ReactNode;
11
+ color?: string;
12
+ disabled?: boolean;
13
+ lineColor?: string;
14
+ onClick?: (value: string) => void;
15
+ visible?: boolean;
16
+ onVisibleChange?: (visible: boolean) => void;
17
+ level?: number;
18
+ selected?: boolean;
19
+ hideTitle?: boolean;
20
+ placement?: ToolTipProps["placement"];
21
+ contextMenu?: React.ReactNode;
22
+ showArrow?: boolean;
23
+ onContextMenuClick?: (color: string) => void;
24
+ commonColors?: string[];
25
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,165 @@
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.toolBarItemClassName = exports.AnnotationToolItem = void 0;
9
+ require("core-js/modules/es.array.concat.js");
10
+ require("core-js/modules/es.array.includes.js");
11
+ require("core-js/modules/es.string.includes.js");
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+ var _icon = require("agora-ui-foundation/lib/components/icon");
14
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
15
+ var _tooltip = require("agora-ui-foundation/lib/components/tooltip");
16
+ var _popover = require("agora-ui-foundation/lib/components/popover");
17
+ var _react = require("react");
18
+ require("./style.css");
19
+ var _jsxRuntime = require("react/jsx-runtime");
20
+ var toolBarItemClassName = exports.toolBarItemClassName = 'annotation-toolbar-item';
21
+ var AnnotationToolItem = exports.AnnotationToolItem = function AnnotationToolItem(props) {
22
+ var _props$iconType = props.iconType,
23
+ iconType = _props$iconType === void 0 ? _type.FcrIconType.FCR_WHITEBOARD_TEXT : _props$iconType,
24
+ title = props.title,
25
+ _props$size = props.size,
26
+ size = _props$size === void 0 ? 32 : _props$size,
27
+ _props$active = props.active,
28
+ active = _props$active === void 0 ? false : _props$active,
29
+ content = props.content,
30
+ color = props.color,
31
+ _props$disabled = props.disabled,
32
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
33
+ lineColor = props.lineColor,
34
+ onClick = props.onClick,
35
+ visible = props.visible,
36
+ onVisibleChange = props.onVisibleChange,
37
+ level = props.level,
38
+ selected = props.selected,
39
+ hideTitle = props.hideTitle,
40
+ placement = props.placement,
41
+ contextMenu = props.contextMenu,
42
+ _props$showArrow = props.showArrow,
43
+ showArrow = _props$showArrow === void 0 ? false : _props$showArrow,
44
+ onContextMenuClick = props.onContextMenuClick,
45
+ commonColors = props.commonColors;
46
+ var _useState = (0, _react.useState)(visible),
47
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
48
+ visibled = _useState2[0],
49
+ setVisible = _useState2[1];
50
+ var _useState3 = (0, _react.useState)(false),
51
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
52
+ hover = _useState4[0],
53
+ setHover = _useState4[1];
54
+ var defaultColor = "var(".concat(active || visibled ? "--fcr_ui_scene_ramp_brand6" : "--fcr_ui_scene_icontext1", ")");
55
+ var disabledColor = "".concat(disabled ? "var(--fcr_ui_scene_icontext3)" : defaultColor);
56
+ var _useState5 = (0, _react.useState)(false),
57
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
58
+ contextMenuVisible = _useState6[0],
59
+ setContextMenuVisible = _useState6[1];
60
+ var handleClick = function handleClick() {
61
+ if (disabled) return;
62
+ onClick === null || onClick === void 0 || onClick(color || '');
63
+ };
64
+ var handleVisibleChange = function handleVisibleChange(visible) {
65
+ onVisibleChange === null || onVisibleChange === void 0 || onVisibleChange(visible);
66
+ setVisible(visible);
67
+ };
68
+ var handleContextMenu = function handleContextMenu(e) {
69
+ e.preventDefault();
70
+ setContextMenuVisible(true);
71
+ };
72
+ (0, _react.useEffect)(function () {
73
+ setVisible(!!visible);
74
+ }, [visible]);
75
+ var hasSelected = typeof selected === 'boolean';
76
+ var handleMouseEnter = function handleMouseEnter() {
77
+ hasSelected && setHover(!hover);
78
+ };
79
+ var handleMouseLeave = function handleMouseLeave() {
80
+ setContextMenuVisible(false);
81
+ };
82
+ var colorIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
83
+ onClick: handleClick,
84
+ type: iconType,
85
+ size: size,
86
+ fill: "none",
87
+ colors: {
88
+ iconPrimary: color || disabledColor,
89
+ iconSecondary: hover && !commonColors ? color : lineColor || defaultColor,
90
+ level: level,
91
+ selected: selected
92
+ }
93
+ });
94
+ var iconElement = contextMenu ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, {
95
+ visible: contextMenuVisible,
96
+ overlayOffset: 0,
97
+ overlayInnerStyle: {
98
+ width: 'fit-content'
99
+ },
100
+ placement: "bottom",
101
+ showArrow: true,
102
+ trigger: "contextMenu",
103
+ size: "small",
104
+ content: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
105
+ className: "annotation-toolbar-item-context-menu",
106
+ onMouseLeave: handleMouseLeave,
107
+ onClick: function onClick() {
108
+ return onContextMenuClick === null || onContextMenuClick === void 0 ? void 0 : onContextMenuClick(color || '');
109
+ },
110
+ children: contextMenu
111
+ }),
112
+ children: colorIcon
113
+ }) : colorIcon;
114
+ var element = /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
115
+ className: "".concat(toolBarItemClassName, " ").concat((active || visibled) && !hasSelected ? 'is-active' : '', " ").concat(disabled ? 'is-disabled' : ''),
116
+ onMouseLeave: handleMouseLeave,
117
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
118
+ className: "annotation-toolbar-item-icon",
119
+ onMouseEnter: handleMouseEnter,
120
+ onMouseLeave: handleMouseEnter,
121
+ onContextMenu: contextMenu ? handleContextMenu : undefined,
122
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
123
+ className: commonColors ? "annotation-toolbar-item-icon-wrapper" : '',
124
+ children: [!(commonColors !== null && commonColors !== void 0 && commonColors.includes(color || '')) && iconElement, content && !commonColors && /*#__PURE__*/(0, _jsxRuntime.jsx)(_icon.FcrIcon, {
125
+ type: _type.FcrIconType.FCR_WHITEBOARD_LOWERRIGHTARROW,
126
+ size: 4,
127
+ className: "fcr-board-toolbar-expansion-icon"
128
+ })]
129
+ })
130
+ }), title && !hideTitle && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
131
+ className: "annotation-toolbar-item-title",
132
+ children: title
133
+ })]
134
+ });
135
+ return title ? content ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
136
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
137
+ showArrow: false,
138
+ content: title,
139
+ placement: placement,
140
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_popover.FcrPopover, {
141
+ visible: visibled,
142
+ overlayOffset: 10,
143
+ overlayInnerStyle: {
144
+ width: 'fit-content'
145
+ },
146
+ placement: placement,
147
+ getTooltipContainer: function getTooltipContainer(e) {
148
+ return e;
149
+ },
150
+ trigger: "click",
151
+ showArrow: showArrow,
152
+ content: content,
153
+ onVisibleChange: handleVisibleChange,
154
+ children: element
155
+ })
156
+ })
157
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_tooltip.FcrToolTip, {
158
+ showArrow: showArrow,
159
+ visible: visibled,
160
+ content: title,
161
+ onVisibleChange: handleVisibleChange,
162
+ placement: placement,
163
+ children: element
164
+ }) : element;
165
+ };
@@ -0,0 +1,94 @@
1
+ .annotation-toolbar-item {
2
+ min-width: 32px;
3
+ max-width: 64px;
4
+ min-height: 32px;
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
+ position: relative;
13
+ }
14
+
15
+ .annotation-toolbar-item .fcr-popover .fcr-tooltip-inner {
16
+ overflow: inherit !important;
17
+ }
18
+
19
+ .annotation-toolbar-item-icon {
20
+ max-width: 44px;
21
+ min-width: 32px;
22
+ height: 32px;
23
+ border-radius: var(--fcr_cornerradius_xs);
24
+ display: flex;
25
+ justify-content: center;
26
+ align-items: center;
27
+ }
28
+
29
+ .annotation-toolbar-item-title {
30
+ margin-top: 4px;
31
+ font-size: 12px;
32
+ font-weight: 300;
33
+ }
34
+
35
+ /* .annotation-toolbar-item:hover > .annotation-toolbar-item-icon {
36
+ background: var(--fcr_ui_scene_ramp_brand1);
37
+ }
38
+
39
+ .annotation-toolbar-item.hover > .annotation-toolbar-item-title {
40
+ color: var(--fcr_ui_scene_ramp_brand6);
41
+ } */
42
+
43
+ .annotation-toolbar-item.is-active > .annotation-toolbar-item-icon {
44
+ background: var(--fcr_ui_scene_ramp_brand0);
45
+ }
46
+
47
+ .annotation-toolbar-item.is-active > .annotation-toolbar-item-title {
48
+ color: var(--fcr_ui_scene_ramp_brand6);
49
+ }
50
+
51
+ .annotation-toolbar-item.is-disabled {
52
+ cursor: not-allowed;
53
+ }
54
+
55
+ .annotation-toolbar-item.is-disabled > .annotation-toolbar-item-title {
56
+ color: var(--fcr_ui_scene_icontext3);
57
+ }
58
+
59
+ .annotation-toolbar-item-context-menu {
60
+ color: var(--fcr_ui_scene_icontext1);
61
+ line-height: 100%;
62
+ }
63
+ .annotation-toolbar-item-icon-wrapper {
64
+ width: 18px;
65
+ height: 18px;
66
+ border-radius: 50%;
67
+ background: conic-gradient(
68
+ from 180deg at 50% 50%,
69
+ #ff7171 0deg,
70
+ #ffa471 30deg,
71
+ #ffe37f 63.75deg,
72
+ #e3ff75 91.88deg,
73
+ #a9ff75 125.63deg,
74
+ #79ff8f 163.12deg,
75
+ #72ffe6 189.38deg,
76
+ #70cff8 210deg,
77
+ #6880ff 232.5deg,
78
+ #7856ff 260.62deg,
79
+ #dd56ff 277.5deg,
80
+ #ff56da 303.75deg,
81
+ #ff3797 327.96deg,
82
+ #ff6464 340.25deg,
83
+ #ff5656 359.93deg,
84
+ #ff7171 360deg
85
+ );
86
+ display: flex;
87
+ justify-content: center;
88
+ align-items: center;
89
+ }
90
+ .annotation-toolbar-item-icon-wrapper > svg {
91
+ position: absolute;
92
+ width: 28px;
93
+ height: 28px;
94
+ }
@@ -0,0 +1,12 @@
1
+ import { ToolTipProps } from 'agora-ui-foundation/lib/components/tooltip';
2
+ export declare const MultipleColorTool: (props: {
3
+ coverCount?: number;
4
+ commonColors: string[];
5
+ currentColor: string;
6
+ colors: string[];
7
+ setStrokeColor: (color: string) => void;
8
+ placement: ToolTipProps["placement"];
9
+ themeColors: string[];
10
+ size?: number;
11
+ onContextMenuClick?: (color: string[]) => void;
12
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,75 @@
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.MultipleColorTool = void 0;
9
+ require("core-js/modules/es.array.filter.js");
10
+ require("core-js/modules/es.array.includes.js");
11
+ require("core-js/modules/es.array.map.js");
12
+ require("core-js/modules/es.object.to-string.js");
13
+ require("core-js/modules/es.string.includes.js");
14
+ require("core-js/modules/esnext.iterator.constructor.js");
15
+ require("core-js/modules/esnext.iterator.filter.js");
16
+ require("core-js/modules/esnext.iterator.map.js");
17
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
18
+ var _type = require("agora-ui-foundation/lib/components/icon/type");
19
+ var _item = require("../item");
20
+ var _colorTool = require("../color-tool");
21
+ var _button = require("agora-ui-foundation/lib/components/button");
22
+ var _i18n = require("agora-ui-foundation/lib/i18n");
23
+ var _jsxRuntime = require("react/jsx-runtime");
24
+ var MultipleColorTool = exports.MultipleColorTool = function MultipleColorTool(props) {
25
+ var transI18n = (0, _i18n.useI18n)();
26
+ var _props$coverCount = props.coverCount,
27
+ coverCount = _props$coverCount === void 0 ? 0 : _props$coverCount,
28
+ commonColors = props.commonColors,
29
+ currentColor = props.currentColor,
30
+ setStrokeColor = props.setStrokeColor,
31
+ placement = props.placement,
32
+ themeColors = props.themeColors,
33
+ size = props.size,
34
+ onContextMenuClick = props.onContextMenuClick;
35
+ var handleContextMenuClick = function handleContextMenuClick(color) {
36
+ var _ref = commonColors || [],
37
+ _ref2 = (0, _slicedToArray2["default"])(_ref, 1),
38
+ firstColor = _ref2[0];
39
+ onContextMenuClick === null || onContextMenuClick === void 0 || onContextMenuClick(firstColor ? [color, firstColor] : [color]);
40
+ };
41
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
42
+ children: [commonColors === null || commonColors === void 0 ? void 0 : commonColors.filter(function (_, index) {
43
+ return commonColors.length - 1 - index > coverCount;
44
+ }).map(function (color) {
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_item.AnnotationToolItem, {
46
+ size: currentColor === color ? 26 : size,
47
+ hideTitle: true,
48
+ iconType: _type.FcrIconType.FCR_COLOR,
49
+ color: color,
50
+ lineColor: currentColor === color ? color : 'transparent',
51
+ onClick: function onClick() {
52
+ return setStrokeColor(color);
53
+ }
54
+ });
55
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_colorTool.AnnotationColorTool, {
56
+ direction: "vertical",
57
+ placement: placement,
58
+ size: size,
59
+ currentColor: currentColor,
60
+ colors: themeColors,
61
+ commonColors: commonColors,
62
+ setStrokeColor: setStrokeColor,
63
+ selected: !(commonColors !== null && commonColors !== void 0 && commonColors.includes(currentColor)),
64
+ hideTitle: true,
65
+ contextMenu: /*#__PURE__*/(0, _jsxRuntime.jsx)(_button.FcrButton, {
66
+ type: "gray",
67
+ block: true,
68
+ size: "XXS",
69
+ shape: "rounded",
70
+ children: transI18n('fmt_screenshare_whiteboard_button_setcolor')
71
+ }),
72
+ onContextMenuClick: handleContextMenuClick
73
+ })]
74
+ });
75
+ };
@@ -0,0 +1,9 @@
1
+ import './style.css';
2
+ export declare const AnnotationToolPanel: (props: {
3
+ header?: React.ReactNode;
4
+ content?: React.ReactNode;
5
+ footer?: React.ReactNode;
6
+ size?: "small" | "medium";
7
+ direction?: "horizontal" | "vertical";
8
+ type?: "color" | "multiple-color" | "graphic" | "pen";
9
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,28 @@
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("core-js/modules/es.array.concat.js");
9
+ require("./style.css");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ var AnnotationToolPanel = exports.AnnotationToolPanel = function AnnotationToolPanel(props) {
12
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
13
+ className: "fcr-annotation-toolbar-panel ".concat(props.size === 'small' ? 'small' : 'medium', " ").concat(props.direction),
14
+ style: {
15
+ flexDirection: props.type === 'color' ? 'column' : undefined
16
+ },
17
+ children: [props.header && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
18
+ className: "fcr-annotation-toolbar-panel-header",
19
+ children: props.header
20
+ }), props.content && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
21
+ className: "fcr-annotation-toolbar-panel-content",
22
+ children: props.content
23
+ }), props.footer && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
24
+ className: "fcr-annotation-toolbar-panel-footer",
25
+ children: props.footer
26
+ })]
27
+ });
28
+ };
@@ -0,0 +1,86 @@
1
+ .fcr-annotation-toolbar-panel {
2
+ max-width: 300px;
3
+ padding: 0 6px;
4
+ height: auto;
5
+ background: var(fcr_mobile_ui_scene_color_popup_fill2);
6
+ border-radius: var(--fcr_cornerradius_l);
7
+ display: flex;
8
+ align-items: center;
9
+ justify-content: center;
10
+ --small-width: 148px;
11
+ }
12
+
13
+ .fcr-annotation-toolbar-panel.small {
14
+ box-sizing: content-box;
15
+ border-radius: 8px;
16
+ }
17
+
18
+ .fcr-annotation-toolbar-panel.medium {
19
+ padding: 12px;
20
+ }
21
+
22
+ .fcr-annotation-toolbar-panel.small > div {
23
+ min-height: 36px;
24
+ display: flex;
25
+ gap: 0;
26
+ box-sizing: content-box;
27
+ }
28
+
29
+ .fcr-annotation-toolbar-panel.medium > div {
30
+ min-height: 36px;
31
+ display: flex;
32
+ gap: 12px;
33
+ box-sizing: content-box;
34
+ }
35
+
36
+ .fcr-annotation-toolbar-panel .annotation-toolbar-item {
37
+ width: 36px;
38
+ }
39
+
40
+ .fcr-annotation-toolbar-panel.medium .fcr-annotation-toolbar-panel-footer {
41
+ border-top: 1px solid var(--fcr_ui_scene_line1);
42
+ padding-top: 8px;
43
+ margin-top: 8px;
44
+ }
45
+
46
+ .fcr-annotation-toolbar-panel.small .fcr-annotation-toolbar-panel-footer {
47
+ border-top: 1px solid var(--fcr_ui_scene_line1);
48
+ font-size: 12px;
49
+ color: var(--fcr_ui_scene_black3);
50
+ min-height: 24px;
51
+ text-align: center;
52
+ line-height: 1.2;
53
+ border-top: 1px solid var(--fcr_ui_scene_black1);
54
+ max-width: var(--small-width);
55
+ }
56
+
57
+ .fcr-annotation-toolbar-panel.vertical {
58
+ flex-direction: column;
59
+ }
60
+ .fcr-annotation-toolbar-panel.vertical .fcr-annotation-toolbar-panel-header {
61
+ padding: 6px 0;
62
+ gap: 6px;
63
+ flex-direction: column;
64
+ }
65
+ .fcr-annotation-toolbar-panel.vertical .fcr-annotation-toolbar-panel-footer {
66
+ padding: 6px 0;
67
+ gap: 6px;
68
+ flex-direction: column;
69
+ }
70
+ .fcr-annotation-toolbar-panel.horizontal {
71
+ flex-direction: row;
72
+ }
73
+ .fcr-annotation-toolbar-panel.horizontal .fcr-annotation-toolbar-panel-header {
74
+ flex-direction: row;
75
+ }
76
+
77
+ .fcr-annotation-toolbar-panel.horizontal .fcr-annotation-toolbar-panel-footer {
78
+ flex-direction: row;
79
+ }
80
+
81
+ .fcr-annotation-toolbar-panel-content {
82
+ width: var(--small-width);
83
+ display: flex;
84
+ flex-wrap: wrap;
85
+ padding: 8px;
86
+ }
@@ -0,0 +1,13 @@
1
+ import { FcrBoardToolType } from 'fcr-core/lib/room-control/whiteboard-control/enums';
2
+ import { ToolTipProps } from 'agora-ui-foundation/lib/components/tooltip';
3
+ export declare const AnnotationPenTool: (props: {
4
+ size?: number;
5
+ hideTitle?: boolean;
6
+ currentStrokeWidth: number;
7
+ currentColor: string;
8
+ currentTool: FcrBoardToolType;
9
+ setStrokeWidth: (width: number) => void;
10
+ setTool: (tool: FcrBoardToolType) => void;
11
+ placement: ToolTipProps["placement"];
12
+ direction?: "horizontal" | "vertical";
13
+ }) => import("react/jsx-runtime").JSX.Element;