@netless/fastboard 0.0.1 → 0.0.5

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 (43) hide show
  1. package/README.md +8 -10
  2. package/dist/index.cjs.js +4 -4
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/index.es.js +478 -168
  5. package/dist/index.es.js.map +1 -1
  6. package/dist/svelte.cjs.js +2 -0
  7. package/dist/svelte.cjs.js.map +1 -0
  8. package/dist/svelte.es.js +31 -0
  9. package/dist/svelte.es.js.map +1 -0
  10. package/dist/vue.cjs.js +2 -0
  11. package/dist/vue.cjs.js.map +1 -0
  12. package/dist/vue.es.js +42 -0
  13. package/dist/vue.es.js.map +1 -0
  14. package/package.json +25 -41
  15. package/src/WhiteboardApp.ts +39 -3
  16. package/src/behaviors/style.ts +1 -1
  17. package/src/components/PlayerControl/PlayerControl.scss +145 -0
  18. package/src/components/PlayerControl/PlayerControl.tsx +158 -0
  19. package/src/components/PlayerControl/components/Button.tsx +55 -0
  20. package/src/components/PlayerControl/hooks.ts +95 -0
  21. package/src/components/PlayerControl/icons/Loading.tsx +13 -0
  22. package/src/components/PlayerControl/icons/Pause.tsx +13 -0
  23. package/src/components/PlayerControl/icons/Play.tsx +13 -0
  24. package/src/components/PlayerControl/icons/index.ts +10 -0
  25. package/src/components/PlayerControl/index.ts +1 -0
  26. package/src/components/Root.tsx +1 -2
  27. package/src/components/Toolbar/Content.tsx +28 -15
  28. package/src/components/Toolbar/components/ColorBox.tsx +3 -3
  29. package/src/components/Toolbar/components/UpDownButtons.tsx +7 -10
  30. package/src/components/Toolbar/hooks.ts +1 -1
  31. package/src/components/ZoomControl.tsx +1 -1
  32. package/src/hooks.ts +18 -60
  33. package/src/i18n/en.json +2 -1
  34. package/src/i18n/zh-CN.json +2 -1
  35. package/src/index.ts +9 -2
  36. package/src/internal/Instance.tsx +40 -19
  37. package/src/internal/helpers.ts +15 -0
  38. package/src/internal/index.ts +1 -0
  39. package/src/internal/mount-whiteboard.ts +13 -5
  40. package/src/style.scss +1 -0
  41. package/src/svelte.ts +45 -0
  42. package/src/vue.ts +74 -0
  43. package/src/helpers/index.ts +0 -18
package/README.md CHANGED
@@ -13,15 +13,7 @@ and [netless-app](https://github.com/netless-io/netless-app).
13
13
  <h2 id="install">安装</h2>
14
14
 
15
15
  ```bash
16
- npm add @netless/fastboard
17
- ```
18
-
19
- ```bash
20
- yarn add @netless/fastboard
21
- ```
22
-
23
- ```bash
24
- pnpm add @netless/fastboard
16
+ npm add @netless/fastboard @netless/window-manager white-web-sdk react react-dom
25
17
  ```
26
18
 
27
19
  <h2 id="usage">使用</h2>
@@ -33,7 +25,7 @@ pnpm add @netless/fastboard
33
25
  ```js
34
26
  import { createWhiteboardApp } from "@netless/fastboard";
35
27
 
36
- let whiteboard = createWhiteboardApp({
28
+ let whiteboard = await createWhiteboardApp({
37
29
  target: document.getElementById("whiteboard"),
38
30
  // [1]
39
31
  sdkConfig: {
@@ -84,6 +76,12 @@ ReactDOM.render(<App />, document.getElementById("root"));
84
76
 
85
77
  ### 使用 APPS
86
78
 
79
+ **注意:** 需要先安装对应的 APP
80
+
81
+ ```bash
82
+ npm add @netless/app-slide
83
+ ```
84
+
87
85
  ```typescript
88
86
  // 插入动态 PPTX 至白板
89
87
  const appId = await whiteboard.insertDocs({
package/dist/index.cjs.js CHANGED
@@ -1,14 +1,14 @@
1
- "use strict";var Le=Object.defineProperty,Pe=Object.defineProperties;var Te=Object.getOwnPropertyDescriptors;var pe=Object.getOwnPropertySymbols;var je=Object.prototype.hasOwnProperty,De=Object.prototype.propertyIsEnumerable;var ae=(e,t,o)=>t in e?Le(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,L=(e,t)=>{for(var o in t||(t={}))je.call(t,o)&&ae(e,o,t[o]);if(pe)for(var o of pe(t))De.call(t,o)&&ae(e,o,t[o]);return e},B=(e,t)=>Pe(e,Te(t));var A=(e,t,o)=>(ae(e,typeof t!="symbol"?t+"":t,o),o);Object.defineProperty(exports,"__esModule",{value:!0});exports[Symbol.toStringTag]="Module";var D=require("@netless/window-manager"),p=require("white-web-sdk"),We=require("i18next"),i=require("react"),Be=require("react-dom"),Ze=require("clsx"),Oe=require("@tippyjs/react"),Re=require("rc-slider");function G(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}function $(e){if(e&&e.__esModule)return e;var t={__proto__:null,[Symbol.toStringTag]:"Module"};return e&&Object.keys(e).forEach(function(o){if(o!=="default"){var a=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,a.get?a:{enumerable:!0,get:function(){return e[o]}})}}),t.default=e,Object.freeze(t)}var be=G(We),Ee=G(i),ge=G(Be),u=G(Ze),N=G(Oe),He=G(Re);D.WindowManager.register({kind:"Slide",appOptions:{debug:!1},src:async()=>{var t;const e=await Promise.resolve().then(function(){return $(require("@netless/app-slide"))});return(t=e.default)!=null?t:e}});D.WindowManager.register({kind:"Monaco",src:async()=>{var t;const e=await Promise.resolve().then(function(){return $(require("@netless/app-monaco"))});return(t=e.default)!=null?t:e}});D.WindowManager.register({kind:"Countdown",src:async()=>{var t;const e=await Promise.resolve().then(function(){return $(require("@netless/app-countdown"))});return(t=e.default)!=null?t:e}});D.WindowManager.register({kind:"GeoGebra",src:async()=>{var t;const e=await Promise.resolve().then(function(){return $(require("@netless/app-geogebra"))});return(t=e.default)!=null?t:e},appOptions:{HTML5Codebase:"https://flat-storage-cn-hz.whiteboard.agora.io/GeoGebra/HTML5/5.0/web3d"}});function Ge(e){const t=document.createElement("style");return t.appendChild(document.createTextNode(e)),document.head.appendChild(t),t}function fe(e,t,o){return Math.min(Math.max(e,t),o)}function Je(e,t){return e.length===t.length&&e.every((o,a)=>o===t[a])}var Ve=`.netless-window-manager-playground{width:100%;height:100%;position:relative;z-index:1;overflow:hidden;user-select:none}.netless-window-manager-sizer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;overflow:hidden;display:flex}.netless-window-manager-sizer-horizontal{flex-direction:column}.netless-window-manager-sizer:before,.netless-window-manager-sizer:after{flex:1;content:"";display:block}.netless-window-manager-chess-sizer:before,.netless-window-manager-chess-sizer:after{background-image:linear-gradient(45deg,#b0b0b0 25%,transparent 25%),linear-gradient(-45deg,#b0b0b0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#b0b0b0 75%),linear-gradient(-45deg,transparent 75%,#b0b0b0 75%);background-color:#fff;background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px}.netless-window-manager-wrapper{position:relative;z-index:1;width:100%;height:100%;overflow:hidden}.netless-window-manager-main-view{width:100%;height:100%}.netless-window-manager-cursor-pencil-image,.netless-window-manager-cursor-eraser-image{width:26px;height:26px}.netless-window-manager-cursor-selector-image{width:24px;height:24px}.netless-window-manager-cursor-selector-avatar{border-radius:50%;border-style:solid;border-width:2px;border-color:#fff;margin-bottom:2px}.netless-window-manager-cursor-selector-avatar img{width:12px}.netless-window-manager-cursor-inner{border-radius:4px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:4px;padding-right:4px;font-size:12px}.netless-window-manager-cursor-inner-mellow{height:32px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:16px;padding-right:16px}.netless-window-manager-cursor-tag-name{font-size:12px;margin-left:4px;padding:2px 8px;border-radius:4px}.netless-window-manager-cursor-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;position:fixed;width:26px;height:26px;z-index:2147483647;left:0;top:0;will-change:transform;transition:transform .05s;transform-origin:0 0;user-select:none}.netless-window-manager-cursor-pencil-offset{margin-left:-20px}.netless-window-manager-cursor-selector-offset{margin-left:-22px;margin-top:56px}.netless-window-manager-cursor-text-offset{margin-left:-30px;margin-top:18px}.netless-window-manager-cursor-shape-offset{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:180px;height:64px;margin-left:-30px;margin-top:12px}.netless-window-manager-cursor-name{width:100%;height:48px;display:flex;align-items:center;justify-content:center;position:absolute;top:-40px}.cursor-image-wrapper{display:flex;justify-content:center}.tele-fancy-scrollbar{overscroll-behavior:contain;overflow:auto;overflow-y:scroll;overflow-y:overlay;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:auto}.tele-fancy-scrollbar::-webkit-scrollbar{height:8px;width:8px}.tele-fancy-scrollbar::-webkit-scrollbar-track{background-color:transparent}.tele-fancy-scrollbar::-webkit-scrollbar-thumb{background-color:#444e601a;background-color:transparent;border-radius:4px;transition:background-color .4s}.tele-fancy-scrollbar:hover::-webkit-scrollbar-thumb{background-color:#444e601a}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#444e6033}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:active{background-color:#444e6033}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:vertical{min-height:50px}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:horizontal{min-width:50px}.telebox-box{position:absolute;top:0;left:0;z-index:100;will-change:transform;transition:width .4s cubic-bezier(.4,.9,.71,1.02),height .4s cubic-bezier(.55,.82,.63,.95),opacity .6s cubic-bezier(.7,0,.84,0),transform .4s ease}.telebox-box-main{position:relative;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#f9f9fc;box-shadow:0 4px 10px #2f419226;border-radius:6px;border:1px solid #e3e3ec}.telebox-titlebar-wrap{flex-shrink:0;position:relative;z-index:1}.telebox-content-wrap{flex:1;width:100%;overflow:hidden;display:flex;justify-content:center;align-items:center}.telebox-content{width:100%;height:100%;position:relative}.telebox-footer-wrap{flex-shrink:0;display:flex;flex-direction:column}.telebox-footer-wrap:before{content:"";display:block;flex:1}.telebox-resize-handle{position:absolute;z-index:2147483647}.telebox-n{width:100%;height:5px;left:0;top:-5px;cursor:n-resize}.telebox-s{width:100%;height:5px;left:0;bottom:-5px;cursor:s-resize}.telebox-w{width:5px;height:100%;left:-5px;top:0;cursor:w-resize}.telebox-e{width:5px;height:100%;right:-5px;top:0;cursor:e-resize}.telebox-nw{width:15px;height:15px;top:-5px;left:-5px;cursor:nw-resize}.telebox-ne{width:15px;height:15px;top:-5px;right:-5px;cursor:ne-resize}.telebox-se{width:15px;height:15px;bottom:-5px;right:-5px;cursor:se-resize}.telebox-sw{width:15px;height:15px;bottom:-5px;left:-5px;cursor:sw-resize}.telebox-track-mask{position:fixed;top:0;left:0;z-index:2147483647;width:100%;height:100%;background:rgba(0,0,0,.0001);cursor:move}.telebox-cursor-n{cursor:n-resize}.telebox-cursor-s{cursor:s-resize}.telebox-cursor-w{cursor:w-resize}.telebox-cursor-e{cursor:e-resize}.telebox-cursor-nw{cursor:nw-resize}.telebox-cursor-ne{cursor:ne-resize}.telebox-cursor-se{cursor:se-resize}.telebox-cursor-sw{cursor:sw-resize}.telebox-maximized .telebox-resize-handles,.telebox-no-resize .telebox-resize-handles{display:none}.telebox-maximized{box-shadow:none;transition:none}.telebox-minimized{will-change:transform;transition:width 50ms cubic-bezier(.4,.9,.71,1.02),height 50ms cubic-bezier(.55,.82,.63,.95),opacity .6s cubic-bezier(.7,0,.84,0),transform .6s ease;opacity:0;pointer-events:none;user-select:none}.telebox-transforming{will-change:transform;transition:opacity .6s cubic-bezier(.7,0,.84,0)}.telebox-readonly .telebox-resize-handle{cursor:initial!important;pointer-events:none!important}.telebox-color-scheme-dark .telebox-box-main{color:#e9e9e9;background:#212126;border-color:#43434d}.telebox-titlebar{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;background:#fff;user-select:none;border-bottom:1px solid #eeeef7}.telebox-title{overflow:hidden;margin:0 24px 0 0;padding:0;font-size:14px;font-weight:400;font-family:PingFangSC-Regular,PingFang SC;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;color:#191919}.telebox-titlebar-btns{white-space:nowrap;word-break:keep-all;margin-left:auto;font-size:0}.telebox-titlebar-btn{width:22px;height:22px;padding:0;outline:0;border:none;background:0 0;cursor:pointer}.telebox-titlebar-btn~.telebox-titlebar-btn{margin-left:10px}.telebox-titlebar-btn-icon{width:22px;height:22px}.telebox-readonly .telebox-titlebar-btn{cursor:not-allowed}.telebox-titlebar-icon-minimize{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPHBhdGggZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNOSAxM2gxMHYxLjZIOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=)}.telebox-titlebar-icon-maximize{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPGcgZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI2IpIj4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgIGQ9Ik0yMC40ODEgMTcuMWgxLjJ2NC41ODFIMTcuMXYtMS4yaDMuMzgxVjE3LjF6bS0xNC4xOTA1LS4wMDloMS4ydjMuMzgxaDMuMzgwOXYxLjJoLTQuNTgxdi00LjU4MXpNMTcuMSA2LjE5MDVoNC41ODF2NC41ODA5aC0xLjJ2LTMuMzgxSDE3LjF2LTEuMnptLTEwLjcwMDguMTA4N2g0Ljc5ODV2MS4ySDcuNTk5MnYzLjU5ODVoLTEuMlY2LjI5OTJ6IiAvPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==)}.telebox-titlebar-icon-maximize.is-active{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjZ2MjZIMHoiIC8+CiAgICAgICAgPHBhdGggaWQ9ImMiIGQ9Ik0yNi44NjkgMEwyOCAxLjEzMVYyNi44N0wyNi44NjkgMjhIMS4xM0wwIDI2Ljg3VjEuMTMxTDEuMTMgMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPgogICAgICAgICAgICA8bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNhIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tNC42NDI5LTQuNjQyOWgzNS4yODU4djM1LjI4NThILTQuNjQyOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxnPgogICAgICAgICAgICA8bWFzayBpZD0iZCIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNjIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tMTcuNTE2OCAxNEwxNC0xNy41MTY4IDQ1LjUxNjggMTQgMTQgNDUuNTE2OHoiIG1hc2s9InVybCgjZCkiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjIiCiAgICAgICAgICAgIGQ9Ik0xMC4wODg2IDIxLjQ4NjV2LTMuNjk2Nkg2LjM5Mk0yMS4zODU1IDEwLjE4OTVoLTMuNjk2NlY2LjQ5M00yMS40MDIgMTcuNzk4M2gtMy42OTY2djMuNjk2Nk0xMC4yNTAzIDYuMTQ5OHYzLjg5ODVINi4zNTE3IiAvPgogICAgPC9nPgo8L3N2Zz4K)}.telebox-titlebar-icon-close{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjQiPgogICAgICAgIDxwYXRoIGQ9Ik04LjM1MyAyMC4zMzIxTDIwLjMzMiA4LjM1M00yMC4zMzIyIDIwLjMzMjFMOC4zNTMgOC4zNTMiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=)}.telebox-color-scheme-dark .telebox-titlebar{color:#e9e9e9;background:#43434d;border-bottom:none}.telebox-collector{visibility:hidden;display:block;position:absolute;z-index:200;width:40px;height:40px;margin:0;padding:0;border:none;outline:0;font-size:0;border-radius:50%;background:#fff;box-shadow:0 2px 6px #2f419226;cursor:pointer;user-select:none;pointer-events:none;background-repeat:no-repeat;background-size:18px 16px;background-position:center}.telebox-collector-visible{visibility:visible;pointer-events:initial}.telebox-collector-readonly{cursor:not-allowed}.telebox-color-scheme-dark.telebox-collector{background-color:#43434d}.telebox-max-titlebar{display:none;position:absolute;top:0;left:0;z-index:50000;user-select:none}.telebox-max-titlebar-maximized{display:flex}.telebox-titles{flex:1;height:100%;margin:0 16px 0 -16px;overflow-y:hidden;overflow-x:scroll;overflow-x:overlay;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:auto}.telebox-titles::-webkit-scrollbar{height:8px;width:8px}.telebox-titles::-webkit-scrollbar-track{background-color:transparent}.telebox-titles::-webkit-scrollbar-thumb{background-color:#eeeef7cc;background-color:transparent;border-radius:4px;transition:background-color .4s}.telebox-titles:hover::-webkit-scrollbar-thumb{background-color:#eeeef7cc}.telebox-titles::-webkit-scrollbar-thumb:hover{background-color:#eeeef7}.telebox-titles::-webkit-scrollbar-thumb:active{background-color:#eeeef7}.telebox-titles::-webkit-scrollbar-thumb:vertical{min-height:50px}.telebox-titles::-webkit-scrollbar-thumb:horizontal{min-width:50px}.telebox-titles-content{height:100%;display:flex;flex-wrap:nowrap;align-items:center;padding:0}.telebox-titles-tab{overflow:hidden;max-width:182px;min-width:50px;padding:0 26px 0 16px;outline:0;font-size:13px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;border:none;border-right:1px solid #e5e5f0;color:#7b88a0;background:0 0;cursor:pointer}.telebox-titles-tab~.telebox-titles-tab{margin-left:2px}.telebox-titles-tab-focus{color:#357bf6}.telebox-readonly .telebox-titles-tab{cursor:not-allowed}.telebox-color-scheme-dark{color-scheme:dark}.telebox-color-scheme-dark.telebox-titlebar{color:#e9e9e9;background:#43434d;border-bottom:none}.telebox-color-scheme-dark .telebox-titles-tab{border-right-color:#7b88a0}.telebox-color-scheme-dark .telebox-title{color:#e9e9e9}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box[data-theme~=light]{color:#26323d;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:#fff}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.rc-slider{position:relative;height:14px;padding:5px 0;width:100%;border-radius:6px;touch-action:none;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-rail{position:absolute;width:100%;background-color:#e9e9e9;height:4px;border-radius:6px}.rc-slider-track{position:absolute;left:0;height:4px;border-radius:6px;background-color:#abe2fb}.rc-slider-handle{position:absolute;width:14px;height:14px;cursor:pointer;cursor:-webkit-grab;margin-top:-5px;cursor:grab;border-radius:50%;border:solid 2px #96dbfa;background-color:#fff;touch-action:pan-x}.rc-slider-handle-dragging.rc-slider-handle-dragging.rc-slider-handle-dragging{border-color:#57c5f7;box-shadow:0 0 0 5px #96dbfa}.rc-slider-handle:focus{outline:none}.rc-slider-handle-click-focused:focus{border-color:#96dbfa;box-shadow:unset}.rc-slider-handle:hover{border-color:#57c5f7}.rc-slider-handle:active{border-color:#57c5f7;box-shadow:0 0 5px #57c5f7;cursor:-webkit-grabbing;cursor:grabbing}.rc-slider-mark{position:absolute;top:18px;left:0;width:100%;font-size:12px}.rc-slider-mark-text{position:absolute;display:inline-block;vertical-align:middle;text-align:center;cursor:pointer;color:#999}.rc-slider-mark-text-active{color:#666}.rc-slider-step{position:absolute;width:100%;height:4px;background:transparent}.rc-slider-dot{position:absolute;bottom:-2px;margin-left:-4px;width:8px;height:8px;border:2px solid #e9e9e9;background-color:#fff;cursor:pointer;border-radius:50%;vertical-align:middle}.rc-slider-dot-active{border-color:#96dbfa}.rc-slider-dot-reverse{margin-right:-4px}.rc-slider-disabled{background-color:#e9e9e9}.rc-slider-disabled .rc-slider-track{background-color:#ccc}.rc-slider-disabled .rc-slider-handle,.rc-slider-disabled .rc-slider-dot{border-color:#ccc;box-shadow:none;background-color:#fff;cursor:not-allowed}.rc-slider-disabled .rc-slider-mark-text,.rc-slider-disabled .rc-slider-dot{cursor:not-allowed!important}.rc-slider-vertical{width:14px;height:100%;padding:0 5px}.rc-slider-vertical .rc-slider-rail{height:100%;width:4px}.rc-slider-vertical .rc-slider-track{left:5px;bottom:0;width:4px}.rc-slider-vertical .rc-slider-handle{margin-left:-5px;touch-action:pan-y}.rc-slider-vertical .rc-slider-mark{top:0;left:18px;height:100%}.rc-slider-vertical .rc-slider-step{height:100%;width:4px}.rc-slider-vertical .rc-slider-dot{left:2px;margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:first-child{margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:last-child{margin-bottom:-4px}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear,.rc-slider-tooltip-zoom-down-leave{animation-duration:.3s;animation-fill-mode:both;display:block!important;animation-play-state:paused}.rc-slider-tooltip-zoom-down-enter.rc-slider-tooltip-zoom-down-enter-active,.rc-slider-tooltip-zoom-down-appear.rc-slider-tooltip-zoom-down-appear-active{animation-name:rcSliderTooltipZoomDownIn;animation-play-state:running}.rc-slider-tooltip-zoom-down-leave.rc-slider-tooltip-zoom-down-leave-active{animation-name:rcSliderTooltipZoomDownOut;animation-play-state:running}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear{transform:scale(0);animation-timing-function:cubic-bezier(.23,1,.32,1)}.rc-slider-tooltip-zoom-down-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@keyframes rcSliderTooltipZoomDownIn{0%{opacity:0;transform-origin:50% 100%;transform:scale(0)}to{transform-origin:50% 100%;transform:scale(1)}}@keyframes rcSliderTooltipZoomDownOut{0%{transform-origin:50% 100%;transform:scale(1)}to{opacity:0;transform-origin:50% 100%;transform:scale(0)}}.rc-slider-tooltip{position:absolute;left:-9999px;top:-9999px;visibility:visible;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip-hidden{display:none}.rc-slider-tooltip-placement-top{padding:4px 0 8px}.rc-slider-tooltip-inner{padding:6px 2px;min-width:24px;height:24px;font-size:12px;line-height:1;color:#fff;text-align:center;text-decoration:none;background-color:#6c6c6c;border-radius:6px;box-shadow:0 0 4px #d9d9d9}.rc-slider-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.rc-slider-tooltip-placement-top .rc-slider-tooltip-arrow{bottom:4px;left:50%;margin-left:-4px;border-width:4px 4px 0;border-top-color:#6c6c6c}.fastboard-root{position:relative;width:100%;height:100%;overflow:hidden}.fastboard-loading{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:.6}.fastboard-view{position:absolute;top:0;left:0;width:100%;height:100%}.fastboard-left{position:absolute;top:0;left:0;height:calc(100% - 48px);padding:16px;z-index:201;display:flex;align-items:center}.fastboard-bottom-left,.fastboard-bottom-right{display:flex;gap:10px;position:absolute;bottom:8px;left:8px;padding:8px;z-index:200}.fastboard-bottom-right{left:initial;right:8px}.fastboard-redo-undo{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-redo-undo.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-redo-undo.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-redo-undo-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-redo-undo-btn svg,.fastboard-redo-undo-btn img{width:1em;height:1em}.fastboard-redo-undo-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-redo-undo-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-redo-undo-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-page-control{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-page-control.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-page-control.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-page-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-page-control-btn svg,.fastboard-page-control-btn img{width:1em;height:1em}.fastboard-page-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-page-control-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-page-control-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-page-control-cut-line{height:24px;width:.5px}.fastboard-page-control-cut-line.light{background-color:#e7e7e7}.fastboard-page-control-cut-line.dark{background-color:#ffffff26}.fastboard-page-control-slash{opacity:.6}.fastboard-page-control-page,.fastboard-page-control-slash,.fastboard-page-control-page-count{font-size:12px;font-variant-numeric:tabular-nums}.fastboard-zoom-control{position:relative;display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-zoom-control.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-zoom-control.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-zoom-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-zoom-control-btn svg,.fastboard-zoom-control-btn img{width:1em;height:1em}.fastboard-zoom-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-zoom-control-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-zoom-control-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-zoom-control-cut-line{height:24px;width:.5px}.fastboard-zoom-control-cut-line.light{background-color:#e7e7e7}.fastboard-zoom-control-cut-line.dark{background-color:#ffffff26}.fastboard-zoom-control-percent{opacity:.6}.fastboard-zoom-control-scale,.fastboard-zoom-control-percent{font-size:12px;font-variant-numeric:tabular-nums}.fastboard-toolbar{display:flex;align-items:center;padding:4px;border-radius:4px;flex-direction:column;gap:4px;position:absolute;z-index:100;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-toolbar .rc-slider{padding:6px 0}.fastboard-toolbar .rc-slider-rail,.fastboard-toolbar .rc-slider-track{height:2px}.fastboard-toolbar .tippy-content{padding:8px}.fastboard-toolbar .tippy-box{border:1px solid rgba(0,0,0,.15);background-color:#333333f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-toolbar .tippy-box[data-theme~=light]{background-color:#fffffff2;box-shadow:0 5px 10px #00000040}.fastboard-toolbar.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-toolbar.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-toolbar-tooltip{display:inline-flex;align-items:center;gap:4px}.fastboard-toolbar-hotkey{margin-right:-4px;width:24px;height:24px;border-radius:4px;background-color:#ffffff1a;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:4px;width:32px;height:32px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1;position:relative}.fastboard-toolbar-btn-interactive{display:inline-block;width:32px;height:32px}.fastboard-toolbar-btn svg,.fastboard-toolbar-btn img{width:1em;height:1em}.fastboard-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-toolbar-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-toolbar-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-toolbar-triangle{width:0px;height:0px;border-bottom:4px solid;border-left:4px solid transparent;position:absolute;bottom:0;right:0}.fastboard-toolbar-cut-line{display:inline-block;height:.5px;width:100%}.fastboard-toolbar-cut-line.light{background-color:#e7e7e7}.fastboard-toolbar-cut-line.dark{background-color:#ffffff26}.fastboard-toolbar-section{display:inline-flex;flex-flow:column nowrap;gap:4px;scroll-behavior:smooth}.fastboard-toolbar-panel{width:120px;padding:0;display:flex;flex-flow:column nowrap;align-items:center;gap:8px}.fastboard-toolbar-panel.apps{width:224px}.fastboard-toolbar-color-box,.fastboard-toolbar-shapes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;align-items:center;justify-items:center}.fastboard-toolbar-color-box .fastboard-toolbar-btn,.fastboard-toolbar-shapes .fastboard-toolbar-btn{padding:0;width:24px;height:24px}.fastboard-toolbar-apps{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:center;justify-items:center}.fastboard-toolbar-apps .fastboard-toolbar-btn{width:40px;height:40px;font-size:40px}.fastboard-toolbar-app-icon{padding-top:4px;display:inline-flex;flex-flow:column nowrap;align-items:center;gap:4px}.fastboard-toolbar-app-icon .fastboard-toolbar-btn{padding:0}.fastboard-toolbar-app-icon-text{font-size:12px;color:#5d5d5d;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fastboard-toolbar-color-item{width:24px;height:24px;border-radius:4px;cursor:pointer}.fastboard-toolbar-color-item *.light:hover{background-color:#f5f5f5}.fastboard-toolbar-color-item *.dark:hover{background-color:#333}.fastboard-toolbar-color-border{width:24px;height:24px;border:1px solid transparent;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-color-border.active.light,.fastboard-toolbar-color-border.active.dark{border:1px solid rgba(51,129,255,.8)}.fastboard-toolbar-color-btn{margin:0;border:1px solid rgba(0,0,0,.24);padding:0;appearance:none;width:16px;height:16px;border-radius:4px;cursor:pointer}.fastboard-toolbar-color-btn:focus-visible{outline-offset:2px}.tippy-box.fastboard-tip{color:#eee;background-color:#000000f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.tippy-box.fastboard-tip[data-placement^=right]>.tippy-arrow:before{top:4px;border-width:4px;border-right-color:#000}.tippy-box.fastboard-tip[data-placement^=top]>.tippy-arrow:before{left:4px;border-width:4px;border-top-color:#000}
2
- `;Ge(Ve);const Ue={clicker:"clicker",selector:"selector",text:"text",pencil:"pencil",arrow:"arrow",hand:"hand",eraser:"eraser",laser:"laser",collapse:"Collapse",expand:"Expand",zoomIn:"Zoom In",zoomOut:"Zoom Out",reset:"Reset",prevPage:"Prev Page",nextPage:"Next Page",addPage:"Add Page",redo:"Redo",undo:"Undo",shape:"Shape",triangle:"Triangle",rhombus:"Rhombus",pentagram:"Pentagram",speechBalloon:"Speech Balloon",rectangle:"Rectangle",ellipse:"Ellipse",straight:"Straight"};var Fe={translation:Ue};const Ye={clicker:"\u70B9\u51FB",selector:"\u9009\u62E9",text:"\u6587\u5B57",pencil:"\u94C5\u7B14",arrow:"\u7BAD\u5934",hand:"\u6293\u624B",eraser:"\u6A61\u76AE",laser:"\u6FC0\u5149\u7B14",zoomIn:"\u653E\u5927",zoomOut:"\u7F29\u5C0F",reset:"\u91CD\u7F6E",prevPage:"\u4E0A\u4E00\u9875",nextPage:"\u4E0B\u4E00\u9875",addPage:"\u6DFB\u52A0\u9875\u9762",redo:"\u91CD\u505A",undo:"\u64A4\u9500",collapse:"\u6536\u8D77",expand:"\u5C55\u5F00",clean:"\u6E05\u5C4F",shape:"\u5F62\u72B6",triangle:"\u4E09\u89D2\u5F62",rhombus:"\u83F1\u5F62",pentagram:"\u4E94\u89D2\u661F",speechBalloon:"\u6C14\u7403",rectangle:"\u77E9\u5F62",ellipse:"\u692D\u5706",straight:"\u76F4\u7EBF"};var Qe={translation:Ye};const qe=async e=>{const t=navigator.language||"zh-CN",o=e.language||t;return await be.default.init({lng:o,resources:{en:Fe,"zh-CN":Qe}}),be.default};function Ke(e){(!e.invisiblePlugins||!e.invisiblePlugins.includes(D.WindowManager))&&(e.invisiblePlugins=[...e.invisiblePlugins||[],D.WindowManager])}const F={changeToSelector:"s",changeToLaserPointer:"z",changeToPencil:"p",changeToRectangle:"r",changeToEllipse:"c",changeToEraser:"e",changeToText:"t",changeToStraight:"l",changeToArrow:"a",changeToHand:"h"};async function Xe(e,t,o,a){const l=new p.WhiteWebSdk(B(L({},e),{useMobXState:!0}));Ke(t);const n=await l.joinRoom(B(L({floatBar:!0,hotKeys:L(L({},p.DefaultHotKeys),F)},t),{useMultiViews:!0,disableNewPencil:!1,disableMagixEventDispatchLimit:!0})),s=await D.WindowManager.mount(B(L({cursor:!0,debug:!1},o),{room:n})),c=await qe({language:a});return{sdk:l,room:n,manager:s,i18n:c}}function Y(){}class _e{constructor(){A(this,"running",!1);A(this,"nextFn",null);A(this,"step",()=>{if(this.nextFn){const t=this.nextFn;this.nextFn=null,Promise.resolve(t()).then(this.step)}else this.running=!1})}schedule(t){this.running?this.nextFn=t:(this.running=!0,Promise.resolve(t()).then(this.step))}}var ee={exports:{}},Q={};/*
1
+ "use strict";var Re=Object.defineProperty,He=Object.defineProperties;var Ge=Object.getOwnPropertyDescriptors;var te=Object.getOwnPropertySymbols;var xe=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var le=(e,t,r)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,L=(e,t)=>{for(var r in t||(t={}))xe.call(t,r)&&le(e,r,t[r]);if(te)for(var r of te(t))me.call(t,r)&&le(e,r,t[r]);return e},V=(e,t)=>He(e,Ge(t));var we=(e,t)=>{var r={};for(var a in e)xe.call(e,a)&&t.indexOf(a)<0&&(r[a]=e[a]);if(e!=null&&te)for(var a of te(e))t.indexOf(a)<0&&me.call(e,a)&&(r[a]=e[a]);return r};var A=(e,t,r)=>(le(e,typeof t!="symbol"?t+"":t,r),r);Object.defineProperty(exports,"__esModule",{value:!0});exports[Symbol.toStringTag]="Module";var B=require("@netless/window-manager"),p=require("white-web-sdk"),Ve=require("i18next"),n=require("react"),Je=require("react-dom"),Fe=require("clsx"),Ue=require("@tippyjs/react"),Ye=require("rc-slider");function J(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}function oe(e){if(e&&e.__esModule)return e;var t={__proto__:null,[Symbol.toStringTag]:"Module"};return e&&Object.keys(e).forEach(function(r){if(r!=="default"){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}}),t.default=e,Object.freeze(t)}var ke=J(Ve),Qe=J(n),se=J(Je),f=J(Fe),S=J(Ue),ve=J(Ye);B.WindowManager.register({kind:"Slide",appOptions:{debug:!1},src:async()=>{var t;const e=await Promise.resolve().then(function(){return oe(require("@netless/app-slide"))});return(t=e.default)!=null?t:e}});B.WindowManager.register({kind:"Monaco",src:async()=>{var t;const e=await Promise.resolve().then(function(){return oe(require("@netless/app-monaco"))});return(t=e.default)!=null?t:e}});B.WindowManager.register({kind:"Countdown",src:async()=>{var t;const e=await Promise.resolve().then(function(){return oe(require("@netless/app-countdown"))});return(t=e.default)!=null?t:e}});B.WindowManager.register({kind:"GeoGebra",src:async()=>{var t;const e=await Promise.resolve().then(function(){return oe(require("@netless/app-geogebra"))});return(t=e.default)!=null?t:e},appOptions:{HTML5Codebase:"https://flat-storage-cn-hz.whiteboard.agora.io/GeoGebra/HTML5/5.0/web3d"}});function Q(){}function qe(e){const t=document.createElement("style");return t.appendChild(document.createTextNode(e)),document.head.appendChild(t),t}function ce(e,t,r){return e<t?t:e>r?r:e}function Ke(e,t){return e.length===t.length&&e.every((r,a)=>r===t[a])}class Xe{constructor(){A(this,"running",!1);A(this,"nextFn",null);A(this,"step",()=>{if(this.nextFn){const t=this.nextFn;this.nextFn=null,Promise.resolve(t()).then(this.step)}else this.running=!1})}schedule(t){this.running?this.nextFn=t:(this.running=!0,Promise.resolve(t()).then(this.step))}}const _e={clicker:"clicker",selector:"selector",text:"text",pencil:"pencil",arrow:"arrow",hand:"hand",eraser:"eraser",laser:"laser",collapse:"Collapse",expand:"Expand",zoomIn:"Zoom In",zoomOut:"Zoom Out",reset:"Reset",prevPage:"Prev Page",nextPage:"Next Page",addPage:"Add Page",redo:"Redo",undo:"Undo",shape:"Shape",triangle:"Triangle",rhombus:"Rhombus",pentagram:"Pentagram",speechBalloon:"Speech Balloon",rectangle:"Rectangle",ellipse:"Ellipse",straight:"Straight",speed:"Speed"};var $e={translation:_e};const et={clicker:"\u70B9\u51FB",selector:"\u9009\u62E9",text:"\u6587\u5B57",pencil:"\u94C5\u7B14",arrow:"\u7BAD\u5934",hand:"\u6293\u624B",eraser:"\u6A61\u76AE",laser:"\u6FC0\u5149\u7B14",zoomIn:"\u653E\u5927",zoomOut:"\u7F29\u5C0F",reset:"\u91CD\u7F6E",prevPage:"\u4E0A\u4E00\u9875",nextPage:"\u4E0B\u4E00\u9875",addPage:"\u6DFB\u52A0\u9875\u9762",redo:"\u91CD\u505A",undo:"\u64A4\u9500",collapse:"\u6536\u8D77",expand:"\u5C55\u5F00",clean:"\u6E05\u5C4F",shape:"\u5F62\u72B6",triangle:"\u4E09\u89D2\u5F62",rhombus:"\u83F1\u5F62",pentagram:"\u4E94\u89D2\u661F",speechBalloon:"\u6C14\u7403",rectangle:"\u77E9\u5F62",ellipse:"\u692D\u5706",straight:"\u76F4\u7EBF",speed:"\u901F\u5EA6"};var tt={translation:et};const ot=async e=>{const t=navigator.language||"zh-CN",r=e.language||t;return await ke.default.init({lng:r,resources:{en:$e,"zh-CN":tt}}),ke.default};function rt(e){(!e.invisiblePlugins||!e.invisiblePlugins.includes(B.WindowManager))&&(e.invisiblePlugins=[...e.invisiblePlugins||[],B.WindowManager])}const q={changeToSelector:"s",changeToLaserPointer:"z",changeToPencil:"p",changeToRectangle:"r",changeToEllipse:"c",changeToEraser:"e",changeToText:"t",changeToStraight:"l",changeToArrow:"a",changeToHand:"h"};async function at(e,t,r,a){const i=new p.WhiteWebSdk(V(L({},e),{useMobXState:!0}));rt(t),t=L({},t);const s=t.callbacks;delete t.callbacks;const l=V(L({floatBar:!0,hotKeys:L(L({},p.DefaultHotKeys),q)},t),{useMultiViews:!0,disableNewPencil:!1,disableMagixEventDispatchLimit:!0}),d=await i.joinRoom(l,s),g=await B.WindowManager.mount(V(L({cursor:!0,debug:!1},r),{room:d})),c=await ot({language:a});return{sdk:i,room:d,manager:g,i18n:c}}var re={exports:{}},K={};/*
3
2
  object-assign
4
3
  (c) Sindre Sorhus
5
4
  @license MIT
6
- */var ue=Object.getOwnPropertySymbols,$e=Object.prototype.hasOwnProperty,et=Object.prototype.propertyIsEnumerable;function tt(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function ot(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},o=0;o<10;o++)t["_"+String.fromCharCode(o)]=o;var a=Object.getOwnPropertyNames(t).map(function(n){return t[n]});if(a.join("")!=="0123456789")return!1;var l={};return"abcdefghijklmnopqrst".split("").forEach(function(n){l[n]=n}),Object.keys(Object.assign({},l)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}ot();/** @license React v17.0.2
5
+ */var Ce=Object.getOwnPropertySymbols,nt=Object.prototype.hasOwnProperty,it=Object.prototype.propertyIsEnumerable;function lt(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function st(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;var a=Object.getOwnPropertyNames(t).map(function(s){return t[s]});if(a.join("")!=="0123456789")return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(s){i[s]=s}),Object.keys(Object.assign({},i)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}st();/** @license React v17.0.2
7
6
  * react-jsx-runtime.production.min.js
8
7
  *
9
8
  * Copyright (c) Facebook, Inc. and its affiliates.
10
9
  *
11
10
  * This source code is licensed under the MIT license found in the
12
11
  * LICENSE file in the root directory of this source tree.
13
- */var rt=Ee.default,he=60103;Q.Fragment=60107;if(typeof Symbol=="function"&&Symbol.for){var xe=Symbol.for;he=xe("react.element"),Q.Fragment=xe("react.fragment")}var at=rt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,nt=Object.prototype.hasOwnProperty,it={key:!0,ref:!0,__self:!0,__source:!0};function me(e,t,o){var a,l={},n=null,s=null;o!==void 0&&(n=""+o),t.key!==void 0&&(n=""+t.key),t.ref!==void 0&&(s=t.ref);for(a in t)nt.call(t,a)&&!it.hasOwnProperty(a)&&(l[a]=t[a]);if(e&&e.defaultProps)for(a in t=e.defaultProps,t)l[a]===void 0&&(l[a]=t[a]);return{$$typeof:he,type:e,key:n,ref:s,props:l,_owner:at.current}}Q.jsx=me;Q.jsxs=me;ee.exports=Q;const r=ee.exports.jsx,f=ee.exports.jsxs,q=ee.exports.Fragment;function w({fallback:e,src:t,alt:o="[icon]"}){return t?r("img",{src:t,alt:o,title:o}):e}const we={color:"#5D5D5D",activeColor:"#3381FF",backgroundColor:"#fff",hoverBackgroundColor:"rgba(51, 129, 255, 0.1)"},lt=B(L({},we),{color:"#eee",backgroundColor:"#111"}),P={light:we,dark:lt},k=e=>{let t;return e.theme?t=P[e.theme]:t=P.light,e.active?t.activeColor:t.color},Z=[0,11],K=[0,11],st=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:f("g",{fill:t,children:[r("path",{d:"M17.667 4.5h-3.334c-1.012 0-1.833.82-1.833 1.833V11.5h5.167c1.012 0 1.833-.82 1.833-1.833V6.333c0-1.012-.82-1.833-1.833-1.833Zm-3.334 1h3.334c.46 0 .833.373.833.833v3.334l-.006.104a.833.833 0 0 1-.827.729H13.5V6.333c0-.46.373-.833.833-.833Z"}),r("path",{d:"M6.333 19.5A1.833 1.833 0 0 1 4.5 17.667v-3.334c0-.525.221-1 .576-1.334a1.822 1.822 0 0 1-.576-1.332V8.333c0-1.012.82-1.833 1.833-1.833H10A1.5 1.5 0 0 1 11.5 8v4.5h4.167c.962 0 1.75.74 1.827 1.683l.006.15v3.334c0 1.012-.82 1.833-1.833 1.833Zm4.167-6H6.333a.833.833 0 0 0-.827.729l-.006.104v3.334c0 .46.373.833.833.833H10.5v-5Zm5.167 0H11.5v5h4.167c.46 0 .833-.373.833-.833v-3.334a.833.833 0 0 0-.833-.833ZM10 7.5H6.333a.833.833 0 0 0-.833.833v3.334c0 .46.373.833.833.833H10.5V8a.5.5 0 0 0-.41-.492L10 7.5Z"})]})})},ct=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:t,d:"M19 5v6l-2.647-2.646L5.99 18.718l-.708-.708L15.645 7.646 13 5h6Z"})})},dt=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("rect",{width:"15",height:"15",x:"4.5",y:"4.5",fill:"none",stroke:t,rx:"7.5"})})},pt=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:t,d:"M9.754 11.99c0 1.856-.711 3.62-1.96 4.951l-.151.155h1.403l.855-.853h.707l.853.853h2.635l.094-.064a6.237 6.237 0 0 0 2.559-4.781l.005-.26h1a7.237 7.237 0 0 1-2.994 5.862l-.229.16-.277.083h-3l-.353-.146-.647-.647-.646.647-.354.146h-3l-.286-.91.214-.148a6.237 6.237 0 0 0 2.567-4.787l.005-.26h1Zm4.772-6.502v2l.35.039a2.98 2.98 0 0 1 2.644 2.78l.006.181h-8a2.98 2.98 0 0 1 2.65-2.961l.35-.039v-2h2Z"})})},bt=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:f("g",{fill:"none",children:[r("path",{d:"M0 0h24v24H0z"}),r("path",{fill:t,d:"m7 5.072 10.33 7.892-4.879.549 3.232 5.598-.866.5-3.233-5.597-2.914 3.95L7 5.072Z"})]})})},gt=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:t,d:"m8 10-2 2 2 2m10-8H6m12 12H6m12-4h-8m8-4h-8"})})},ft=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:t,d:"M4.222 12 12 4.222 19.778 12 12 19.778z"})})},ut=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:t,d:"m16 13-2 2-2 2-2-2-2-2m8-6-2 2-2 2-2-2-2-2"})})},ht=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:t,d:"m14.333 5.183.165.007c.494.037.978.245 1.356.623l2.333 2.333a2.15 2.15 0 0 1 0 3.04l-5.833 5.834a3.8 3.8 0 0 1-5.374 0l-1.167-1.166a2.15 2.15 0 0 1 0-3.04l7-7c.42-.42.97-.63 1.52-.63ZM11.52 8.52l-4.999 5a1.15 1.15 0 0 0 0 1.626l1.167 1.167a2.8 2.8 0 0 0 3.96 0l3.832-3.833-3.96-3.96Z"})})},xt=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:t,d:"m16 10 2 2-2 2M6 6h12M6 18h12M6 14h8m-8-4h8"})})},mt=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:t,d:"m18.01 5.282.708.708L5.99 18.718l-.708-.708z"})})},wt=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:t,d:"m17.497 4.84.116.105 1.442 1.442a1.52 1.52 0 0 1 .104 2.034l-.104.116L8.733 18.858l-4.347.756.756-4.347L15.463 4.945a1.52 1.52 0 0 1 2.034-.104ZM5.967 16.349l-.353 2.037 2.037-.354-1.683-1.683Zm8.407-8.901-7.946 7.946 2.178 2.178 7.946-7.946-2.178-2.178Zm-.728 2.2.708.707-5 5-.708-.708 5-5Zm2.596-4.055-.072.06-1.09 1.088 2.179 2.178 1.089-1.088a.52.52 0 0 0 .105-.584l-.045-.08-.06-.072-1.442-1.442a.52.52 0 0 0-.664-.06Z"})})},kt=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:t,d:"M5.5 5.5h13v13h-13z"})})},vt=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:t,d:"m12 12 8 2.667-3.556 1.777L14.667 20 12 12Zm3-8v7.5h-1V5H5v9h6.5v1H4V4h11Z"})})},Ct=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:t,d:"M17 4.5c.414 0 .79.168 1.06.44.272.27.44.646.44 1.06v9c0 .414-.168.79-.44 1.06a1.49 1.49 0 0 1-1.06.44h-4.207l-2.715 2.715-1.81-2.715H7a1.49 1.49 0 0 1-1.06-.44A1.495 1.495 0 0 1 5.5 15V6c0-.414.168-.79.44-1.06A1.49 1.49 0 0 1 7 4.5Z"})})},At=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:t,d:"m12 3.523 1.993 5.734 6.07.123-4.838 3.668 1.758 5.81L12 15.391l-4.983 3.467 1.758-5.81L3.938 9.38l6.069-.123L12 3.523Z"})})},It=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:t,d:"M18.5 5.5V8h-1V6.5H13v11h2v1H9v-1h2v-11H6.5V8h-1V5.5h13Z"})})},yt=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:t,d:"M12 6.008 19.138 18.5H4.862L12 6.008Z"})})},Mt=e=>{const t=k(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:t,d:"m16 11-2-2-2-2-2 2-2 2m8 6-2-2-2-2-2 2-2 2"})})},m={Clicker:i.memo(bt),Collapse:i.memo(gt),Eraser:i.memo(ht),Expand:i.memo(xt),Pencil:i.memo(wt),Selector:i.memo(vt),Rectangle:i.memo(kt),Text:i.memo(It),Apps:i.memo(st),Clean:i.memo(pt),Circle:i.memo(dt),Line:i.memo(mt),Arrow:i.memo(ct),Star:i.memo(At),Diamond:i.memo(ft),SpeechBalloon:i.memo(Ct),Triangle:i.memo(yt),Up:i.memo(Mt),Down:i.memo(ut)},I=i.forwardRef((e,t)=>{const{content:o,disabled:a,active:l,onClick:n,interactive:s,placement:c="right",children:g}=e,{writable:d,theme:h}=i.useContext(v);return r(N.default,{className:"fastboard-tip",content:o,interactive:s,theme:h,disabled:a||!d,placement:c,offset:c.includes("right")?K:void 0,duration:300,children:r("button",{ref:t,className:u.default("fastboard-toolbar-btn",h,{active:l}),onClick:n,disabled:a||!d,children:g})})});function J(){const{theme:e}=i.useContext(v);return r("span",{className:u.default(`${se}-cut-line`,e)})}function St(e){const[t,o]=i.useState(!1);return i.useEffect(()=>{if(e){const a=()=>o(e.isWritable);return a(),e.callbacks.on("onEnableWriteNowChanged",a),()=>e.callbacks.off("onEnableWriteNowChanged",a)}},[e]),t}function Nt(e){const[t,o]=i.useState(void 0);return i.useEffect(()=>{if(e){o(e.state.memberState);const a=l=>{l.memberState&&o(l.memberState)};return e.callbacks.on("onRoomStateChanged",a),()=>e.callbacks.off("onRoomStateChanged",a)}},[e]),{memberState:t}}function zt(e){const t=St(e),{memberState:o}=Nt(e),a=i.useCallback(()=>{(e==null?void 0:e.isWritable)&&e.cleanCurrentScene()},[e]),l=i.useCallback((c,g)=>{(e==null?void 0:e.isWritable)&&e.setMemberState({currentApplianceName:c,shapeType:g})},[e]),n=i.useCallback(c=>{(e==null?void 0:e.isWritable)&&e.setMemberState({strokeWidth:c})},[e]),s=i.useCallback(c=>{(e==null?void 0:e.isWritable)&&e.setMemberState({strokeColor:c})},[e]);return{writable:t,memberState:o,cleanCurrentScene:a,setAppliance:l,setStrokeWidth:n,setStrokeColor:s}}const Lt={writable:!1,memberState:void 0,cleanCurrentScene:Y,setAppliance:Y,setStrokeWidth:Y,setStrokeColor:Y},ne={[p.ApplianceNames.rectangle]:m.Rectangle,[p.ApplianceNames.ellipse]:m.Circle,[p.ApplianceNames.straight]:m.Line,[p.ApplianceNames.arrow]:m.Arrow,[p.ShapeType.Pentagram]:m.Star,[p.ShapeType.Rhombus]:m.Diamond,[p.ShapeType.Triangle]:m.Triangle,[p.ShapeType.SpeechBalloon]:m.SpeechBalloon},ke=[p.ApplianceNames.rectangle,p.ApplianceNames.ellipse,p.ApplianceNames.straight,p.ApplianceNames.arrow],ve=[p.ShapeType.Pentagram,p.ShapeType.Rhombus,p.ShapeType.Triangle,p.ShapeType.SpeechBalloon],X=32+4,Ce=8,Pt=X*Ce-4,Tt=X*2-4;function jt({scrollTo:e}){const{theme:t,icons:o,writable:a}=i.useContext(v),l=i.useCallback(()=>e(-X),[e]),n=!a;return f(q,{children:[r(I,{content:"Up",onClick:l,children:r(w,{fallback:r(m.Up,{theme:t}),src:n?o==null?void 0:o.upIconDisable:o==null?void 0:o.upIcon,alt:"[up]"})}),r(J,{})]})}function Dt({scrollTo:e}){const{theme:t,icons:o,writable:a}=i.useContext(v),l=i.useCallback(()=>e(X),[e]),n=!a;return f(q,{children:[r(J,{}),r(I,{content:"Down",onClick:l,children:r(w,{fallback:r(m.Down,{theme:t}),src:n?o==null?void 0:o.downIconDisable:o==null?void 0:o.downIcon,alt:"[down]"})})]})}function _(e,t){return typeof t!="string"?e:f("span",{className:"fastboard-toolbar-tooltip",children:[r("span",{children:e}),r("span",{className:"fastboard-toolbar-hotkey",children:t.toUpperCase()})]})}function Wt(){var b;const e=E(),{theme:t,icons:o,writable:a,setAppliance:l,memberState:n,i18n:s}=i.useContext(v),c=i.useCallback(()=>l(p.ApplianceNames.clicker),[l]),g=(b=e==null?void 0:e.config.joinRoom.hotKeys)==null?void 0:b.changeToClick,h=(n==null?void 0:n.currentApplianceName)===p.ApplianceNames.clicker,x=!a;return r(I,{content:_(s==null?void 0:s.t("clicker"),g),onClick:c,active:h,children:r(w,{fallback:r(m.Clicker,{theme:t,active:h}),src:x?o==null?void 0:o.clickerIconDisable:o==null?void 0:o.clickerIcon,alt:"[clicker]"})})}function Bt(){const e=E(),{theme:t,icons:o,writable:a,setAppliance:l,memberState:n,i18n:s}=i.useContext(v),c=i.useCallback(()=>l(p.ApplianceNames.selector),[l]),d=(n==null?void 0:n.currentApplianceName)===p.ApplianceNames.selector,h=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||F).changeToSelector;return r(I,{content:_(s==null?void 0:s.t("selector"),x),onClick:c,active:d,children:r(w,{fallback:r(m.Selector,{theme:t,active:d}),src:h?o==null?void 0:o.selectorIconDisable:o==null?void 0:o.selectorIcon,alt:"[selector]"})})}function Zt(){const e=E(),{theme:t,icons:o,writable:a,setAppliance:l,memberState:n,i18n:s}=i.useContext(v),c=i.useCallback(()=>l(p.ApplianceNames.eraser),[l]),d=(n==null?void 0:n.currentApplianceName)===p.ApplianceNames.eraser,h=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||F).changeToEraser;return r(I,{content:_(s==null?void 0:s.t("eraser"),x),onClick:c,active:d,children:r(w,{fallback:r(m.Eraser,{theme:t,active:d}),src:h?o==null?void 0:o.eraserIconDisable:o==null?void 0:o.eraserIcon,alt:"[eraser]"})})}function Ot(){const{theme:e,icons:t,writable:o,cleanCurrentScene:a,i18n:l}=i.useContext(v),n=!o;return r(I,{content:l==null?void 0:l.t("clean"),onClick:a,children:r(w,{fallback:r(m.Clean,{theme:e}),src:n?t==null?void 0:t.cleanIconDisable:t==null?void 0:t.cleanIcon,alt:"[clean]"})})}var Rt="data:image/png;base64,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",Et="data:image/png;base64,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",Ht="data:image/png;base64,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";function Gt({content:e,onClick:t}){const{theme:o,icons:a,writable:l}=i.useContext(v),n=!l,s=r(I,{content:"Apps",onClick:t,children:r(w,{fallback:r(m.Apps,{theme:o}),src:n?a==null?void 0:a.appsIconDisable:a==null?void 0:a.appsIcon,alt:"[apps]"})});return e===!1?s:r("span",{className:"fastboard-toolbar-btn-interactive",children:r(N.default,{className:"fastboard-tip",content:Jt(e),theme:o,placement:"right-end",trigger:"click",offset:K,arrow:!1,interactive:!0,children:s})})}function Jt(e){return r("div",{className:"fastboard-toolbar-panel apps",children:r("div",{className:"fastboard-toolbar-apps",children:e||r(Vt,{})})})}function Vt(){const e=E();return f(q,{children:[r(ie,{title:"Code Editor",src:Rt,alt:"[code editor]",onClick:e==null?void 0:e.insertCodeEditor.bind(e)}),r(ie,{title:"GeoGebra",src:Et,alt:"[geogebra]",onClick:e==null?void 0:e.insertGeoGebra.bind(e)}),r(ie,{title:"Countdown",src:Ht,alt:"[countdown]",onClick:e==null?void 0:e.insertCountdown.bind(e)})]})}function ie({title:e,src:t,alt:o,onClick:a}){return f("span",{className:"fastboard-toolbar-app-icon",children:[r(I,{placement:"top",content:e,onClick:a,children:r("img",{src:t,alt:o,title:e})}),r("span",{className:"fastboard-toolbar-app-icon-text",children:e})]})}const te={"#E02020":[224,32,32],"#F7B500":[247,181,0],"#6DD400":[109,212,0],"#32C5FF":[50,197,255],"#0091FF":[0,145,255],"#6236FF":[98,54,255],"#B620E0":[182,32,224],"#6D7278":[109,114,120]},Ut=Object.keys(te);function le(){const{theme:e,memberState:t,setStrokeColor:o,writable:a}=i.useContext(v),l=t==null?void 0:t.strokeColor,n=!a;return r("div",{className:u.default("fastboard-toolbar-color-box",e),children:Ut.map(s=>r("div",{className:u.default("fastboard-toolbar-color-item",e),onClick:()=>o(te[s]),children:r("div",{className:u.default("fastboard-toolbar-color-border",e,{active:l&&Je(l,te[s])}),children:r("button",{className:u.default("fastboard-toolbar-color-btn"),style:{background:s},disabled:n,onClick:c=>{c.stopPropagation(),o(te[s])}})})},s))})}function Ae(){const{theme:e,writable:t,memberState:o,setStrokeWidth:a}=i.useContext(v),{activeColor:l}=P[e],n=(o==null?void 0:o.strokeWidth)||0;return r(He.default,{disabled:!t,className:u.default("fastboard-toolbar-slider",e),trackStyle:{background:l},handleStyle:{border:`1px solid ${l}`},value:n,onChange:a,min:1,max:32})}function Ft(){const e=E(),{theme:t,icons:o,writable:a,setAppliance:l,memberState:n,i18n:s}=i.useContext(v),c=i.useCallback(()=>{l(p.ApplianceNames.pencil)},[l]),d=(n==null?void 0:n.currentApplianceName)===p.ApplianceNames.pencil,h=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||F).changeToPencil;return r("span",{className:"fastboard-toolbar-btn-interactive",children:r(N.default,{className:"fastboard-tip",content:Yt(),theme:t,placement:"right-start",trigger:"click",offset:K,arrow:!1,interactive:!0,children:f(I,{content:_(s==null?void 0:s.t("pencil"),x),active:d,onClick:c,children:[r(w,{fallback:r(m.Pencil,{theme:t,active:d}),src:h?o==null?void 0:o.pencilIconDisable:o==null?void 0:o.pencilIcon,alt:"[pencil]"}),r("span",{className:"fastboard-toolbar-triangle"})]})})})}function Yt(){return f("div",{className:"fastboard-toolbar-panel pencil",children:[r(Ae,{}),r(J,{}),r(le,{})]})}function Qt(){const e=E(),{theme:t,icons:o,writable:a,setAppliance:l,memberState:n,i18n:s}=i.useContext(v),c=i.useCallback(()=>{l(p.ApplianceNames.text)},[l]),d=(n==null?void 0:n.currentApplianceName)===p.ApplianceNames.text,h=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||F).changeToText;return r("span",{className:"fastboard-toolbar-btn-interactive",children:r(N.default,{className:"fastboard-tip",content:qt(),theme:t,placement:"right-start",trigger:"click",offset:K,arrow:!1,interactive:!0,children:f(I,{content:_(s==null?void 0:s.t("text"),x),active:d,onClick:c,children:[r(w,{fallback:r(m.Text,{theme:t,active:d}),src:h?o==null?void 0:o.textIconDisable:o==null?void 0:o.textIcon,alt:"[text]"}),r("span",{className:"fastboard-toolbar-triangle"})]})})})}function qt(){return r("div",{className:"fastboard-toolbar-panel text",children:r(le,{})})}const Kt=new Set([...ke,...ve]);function Xt(){const{theme:e,memberState:t,i18n:o}=i.useContext(v),a=t==null?void 0:t.currentApplianceName,l=t==null?void 0:t.shapeType,n=a===p.ApplianceNames.shape?l:a,s=Kt.has(n),c=ne[n]||m.Rectangle;return r("span",{className:"fastboard-toolbar-btn-interactive",children:r(N.default,{className:"fastboard-tip",content:_t(),theme:e,placement:"right-start",trigger:"click",offset:K,arrow:!1,interactive:!0,children:f(I,{content:o==null?void 0:o.t("shape"),active:s,children:[r(c,{theme:e,active:s}),r("span",{className:"fastboard-toolbar-triangle"})]})})})}function _t(){return f("div",{className:"fastboard-toolbar-panel shapes",children:[r($t,{}),r(J,{}),r(Ae,{}),r(J,{}),r(le,{})]})}function $t(){const{i18n:e}=i.useContext(v);return f("div",{className:"fastboard-toolbar-shapes",children:[ke.map(t=>r(eo,{content:e==null?void 0:e.t(t),Appliance:t,Icon:ne[t]},t)),ve.map(t=>r(to,{content:e==null?void 0:e.t(t),shape:t,Icon:ne[t]},t))]})}function eo({content:e,Appliance:t,Icon:o}){const{theme:a,writable:l,setAppliance:n,memberState:s}=i.useContext(v),c=s==null?void 0:s.currentApplianceName;return r(I,{content:e,disabled:!l,placement:"top",onClick:()=>n(t),children:r(o,{theme:a,active:c===t})})}function to({content:e,shape:t,Icon:o}){const{theme:a,writable:l,setAppliance:n,memberState:s}=i.useContext(v),g=(s==null?void 0:s.currentApplianceName)===p.ApplianceNames.shape&&(s==null?void 0:s.shapeType);return r(I,{content:e,disabled:!l,placement:"top",onClick:()=>n(p.ApplianceNames.shape,t),children:r(o,{theme:a,active:g===t})})}function oo({padding:e=16}){var g,d,h,x,b,C,y;const t=E(),o=i.useRef(null),[a,l]=i.useState(0),n=a<X*Ce+48,s=fe(a-48*(n?3:1),Tt,Pt),c=i.useCallback(z=>{o.current&&(o.current.scrollTop=o.current.scrollTop+z)},[]);return i.useEffect(()=>{var H,M;const z=(M=(H=o.current)==null?void 0:H.parentElement)==null?void 0:M.parentElement;if(z){const T=new ResizeObserver(()=>{l(z.getBoundingClientRect().height-e*2)});return T.observe(z),()=>T.disconnect()}},[e]),f(q,{children:[n&&r(jt,{scrollTo:c}),f("div",{ref:o,className:`${se}-section`,style:{height:`${s}px`,overflow:n?"hidden":"visible"},children:[r(Wt,{}),r(Bt,{}),r(Ft,{}),r(Qt,{}),r(Xt,{}),r(Zt,{}),r(Ot,{}),((h=(d=(g=t==null?void 0:t.config.toolbar)==null?void 0:g.apps)==null?void 0:d.enable)!=null?h:!0)&&r(Gt,{content:(b=(x=t==null?void 0:t.config.toolbar)==null?void 0:x.apps)==null?void 0:b.content,onClick:(y=(C=t==null?void 0:t.config.toolbar)==null?void 0:C.apps)==null?void 0:y.onClick})]}),n&&r(Dt,{scrollTo:c})]})}const v=i.createContext(L({theme:"light"},Lt)),se="fastboard-toolbar",Ie=({theme:e="light",icons:t,room:o,i18n:a})=>{const[l,n]=i.useState(!0),s=zt(o),c=i.useCallback(()=>n(d=>!d),[]),g=!s.writable;return r(v.Provider,{value:B(L({theme:e,icons:t},s),{i18n:a}),children:f("div",{className:u.default(se,e),children:[l?r(I,{content:a==null?void 0:a.t("collapse"),onClick:c,children:r(w,{fallback:r(m.Collapse,{theme:e}),src:g?t==null?void 0:t.collapseIconDisable:t==null?void 0:t.collapseIcon})}):r(I,{content:a==null?void 0:a.t("expand"),onClick:c,children:r(w,{fallback:r(m.Expand,{theme:e}),src:g?t==null?void 0:t.expandIconDisable:t==null?void 0:t.expandIcon})}),l&&f(q,{children:[r(J,{}),r(oo,{})]})]})})};function ro({theme:e="light",active:t}){const o=P[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:f("g",{fill:"none",fillRule:"evenodd",stroke:a,strokeLinecap:"round",strokeLinejoin:"round",children:[r("path",{d:"M10 14H6v-4"}),r("path",{d:"m6 14 .788-.9A7.005 7.005 0 0 1 18 14h0"})]})})}function ao({theme:e="light",active:t}){const o=P[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:f("g",{fill:"none",fillRule:"evenodd",stroke:a,strokeLinecap:"round",strokeLinejoin:"round",children:[r("path",{d:"M14 14h4v-4"}),r("path",{d:"m18 14-.788-.9A7.005 7.005 0 0 0 6 14h0"})]})})}const ce="fastboard-redo-undo";function ye({room:e,theme:t="light",undoIcon:o,undoIconDisable:a,redoIcon:l,redoIconDisable:n,i18n:s}){const[c,g]=i.useState(!1),[d,h]=i.useState(0),[x,b]=i.useState(0);i.useEffect(()=>{if(e){g(e.isWritable),e.isWritable&&(e.disableSerialization=!1);const y=()=>g((e==null?void 0:e.isWritable)||!1);return e.callbacks.on("onEnableWriteNowChanged",y),e.callbacks.on("onCanUndoStepsUpdate",h),e.callbacks.on("onCanRedoStepsUpdate",b),()=>{e.callbacks.off("onEnableWriteNowChanged",y),e.callbacks.off("onCanUndoStepsUpdate",h),e.callbacks.off("onCanRedoStepsUpdate",b)}}},[e]);const C=!c;return f("div",{className:u.default(ce,t),children:[r(N.default,{className:"fastboard-tip",content:s==null?void 0:s.t("undo"),theme:t,disabled:C,placement:"top",duration:300,offset:Z,children:r("button",{className:u.default(`${ce}-btn`,"undo",t),disabled:C||d===0,onClick:i.useCallback(()=>e&&e.undo(),[e]),children:r(w,{fallback:r(ro,{theme:t}),src:d===0?a:o,alt:"[undo]"})})}),r(N.default,{className:"fastboard-tip",content:s==null?void 0:s.t("redo"),theme:t,disabled:C,placement:"top",duration:300,offset:Z,children:r("button",{className:u.default(`${ce}-btn`,"redo",t),disabled:C||x===0,onClick:i.useCallback(()=>e&&e.redo(),[e]),children:r(w,{fallback:r(ao,{theme:t}),src:x===0?n:l,alt:"[redo]"})})})]})}function no({theme:e="light",active:t}){const o=P[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:a,strokeLinecap:"round",strokeLinejoin:"round",d:"M7 12h10"})})}function io({theme:e="light",active:t}){const o=P[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:a,strokeLinecap:"round",strokeLinejoin:"round",d:"M12 7v10m-5-5h10"})})}function lo({theme:e="light",active:t}){const o=P[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:f("g",{fill:"none",fillRule:"evenodd",transform:"translate(-176 -684)",children:[r("path",{stroke:a,strokeLinejoin:"round",d:"M188 688v4m0 8v4m8-8h-4m-8 0h-4"}),r("circle",{cx:"188",cy:"696",r:"6",stroke:a}),r("circle",{cx:"188",cy:"696",r:"1",fill:a})]})})}const V="fastboard-zoom-control",W=[.10737418240000011,.13421772800000012,.16777216000000014,.20971520000000016,.26214400000000015,.3276800000000002,.4096000000000002,.5120000000000001,.6400000000000001,.8,1,1.26,1.5876000000000001,2.000376,2.5204737600000002,3.1757969376000004,4.001504141376,5.041895218133761,6.352787974848539,8.00451284830916,10];function oe(e,t){const{length:o}=W,a=o-1;if(e<W[0])return W[0];if(e>W[a])return W[a];for(let l=0;l<o;++l){const n=W[l],s=l===0?-1/0:(W[l-1]+n)/2,c=l===a?1/0:(W[l+1]+n)/2;if(s<=e&&e<=c)return W[fe(l+t,0,a)]}return 1}function Me({room:e,manager:t,theme:o="light",resetIcon:a,resetIconDisable:l,minusIcon:n,minusIconDisable:s,plusIcon:c,plusIconDisable:g,i18n:d}){const[h,x]=i.useState(!1),[b,C]=i.useState(1),y=i.useCallback(()=>{if(e==null?void 0:e.isWritable)if(t)t.mainView.moveCamera({scale:1,centerX:0,centerY:0});else{const{scenes:T,index:S}=e.state.sceneState;T[S].ppt?e.scalePptToFit():e.moveCamera({scale:1,centerX:0,centerY:0})}},[e,t]),z=i.useCallback(()=>{(e==null?void 0:e.isWritable)&&(t?t.mainView.moveCamera({scale:oe(b,1),centerX:0,centerY:0}):e.moveCamera({scale:oe(b,1),centerX:0,centerY:0}))},[e,t,b]),H=i.useCallback(()=>{(e==null?void 0:e.isWritable)&&(t?t.mainView.moveCamera({scale:oe(b,-1),centerX:0,centerY:0}):e.moveCamera({scale:oe(b,-1),centerX:0,centerY:0}))},[e,t,b]);i.useEffect(()=>{e&&(x(e.isWritable),C(e.state.cameraState.scale)),t&&C(t.mainView.camera.scale);const T=O=>{O.cameraState&&C(O.cameraState.scale)},S=({scale:O})=>C(O),j=()=>x((e==null?void 0:e.isWritable)||!1);return e&&(e.callbacks.on("onEnableWriteNowChanged",j),t?t.mainView.callbacks.on("onCameraUpdated",S):e.callbacks.on("onRoomStateChanged",T)),()=>{e&&(e.callbacks.off("onEnableWriteNowChanged",j),e.callbacks.off("onRoomStateChanged",T),t==null||t.mainView.callbacks.off("onCameraUpdated",S))}},[e,t]);const M=!h;return f("div",{className:u.default(V,o),children:[r(N.default,{className:"fastboard-tip",content:d==null?void 0:d.t("zoomOut"),theme:o,disabled:M,placement:"top",duration:300,offset:Z,children:r("button",{className:u.default(`${V}-btn`,"minus",o),disabled:M,onClick:H,children:r(w,{fallback:r(no,{theme:o}),src:M?s:n,alt:"[minus]"})})}),r("span",{className:u.default(`${V}-scale`,o),children:Math.ceil(b*100)}),r("span",{className:u.default(`${V}-percent`,o),children:"%"}),r(N.default,{className:"fastboard-tip",content:d==null?void 0:d.t("zoomIn"),theme:o,disabled:M,placement:"top",duration:300,offset:Z,children:r("button",{className:u.default(`${V}-btn`,"plus",o),disabled:M,onClick:z,children:r(w,{fallback:r(io,{theme:o}),src:M?g:c,alt:"[plus]"})})}),r(N.default,{className:"fastboard-tip",content:d==null?void 0:d.t("reset"),theme:o,disabled:M,placement:"top",duration:300,offset:Z,children:r("button",{className:u.default(`${V}-btn`,"reset",o),disabled:M,onClick:y,children:r(w,{fallback:r(lo,{theme:o}),src:M?l:a,alt:"[reset]"})})})]})}function so({theme:e="light",active:t}){const o=P[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:a,d:"M12 7.5a.5.5 0 0 1 .09.992L12 8.5H8a1.5 1.5 0 0 0-1.493 1.356L6.5 10v6a1.5 1.5 0 0 0 1.356 1.493L8 17.5h6a1.5 1.5 0 0 0 1.493-1.356L15.5 16v-4a.5.5 0 0 1 .992-.09l.008.09v4a2.5 2.5 0 0 1-2.336 2.495L14 18.5H8a2.5 2.5 0 0 1-2.495-2.336L5.5 16v-6a2.5 2.5 0 0 1 2.336-2.495L8 7.5h4Zm4-2a.5.5 0 0 1 .492.41L16.5 6v1.5H18a.5.5 0 0 1 .09.992L18 8.5h-1.5V10a.5.5 0 0 1-.992.09L15.5 10V8.5H14a.5.5 0 0 1-.09-.992L14 7.5h1.5V6a.5.5 0 0 1 .5-.5Z"})})}function co({theme:e="light",active:t}){const o=P[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:a,strokeLinecap:"round",strokeLinejoin:"round",d:"m14 16-2-2-2-2 2-2 2-2"})})}function po({theme:e="light",active:t}){const o=P[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:a,strokeLinecap:"round",strokeLinejoin:"round",d:"m10 16 2-2 2-2-2-2-2-2"})})}const R="fastboard-page-control";function Se({room:e,manager:t,theme:o="light",addIcon:a,addIconDisable:l,prevIcon:n,prevIconDisable:s,nextIcon:c,nextIconDisable:g,i18n:d}){const[h,x]=i.useState(!1),[b,C]=i.useState(0),[y,z]=i.useState(0),H=i.useCallback(async()=>{if(t&&e){await t.switchMainViewToWriter();const j=e.state.sceneState.contextPath;e.putScenes(j,[{}],y),await t.setMainViewSceneIndex(b)}else if(!t&&e){const j=e.state.sceneState.contextPath;e.putScenes(j,[{}],y),e.setSceneIndex(b)}},[e,t,y,b]),M=i.useCallback(()=>{(e==null?void 0:e.isWritable)&&(t?t.setMainViewSceneIndex(b-1):e.pptPreviousStep())},[e,t,b]),T=i.useCallback(()=>{(e==null?void 0:e.isWritable)&&(t?t.setMainViewSceneIndex(b+1):e.pptNextStep())},[e,t,b]);i.useEffect(()=>{e&&(x(e.isWritable),C(e.state.sceneState.index),z(e.state.sceneState.scenes.length));const j=U=>{U.sceneState&&(C(U.sceneState.index),z(U.sceneState.scenes.length))},O=U=>{e&&U===0&&(C(e.state.sceneState.index),z(e.state.sceneState.scenes.length))},de=()=>x((e==null?void 0:e.isWritable)||!1);return e&&(e.callbacks.on("onEnableWriteNowChanged",de),e.callbacks.on("onRoomStateChanged",j),t==null||t.callbacks.on("mainViewModeChange",O)),()=>{e&&(e.callbacks.off("onEnableWriteNowChanged",de),e.callbacks.off("onRoomStateChanged",j),t==null||t.callbacks.off("mainViewModeChange",O))}},[e,t]);const S=!h;return f("div",{className:u.default(R,o),children:[r(N.default,{className:"fastboard-tip",content:d==null?void 0:d.t("prevPage"),theme:o,disabled:S,placement:"top",duration:300,offset:Z,children:r("button",{className:u.default(`${R}-btn`,"prev",o),disabled:S||b===0,onClick:M,children:r(w,{fallback:r(co,{theme:o}),src:S?s:n,alt:"[prev]"})})}),r("span",{className:u.default(`${R}-page`,o),children:y===0?"\u2026":b+1}),r("span",{className:u.default(`${R}-slash`,o),children:"/"}),r("span",{className:u.default(`${R}-page-count`,o),children:y}),r(N.default,{className:"fastboard-tip",content:d==null?void 0:d.t("nextPage"),theme:o,disabled:S,placement:"top",duration:300,offset:Z,children:r("button",{className:u.default(`${R}-btn`,"next",o),disabled:S||b===y-1,onClick:T,children:r(w,{fallback:r(po,{theme:o}),src:S?g:c,alt:"[next]"})})}),r(N.default,{className:"fastboard-tip",content:d==null?void 0:d.t("addPage"),theme:o,disabled:S,placement:"top",duration:300,offset:Z,children:r("button",{className:u.default(`${R}-btn`,"add",o),disabled:S,onClick:H,children:r(w,{fallback:r(so,{theme:o}),src:S?l:a,alt:"[add]"})})})]})}function bo({instance:e}){const[t]=i.useState(()=>new _e),o=i.useCallback(a=>t.schedule(a?()=>e.mount(a):()=>e.unmount()),[e,t]);return r(re.Context.Provider,{value:e,children:f("div",{className:"fastboard-root",children:[!e.room&&r("div",{className:"fastboard-loading",children:"Loading\u2026"}),r("div",{className:"fastboard-view",ref:o}),r("div",{className:"fastboard-left",children:r(Ie,{room:e.room,manager:e.manager,i18n:e.i18n})}),f("div",{className:"fastboard-bottom-left",children:[r(ye,{room:e.room,manager:e.manager,i18n:e.i18n}),r(Me,{room:e.room,manager:e.manager,i18n:e.i18n})]}),r("div",{className:"fastboard-bottom-right",children:r(Se,{room:e.room,manager:e.manager,i18n:e.i18n})})]})})}class re{constructor(t){A(this,"config");A(this,"target",null);A(this,"sdk",null);A(this,"room",null);A(this,"manager",null);A(this,"i18n",null);A(this,"ready",!1);A(this,"resolveReady");A(this,"readyPromise");this.target=t.target,this.config=t,this.refreshReadyPromise(),this.forceUpdate()}refreshReadyPromise(){this.readyPromise=new Promise(t=>{this.resolveReady=()=>{this.resolveReady=Y,this.ready=!0,t()}})}forceUpdate(){ge.default.render(r(bo,{instance:this}),this.target)}accept({sdk:t,room:o,manager:a,i18n:l}){this.sdk=t,this.room=o,this.manager=a,this.i18n=l,this.forceUpdate()}async dispose(){this.room&&await this.unmount(),this.target&&(ge.default.unmountComponentAtNode(this.target),this.sdk=this.room=this.manager=this.target=null)}async mount(t){if(this.room){console.warn("[WhiteboardApp] already mounted");return}const o=await Xe(this.config.sdkConfig,this.config.joinRoom,B(L({},this.config.managerConfig),{container:t}),this.config.language);this.accept(o),this.resolveReady()}async unmount(){if(this.manager&&(this.manager.destroy(),this.manager=null),this.room){try{await this.room.disconnect()}catch{}this.room=null}this.refreshReadyPromise()}insertDocs(t){if(!this.manager)throw new Error("[WhiteboardApp] cannot insert doc before mounted");switch(t.fileType){case"pdf":case"ppt":return this.manager.addApp({kind:"DocsViewer",options:{scenePath:t.scenePath,title:t.title,scenes:t.scenes}});case"pptx":return this.manager.addApp({kind:"Slide",options:{scenePath:t.scenePath,title:t.title},attributes:{taskId:t.taskId,url:t.url}})}}insertCodeEditor(){if(!this.manager)throw new Error("[WhiteboardApp] cannot insert app before mounted");return this.manager.addApp({kind:"Monaco",options:{title:"Code Editor"}})}insertGeoGebra(){if(!this.manager)throw new Error("[WhiteboardApp] cannot insert app before mounted");return this.manager.addApp({kind:"GeoGebra",options:{title:"GeoGebra"}})}insertCountdown(){if(!this.manager)throw new Error("[WhiteboardApp] cannot insert app before mounted");return this.manager.addApp({kind:"Countdown",options:{title:"Countdown"}})}changeLanguage(t){var o;return(o=this.i18n)==null?void 0:o.changeLanguage(t)}}A(re,"Context",i.createContext(null));function E(){return i.useContext(re.Context)}class Ne{constructor(t){A(this,"_instance");this.config=t,this._instance=new re(t)}insertDocs(t){return this._instance.insertDocs(t)}changeLanguage(t){var o;return(o=this._instance.changeLanguage(t))==null?void 0:o.finally(()=>{this._instance.forceUpdate()})}dispose(){return this._instance.dispose()}}const go="0.0.1";function fo(e){const[t,o]=i.useState(null),[a,l]=i.useState(null),n=i.useRef({app:void 0,type:void 0,next:void 0});return i.useEffect(()=>{if(n.current.type){n.current.next=a;return}(async()=>{let s=a;do s?(n.current.type="creating",n.current.app&&await n.current.app.dispose(),n.current.app=await ze(B(L({},e),{target:s})),o(n.current.app)):s===null&&(n.current.type="disposing",n.current.app&&(await n.current.app.dispose(),n.current.app=void 0),o(null)),n.current.type=void 0,s=n.current.next,n.current.next=void 0;while(s!==void 0)})()},[e,a]),Object.assign([t,l],{app:t,ref:l})}const uo=D.WindowManager.register.bind(D.WindowManager);async function ze(e){const t=new Ne(e);return await t._instance.readyPromise,t}exports.PageControl=Se;exports.RedoUndo=ye;exports.Toolbar=Ie;exports.WhiteboardApp=Ne;exports.ZoomControl=Me;exports.createWhiteboardApp=ze;exports.register=uo;exports.useFastboard=fo;exports.version=go;
12
+ */var ct=Qe.default,ye=60103;K.Fragment=60107;if(typeof Symbol=="function"&&Symbol.for){var Ie=Symbol.for;ye=Ie("react.element"),K.Fragment=Ie("react.fragment")}var dt=ct.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,pt=Object.prototype.hasOwnProperty,bt={key:!0,ref:!0,__self:!0,__source:!0};function Ae(e,t,r){var a,i={},s=null,l=null;r!==void 0&&(s=""+r),t.key!==void 0&&(s=""+t.key),t.ref!==void 0&&(l=t.ref);for(a in t)pt.call(t,a)&&!bt.hasOwnProperty(a)&&(i[a]=t[a]);if(e&&e.defaultProps)for(a in t=e.defaultProps,t)i[a]===void 0&&(i[a]=t[a]);return{$$typeof:ye,type:e,key:s,ref:l,props:i,_owner:dt.current}}K.jsx=Ae;K.jsxs=Ae;re.exports=K;const o=re.exports.jsx,h=re.exports.jsxs,X=re.exports.Fragment;function w({fallback:e,src:t,alt:r="[icon]"}){return t?o("img",{src:t,alt:r,title:r}):e}const Se={color:"#5D5D5D",activeColor:"#3381FF",backgroundColor:"#fff",hoverBackgroundColor:"rgba(51, 129, 255, 0.1)"},gt=V(L({},Se),{color:"#eee",backgroundColor:"#111"}),z={light:Se,dark:gt},m=e=>{let t;return e.theme?t=z[e.theme]:t=z.light,e.active?t.activeColor:t.color},j=[0,11],_=[0,11],ft=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:h("g",{fill:t,children:[o("path",{d:"M17.667 4.5h-3.334c-1.012 0-1.833.82-1.833 1.833V11.5h5.167c1.012 0 1.833-.82 1.833-1.833V6.333c0-1.012-.82-1.833-1.833-1.833Zm-3.334 1h3.334c.46 0 .833.373.833.833v3.334l-.006.104a.833.833 0 0 1-.827.729H13.5V6.333c0-.46.373-.833.833-.833Z"}),o("path",{d:"M6.333 19.5A1.833 1.833 0 0 1 4.5 17.667v-3.334c0-.525.221-1 .576-1.334a1.822 1.822 0 0 1-.576-1.332V8.333c0-1.012.82-1.833 1.833-1.833H10A1.5 1.5 0 0 1 11.5 8v4.5h4.167c.962 0 1.75.74 1.827 1.683l.006.15v3.334c0 1.012-.82 1.833-1.833 1.833Zm4.167-6H6.333a.833.833 0 0 0-.827.729l-.006.104v3.334c0 .46.373.833.833.833H10.5v-5Zm5.167 0H11.5v5h4.167c.46 0 .833-.373.833-.833v-3.334a.833.833 0 0 0-.833-.833ZM10 7.5H6.333a.833.833 0 0 0-.833.833v3.334c0 .46.373.833.833.833H10.5V8a.5.5 0 0 0-.41-.492L10 7.5Z"})]})})},ut=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:t,d:"M19 5v6l-2.647-2.646L5.99 18.718l-.708-.708L15.645 7.646 13 5h6Z"})})},ht=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("rect",{width:"15",height:"15",x:"4.5",y:"4.5",fill:"none",stroke:t,rx:"7.5"})})},xt=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:t,d:"M9.754 11.99c0 1.856-.711 3.62-1.96 4.951l-.151.155h1.403l.855-.853h.707l.853.853h2.635l.094-.064a6.237 6.237 0 0 0 2.559-4.781l.005-.26h1a7.237 7.237 0 0 1-2.994 5.862l-.229.16-.277.083h-3l-.353-.146-.647-.647-.646.647-.354.146h-3l-.286-.91.214-.148a6.237 6.237 0 0 0 2.567-4.787l.005-.26h1Zm4.772-6.502v2l.35.039a2.98 2.98 0 0 1 2.644 2.78l.006.181h-8a2.98 2.98 0 0 1 2.65-2.961l.35-.039v-2h2Z"})})},mt=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:h("g",{fill:"none",children:[o("path",{d:"M0 0h24v24H0z"}),o("path",{fill:t,d:"m7 5.072 10.33 7.892-4.879.549 3.232 5.598-.866.5-3.233-5.597-2.914 3.95L7 5.072Z"})]})})},wt=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:"none",stroke:t,d:"m8 10-2 2 2 2m10-8H6m12 12H6m12-4h-8m8-4h-8"})})},kt=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:"none",stroke:t,d:"M4.222 12 12 4.222 19.778 12 12 19.778z"})})},vt=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:"none",stroke:t,d:"m16 13-2 2-2 2-2-2-2-2m8-6-2 2-2 2-2-2-2-2"})})},Ct=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:t,d:"m14.333 5.183.165.007c.494.037.978.245 1.356.623l2.333 2.333a2.15 2.15 0 0 1 0 3.04l-5.833 5.834a3.8 3.8 0 0 1-5.374 0l-1.167-1.166a2.15 2.15 0 0 1 0-3.04l7-7c.42-.42.97-.63 1.52-.63ZM11.52 8.52l-4.999 5a1.15 1.15 0 0 0 0 1.626l1.167 1.167a2.8 2.8 0 0 0 3.96 0l3.832-3.833-3.96-3.96Z"})})},yt=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:"none",stroke:t,d:"m16 10 2 2-2 2M6 6h12M6 18h12M6 14h8m-8-4h8"})})},It=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:t,d:"m18.01 5.282.708.708L5.99 18.718l-.708-.708z"})})},At=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:t,d:"m17.497 4.84.116.105 1.442 1.442a1.52 1.52 0 0 1 .104 2.034l-.104.116L8.733 18.858l-4.347.756.756-4.347L15.463 4.945a1.52 1.52 0 0 1 2.034-.104ZM5.967 16.349l-.353 2.037 2.037-.354-1.683-1.683Zm8.407-8.901-7.946 7.946 2.178 2.178 7.946-7.946-2.178-2.178Zm-.728 2.2.708.707-5 5-.708-.708 5-5Zm2.596-4.055-.072.06-1.09 1.088 2.179 2.178 1.089-1.088a.52.52 0 0 0 .105-.584l-.045-.08-.06-.072-1.442-1.442a.52.52 0 0 0-.664-.06Z"})})},St=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:"none",stroke:t,d:"M5.5 5.5h13v13h-13z"})})},Mt=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:t,d:"m12 12 8 2.667-3.556 1.777L14.667 20 12 12Zm3-8v7.5h-1V5H5v9h6.5v1H4V4h11Z"})})},Nt=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:"none",stroke:t,d:"M17 4.5c.414 0 .79.168 1.06.44.272.27.44.646.44 1.06v9c0 .414-.168.79-.44 1.06a1.49 1.49 0 0 1-1.06.44h-4.207l-2.715 2.715-1.81-2.715H7a1.49 1.49 0 0 1-1.06-.44A1.495 1.495 0 0 1 5.5 15V6c0-.414.168-.79.44-1.06A1.49 1.49 0 0 1 7 4.5Z"})})},Pt=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:"none",stroke:t,d:"m12 3.523 1.993 5.734 6.07.123-4.838 3.668 1.758 5.81L12 15.391l-4.983 3.467 1.758-5.81L3.938 9.38l6.069-.123L12 3.523Z"})})},zt=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:t,d:"M18.5 5.5V8h-1V6.5H13v11h2v1H9v-1h2v-11H6.5V8h-1V5.5h13Z"})})},Tt=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:"none",stroke:t,d:"M12 6.008 19.138 18.5H4.862L12 6.008Z"})})},Lt=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:"none",stroke:t,d:"m16 11-2-2-2-2-2 2-2 2m8 6-2-2-2-2-2 2-2 2"})})},k={Clicker:n.memo(mt),Collapse:n.memo(wt),Eraser:n.memo(Ct),Expand:n.memo(yt),Pencil:n.memo(At),Selector:n.memo(Mt),Rectangle:n.memo(St),Text:n.memo(zt),Apps:n.memo(ft),Clean:n.memo(xt),Circle:n.memo(ht),Line:n.memo(It),Arrow:n.memo(ut),Star:n.memo(Pt),Diamond:n.memo(kt),SpeechBalloon:n.memo(Nt),Triangle:n.memo(Tt),Up:n.memo(Lt),Down:n.memo(vt)},M=n.forwardRef((e,t)=>{const{content:r,disabled:a,active:i,onClick:s,interactive:l,placement:d="right",children:g}=e,{writable:c,theme:b}=n.useContext(v);return o(S.default,{className:"fastboard-tip",content:r,interactive:l,theme:b,disabled:a||!c,placement:d,offset:d.includes("right")?_:void 0,duration:300,children:o("button",{ref:t,className:f.default("fastboard-toolbar-btn",b,{active:i}),onClick:s,disabled:a||!c,children:g})})});function F(){const{theme:e}=n.useContext(v);return o("span",{className:f.default(`${ge}-cut-line`,e)})}function jt(e){const[t,r]=n.useState(!1);return n.useEffect(()=>{if(e){const a=()=>r(e.isWritable);return a(),e.callbacks.on("onEnableWriteNowChanged",a),()=>e.callbacks.off("onEnableWriteNowChanged",a)}},[e]),t}function Dt(e){const[t,r]=n.useState(void 0);return n.useEffect(()=>{if(e){r(e.state.memberState);const a=i=>{i.memberState&&r(i.memberState)};return e.callbacks.on("onRoomStateChanged",a),()=>e.callbacks.off("onRoomStateChanged",a)}},[e]),{memberState:t}}function Wt(e){const t=jt(e),{memberState:r}=Dt(e),a=n.useCallback(()=>{(e==null?void 0:e.isWritable)&&e.cleanCurrentScene()},[e]),i=n.useCallback((d,g)=>{(e==null?void 0:e.isWritable)&&e.setMemberState({currentApplianceName:d,shapeType:g})},[e]),s=n.useCallback(d=>{(e==null?void 0:e.isWritable)&&e.setMemberState({strokeWidth:d})},[e]),l=n.useCallback(d=>{(e==null?void 0:e.isWritable)&&e.setMemberState({strokeColor:d})},[e]);return{writable:t,memberState:r,cleanCurrentScene:a,setAppliance:i,setStrokeWidth:s,setStrokeColor:l}}const Bt={writable:!1,memberState:void 0,cleanCurrentScene:Q,setAppliance:Q,setStrokeWidth:Q,setStrokeColor:Q},de={[p.ApplianceNames.rectangle]:k.Rectangle,[p.ApplianceNames.ellipse]:k.Circle,[p.ApplianceNames.straight]:k.Line,[p.ApplianceNames.arrow]:k.Arrow,[p.ShapeType.Pentagram]:k.Star,[p.ShapeType.Rhombus]:k.Diamond,[p.ShapeType.Triangle]:k.Triangle,[p.ShapeType.SpeechBalloon]:k.SpeechBalloon},Me=[p.ApplianceNames.rectangle,p.ApplianceNames.ellipse,p.ApplianceNames.straight,p.ApplianceNames.arrow],Ne=[p.ShapeType.Pentagram,p.ShapeType.Rhombus,p.ShapeType.Triangle,p.ShapeType.SpeechBalloon],$=32+4,Pe=8,Zt=$*Pe-4,Ot=$*2-4;function Et({disabled:e,scrollTo:t}){const{theme:r,icons:a}=n.useContext(v),i=n.useCallback(()=>t(-$),[t]);return h(X,{children:[o(M,{content:"Up",disabled:e,onClick:i,children:o(w,{fallback:o(k.Up,{theme:r}),src:e?a==null?void 0:a.upIconDisable:a==null?void 0:a.upIcon,alt:"[up]"})}),o(F,{})]})}function Rt({disabled:e,scrollTo:t}){const{theme:r,icons:a}=n.useContext(v),i=n.useCallback(()=>t($),[t]);return h(X,{children:[o(F,{}),o(M,{content:"Down",disabled:e,onClick:i,children:o(w,{fallback:o(k.Down,{theme:r}),src:e?a==null?void 0:a.downIconDisable:a==null?void 0:a.downIcon,alt:"[down]"})})]})}function ee(e,t){return typeof t!="string"?e:h("span",{className:"fastboard-toolbar-tooltip",children:[o("span",{children:e}),o("span",{className:"fastboard-toolbar-hotkey",children:t.toUpperCase()})]})}function Ht(){var u;const e=H(),{theme:t,icons:r,writable:a,setAppliance:i,memberState:s,i18n:l}=n.useContext(v),d=n.useCallback(()=>i(p.ApplianceNames.clicker),[i]),g=(u=e==null?void 0:e.config.joinRoom.hotKeys)==null?void 0:u.changeToClick,b=(s==null?void 0:s.currentApplianceName)===p.ApplianceNames.clicker,x=!a;return o(M,{content:ee(l==null?void 0:l.t("clicker"),g),onClick:d,active:b,children:o(w,{fallback:o(k.Clicker,{theme:t,active:b}),src:x?r==null?void 0:r.clickerIconDisable:r==null?void 0:r.clickerIcon,alt:"[clicker]"})})}function Gt(){const e=H(),{theme:t,icons:r,writable:a,setAppliance:i,memberState:s,i18n:l}=n.useContext(v),d=n.useCallback(()=>i(p.ApplianceNames.selector),[i]),c=(s==null?void 0:s.currentApplianceName)===p.ApplianceNames.selector,b=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||q).changeToSelector;return o(M,{content:ee(l==null?void 0:l.t("selector"),x),onClick:d,active:c,children:o(w,{fallback:o(k.Selector,{theme:t,active:c}),src:b?r==null?void 0:r.selectorIconDisable:r==null?void 0:r.selectorIcon,alt:"[selector]"})})}function Vt(){const e=H(),{theme:t,icons:r,writable:a,setAppliance:i,memberState:s,i18n:l}=n.useContext(v),d=n.useCallback(()=>i(p.ApplianceNames.eraser),[i]),c=(s==null?void 0:s.currentApplianceName)===p.ApplianceNames.eraser,b=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||q).changeToEraser;return o(M,{content:ee(l==null?void 0:l.t("eraser"),x),onClick:d,active:c,children:o(w,{fallback:o(k.Eraser,{theme:t,active:c}),src:b?r==null?void 0:r.eraserIconDisable:r==null?void 0:r.eraserIcon,alt:"[eraser]"})})}function Jt(){const{theme:e,icons:t,writable:r,cleanCurrentScene:a,i18n:i}=n.useContext(v),s=!r;return o(M,{content:i==null?void 0:i.t("clean"),onClick:a,children:o(w,{fallback:o(k.Clean,{theme:e}),src:s?t==null?void 0:t.cleanIconDisable:t==null?void 0:t.cleanIcon,alt:"[clean]"})})}var Ft="data:image/png;base64,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",Ut="data:image/png;base64,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",Yt="data:image/png;base64,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";function Qt({content:e,onClick:t}){const{theme:r,icons:a,writable:i}=n.useContext(v),s=!i,l=o(M,{content:"Apps",onClick:t,children:o(w,{fallback:o(k.Apps,{theme:r}),src:s?a==null?void 0:a.appsIconDisable:a==null?void 0:a.appsIcon,alt:"[apps]"})});return e===!1?l:o("span",{className:"fastboard-toolbar-btn-interactive",children:o(S.default,{className:"fastboard-tip",content:qt(e),theme:r,placement:"right-end",trigger:"click",offset:_,arrow:!1,interactive:!0,children:l})})}function qt(e){return o("div",{className:"fastboard-toolbar-panel apps",children:o("div",{className:"fastboard-toolbar-apps",children:e||o(Kt,{})})})}function Kt(){const e=H();return h(X,{children:[o(pe,{title:"Code Editor",src:Ft,alt:"[code editor]",onClick:e==null?void 0:e.insertCodeEditor.bind(e)}),o(pe,{title:"GeoGebra",src:Ut,alt:"[geogebra]",onClick:e==null?void 0:e.insertGeoGebra.bind(e)}),o(pe,{title:"Countdown",src:Yt,alt:"[countdown]",onClick:e==null?void 0:e.insertCountdown.bind(e)})]})}function pe({title:e,src:t,alt:r,onClick:a}){return h("span",{className:"fastboard-toolbar-app-icon",children:[o(M,{placement:"top",content:e,onClick:a,children:o("img",{src:t,alt:r,title:e})}),o("span",{className:"fastboard-toolbar-app-icon-text",children:e})]})}const ae={"#E02020":[224,32,32],"#F7B500":[247,181,0],"#6DD400":[109,212,0],"#32C5FF":[50,197,255],"#0091FF":[0,145,255],"#6236FF":[98,54,255],"#B620E0":[182,32,224],"#6D7278":[109,114,120]},Xt=Object.keys(ae);function be(){const{theme:e,memberState:t,setStrokeColor:r,writable:a}=n.useContext(v),i=t==null?void 0:t.strokeColor,s=!a;return o("div",{className:f.default("fastboard-toolbar-color-box",e),children:Xt.map(l=>o("div",{className:f.default("fastboard-toolbar-color-item",e),onClick:()=>r(ae[l]),children:o("div",{className:f.default("fastboard-toolbar-color-border",e,{active:i&&Ke(i,ae[l])}),children:o("button",{className:f.default("fastboard-toolbar-color-btn"),style:{background:l},disabled:s,onClick:d=>{d.stopPropagation(),r(ae[l])}})})},l))})}function ze(){const{theme:e,writable:t,memberState:r,setStrokeWidth:a}=n.useContext(v),{activeColor:i}=z[e],s=(r==null?void 0:r.strokeWidth)||0;return o(ve.default,{disabled:!t,className:f.default("fastboard-toolbar-slider",e),trackStyle:{background:i},handleStyle:{border:`1px solid ${i}`},value:s,onChange:a,min:1,max:32})}function _t(){const e=H(),{theme:t,icons:r,writable:a,setAppliance:i,memberState:s,i18n:l}=n.useContext(v),d=n.useCallback(()=>{i(p.ApplianceNames.pencil)},[i]),c=(s==null?void 0:s.currentApplianceName)===p.ApplianceNames.pencil,b=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||q).changeToPencil;return o("span",{className:"fastboard-toolbar-btn-interactive",children:o(S.default,{className:"fastboard-tip",content:$t(),theme:t,placement:"right-start",trigger:"click",offset:_,arrow:!1,interactive:!0,children:h(M,{content:ee(l==null?void 0:l.t("pencil"),x),active:c,onClick:d,children:[o(w,{fallback:o(k.Pencil,{theme:t,active:c}),src:b?r==null?void 0:r.pencilIconDisable:r==null?void 0:r.pencilIcon,alt:"[pencil]"}),o("span",{className:"fastboard-toolbar-triangle"})]})})})}function $t(){return h("div",{className:"fastboard-toolbar-panel pencil",children:[o(ze,{}),o(F,{}),o(be,{})]})}function eo(){const e=H(),{theme:t,icons:r,writable:a,setAppliance:i,memberState:s,i18n:l}=n.useContext(v),d=n.useCallback(()=>{i(p.ApplianceNames.text)},[i]),c=(s==null?void 0:s.currentApplianceName)===p.ApplianceNames.text,b=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||q).changeToText;return o("span",{className:"fastboard-toolbar-btn-interactive",children:o(S.default,{className:"fastboard-tip",content:to(),theme:t,placement:"right-start",trigger:"click",offset:_,arrow:!1,interactive:!0,children:h(M,{content:ee(l==null?void 0:l.t("text"),x),active:c,onClick:d,children:[o(w,{fallback:o(k.Text,{theme:t,active:c}),src:b?r==null?void 0:r.textIconDisable:r==null?void 0:r.textIcon,alt:"[text]"}),o("span",{className:"fastboard-toolbar-triangle"})]})})})}function to(){return o("div",{className:"fastboard-toolbar-panel text",children:o(be,{})})}const oo=new Set([...Me,...Ne]);function ro(){const{theme:e,memberState:t,i18n:r}=n.useContext(v),a=t==null?void 0:t.currentApplianceName,i=t==null?void 0:t.shapeType,s=a===p.ApplianceNames.shape?i:a,l=oo.has(s),d=de[s]||k.Rectangle;return o("span",{className:"fastboard-toolbar-btn-interactive",children:o(S.default,{className:"fastboard-tip",content:ao(),theme:e,placement:"right-start",trigger:"click",offset:_,arrow:!1,interactive:!0,children:h(M,{content:r==null?void 0:r.t("shape"),active:l,children:[o(d,{theme:e,active:l}),o("span",{className:"fastboard-toolbar-triangle"})]})})})}function ao(){return h("div",{className:"fastboard-toolbar-panel shapes",children:[o(no,{}),o(F,{}),o(ze,{}),o(F,{}),o(be,{})]})}function no(){const{i18n:e}=n.useContext(v);return h("div",{className:"fastboard-toolbar-shapes",children:[Me.map(t=>o(io,{content:e==null?void 0:e.t(t),Appliance:t,Icon:de[t]},t)),Ne.map(t=>o(lo,{content:e==null?void 0:e.t(t),shape:t,Icon:de[t]},t))]})}function io({content:e,Appliance:t,Icon:r}){const{theme:a,writable:i,setAppliance:s,memberState:l}=n.useContext(v),d=l==null?void 0:l.currentApplianceName;return o(M,{content:e,disabled:!i,placement:"top",onClick:()=>s(t),children:o(r,{theme:a,active:d===t})})}function lo({content:e,shape:t,Icon:r}){const{theme:a,writable:i,setAppliance:s,memberState:l}=n.useContext(v),g=(l==null?void 0:l.currentApplianceName)===p.ApplianceNames.shape&&(l==null?void 0:l.shapeType);return o(M,{content:e,disabled:!i,placement:"top",onClick:()=>s(p.ApplianceNames.shape,t),children:o(r,{theme:a,active:g===t})})}function so(){var y,N,O,G,P,W,C;const e=H(),t=n.useRef(null),[r,a]=n.useState(0),[i,s]=n.useState(0),l=(O=(N=(y=e==null?void 0:e.config.toolbar)==null?void 0:y.apps)==null?void 0:N.enable)!=null?O:!0,d=i<$*Pe+48,g=ce(i-48*(d?3:1),Ot,Zt),c=Math.max(i-g-1,0),b=r===0,x=r===c,u=n.useCallback(I=>{a(ce(r+I,0,c))},[c,r]);return n.useEffect(()=>{t.current&&(t.current.scrollTop=r)},[r]),n.useEffect(()=>{var T,Y;const I=(Y=(T=t.current)==null?void 0:T.parentElement)==null?void 0:Y.parentElement;if(I){const{paddingTop:E,paddingBottom:Oe}=getComputedStyle(I),Ee=parseInt(E)+parseInt(Oe)||0,he=new ResizeObserver(()=>{s(I.getBoundingClientRect().height-Ee)});return he.observe(I),()=>he.disconnect()}},[]),h(X,{children:[d&&o(Et,{scrollTo:u,disabled:b}),h("div",{ref:t,className:`${ge}-section`,style:{height:`${g}px`,overflow:d?"hidden":"visible"},children:[o(Ht,{}),o(Gt,{}),o(_t,{}),o(eo,{}),o(ro,{}),o(Vt,{}),o(Jt,{}),l&&o(Qt,{content:(P=(G=e==null?void 0:e.config.toolbar)==null?void 0:G.apps)==null?void 0:P.content,onClick:(C=(W=e==null?void 0:e.config.toolbar)==null?void 0:W.apps)==null?void 0:C.onClick})]}),d&&o(Rt,{scrollTo:u,disabled:x})]})}const v=n.createContext(L({theme:"light"},Bt)),ge="fastboard-toolbar",Te=({theme:e="light",icons:t,room:r,i18n:a})=>{const[i,s]=n.useState(!0),l=Wt(r),d=n.useCallback(()=>s(c=>!c),[]),g=!l.writable;return o(v.Provider,{value:V(L({theme:e,icons:t},l),{i18n:a}),children:h("div",{className:f.default(ge,e),children:[i?o(M,{content:a==null?void 0:a.t("collapse"),onClick:d,children:o(w,{fallback:o(k.Collapse,{theme:e}),src:g?t==null?void 0:t.collapseIconDisable:t==null?void 0:t.collapseIcon})}):o(M,{content:a==null?void 0:a.t("expand"),onClick:d,children:o(w,{fallback:o(k.Expand,{theme:e}),src:g?t==null?void 0:t.expandIconDisable:t==null?void 0:t.expandIcon})}),i&&h(X,{children:[o(F,{}),o(so,{})]})]})})};function co({theme:e="light",active:t}){const r=z[e],a=t?r.activeColor:r.color;return o("svg",{viewBox:"0 0 24 24",children:h("g",{fill:"none",fillRule:"evenodd",stroke:a,strokeLinecap:"round",strokeLinejoin:"round",children:[o("path",{d:"M10 14H6v-4"}),o("path",{d:"m6 14 .788-.9A7.005 7.005 0 0 1 18 14h0"})]})})}function po({theme:e="light",active:t}){const r=z[e],a=t?r.activeColor:r.color;return o("svg",{viewBox:"0 0 24 24",children:h("g",{fill:"none",fillRule:"evenodd",stroke:a,strokeLinecap:"round",strokeLinejoin:"round",children:[o("path",{d:"M14 14h4v-4"}),o("path",{d:"m18 14-.788-.9A7.005 7.005 0 0 0 6 14h0"})]})})}const fe="fastboard-redo-undo";function Le({room:e,theme:t="light",undoIcon:r,undoIconDisable:a,redoIcon:i,redoIconDisable:s,i18n:l}){const[d,g]=n.useState(!1),[c,b]=n.useState(0),[x,u]=n.useState(0);n.useEffect(()=>{if(e){g(e.isWritable),e.isWritable&&(e.disableSerialization=!1);const N=()=>g((e==null?void 0:e.isWritable)||!1);return e.callbacks.on("onEnableWriteNowChanged",N),e.callbacks.on("onCanUndoStepsUpdate",b),e.callbacks.on("onCanRedoStepsUpdate",u),()=>{e.callbacks.off("onEnableWriteNowChanged",N),e.callbacks.off("onCanUndoStepsUpdate",b),e.callbacks.off("onCanRedoStepsUpdate",u)}}},[e]);const y=!d;return h("div",{className:f.default(fe,t),children:[o(S.default,{className:"fastboard-tip",content:l==null?void 0:l.t("undo"),theme:t,disabled:y,placement:"top",duration:300,offset:j,children:o("button",{className:f.default(`${fe}-btn`,"undo",t),disabled:y||c===0,onClick:n.useCallback(()=>e&&e.undo(),[e]),children:o(w,{fallback:o(co,{theme:t}),src:c===0?a:r,alt:"[undo]"})})}),o(S.default,{className:"fastboard-tip",content:l==null?void 0:l.t("redo"),theme:t,disabled:y,placement:"top",duration:300,offset:j,children:o("button",{className:f.default(`${fe}-btn`,"redo",t),disabled:y||x===0,onClick:n.useCallback(()=>e&&e.redo(),[e]),children:o(w,{fallback:o(po,{theme:t}),src:x===0?s:i,alt:"[redo]"})})})]})}function bo({theme:e="light",active:t}){const r=z[e],a=t?r.activeColor:r.color;return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:"none",stroke:a,strokeLinecap:"round",strokeLinejoin:"round",d:"M7 12h10"})})}function go({theme:e="light",active:t}){const r=z[e],a=t?r.activeColor:r.color;return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:"none",stroke:a,strokeLinecap:"round",strokeLinejoin:"round",d:"M12 7v10m-5-5h10"})})}function fo({theme:e="light",active:t}){const r=z[e],a=t?r.activeColor:r.color;return o("svg",{viewBox:"0 0 24 24",children:h("g",{fill:"none",fillRule:"evenodd",transform:"translate(-176 -684)",children:[o("path",{stroke:a,strokeLinejoin:"round",d:"M188 688v4m0 8v4m8-8h-4m-8 0h-4"}),o("circle",{cx:"188",cy:"696",r:"6",stroke:a}),o("circle",{cx:"188",cy:"696",r:"1",fill:a})]})})}const U="fastboard-zoom-control",Z=[.10737418240000011,.13421772800000012,.16777216000000014,.20971520000000016,.26214400000000015,.3276800000000002,.4096000000000002,.5120000000000001,.6400000000000001,.8,1,1.26,1.5876000000000001,2.000376,2.5204737600000002,3.1757969376000004,4.001504141376,5.041895218133761,6.352787974848539,8.00451284830916,10];function ne(e,t){const{length:r}=Z,a=r-1;if(e<Z[0])return Z[0];if(e>Z[a])return Z[a];for(let i=0;i<r;++i){const s=Z[i],l=i===0?-1/0:(Z[i-1]+s)/2,d=i===a?1/0:(Z[i+1]+s)/2;if(l<=e&&e<=d)return Z[ce(i+t,0,a)]}return 1}function je({room:e,manager:t,theme:r="light",resetIcon:a,resetIconDisable:i,minusIcon:s,minusIconDisable:l,plusIcon:d,plusIconDisable:g,i18n:c}){const[b,x]=n.useState(!1),[u,y]=n.useState(1),N=n.useCallback(()=>{if(e==null?void 0:e.isWritable)if(t)t.mainView.moveCamera({scale:1,centerX:0,centerY:0});else{const{scenes:W,index:C}=e.state.sceneState;W[C].ppt?e.scalePptToFit():e.moveCamera({scale:1,centerX:0,centerY:0})}},[e,t]),O=n.useCallback(()=>{(e==null?void 0:e.isWritable)&&(t?t.mainView.moveCamera({scale:ne(u,1),centerX:0,centerY:0}):e.moveCamera({scale:ne(u,1),centerX:0,centerY:0}))},[e,t,u]),G=n.useCallback(()=>{(e==null?void 0:e.isWritable)&&(t?t.mainView.moveCamera({scale:ne(u,-1),centerX:0,centerY:0}):e.moveCamera({scale:ne(u,-1),centerX:0,centerY:0}))},[e,t,u]);n.useEffect(()=>{e&&(x(e.isWritable),y(e.state.cameraState.scale)),t&&y(t.mainView.camera.scale);const W=T=>{T.cameraState&&y(T.cameraState.scale)},C=({scale:T})=>y(T),I=()=>x((e==null?void 0:e.isWritable)||!1);return e&&(e.callbacks.on("onEnableWriteNowChanged",I),t?t.mainView.callbacks.on("onCameraUpdated",C):e.callbacks.on("onRoomStateChanged",W)),()=>{e&&(e.callbacks.off("onEnableWriteNowChanged",I),e.callbacks.off("onRoomStateChanged",W),t==null||t.mainView.callbacks.off("onCameraUpdated",C))}},[e,t]);const P=!b;return h("div",{className:f.default(U,r),children:[o(S.default,{className:"fastboard-tip",content:c==null?void 0:c.t("zoomOut"),theme:r,disabled:P,placement:"top",duration:300,offset:j,children:o("button",{className:f.default(`${U}-btn`,"minus",r),disabled:P,onClick:G,children:o(w,{fallback:o(bo,{theme:r}),src:P?l:s,alt:"[minus]"})})}),o("span",{className:f.default(`${U}-scale`,r),children:Math.ceil(u*100)}),o("span",{className:f.default(`${U}-percent`,r),children:"%"}),o(S.default,{className:"fastboard-tip",content:c==null?void 0:c.t("zoomIn"),theme:r,disabled:P,placement:"top",duration:300,offset:j,children:o("button",{className:f.default(`${U}-btn`,"plus",r),disabled:P,onClick:O,children:o(w,{fallback:o(go,{theme:r}),src:P?g:d,alt:"[plus]"})})}),o(S.default,{className:"fastboard-tip",content:c==null?void 0:c.t("reset"),theme:r,disabled:P,placement:"top",duration:300,offset:j,children:o("button",{className:f.default(`${U}-btn`,"reset",r),disabled:P,onClick:N,children:o(w,{fallback:o(fo,{theme:r}),src:P?i:a,alt:"[reset]"})})})]})}function uo({theme:e="light",active:t}){const r=z[e],a=t?r.activeColor:r.color;return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:a,d:"M12 7.5a.5.5 0 0 1 .09.992L12 8.5H8a1.5 1.5 0 0 0-1.493 1.356L6.5 10v6a1.5 1.5 0 0 0 1.356 1.493L8 17.5h6a1.5 1.5 0 0 0 1.493-1.356L15.5 16v-4a.5.5 0 0 1 .992-.09l.008.09v4a2.5 2.5 0 0 1-2.336 2.495L14 18.5H8a2.5 2.5 0 0 1-2.495-2.336L5.5 16v-6a2.5 2.5 0 0 1 2.336-2.495L8 7.5h4Zm4-2a.5.5 0 0 1 .492.41L16.5 6v1.5H18a.5.5 0 0 1 .09.992L18 8.5h-1.5V10a.5.5 0 0 1-.992.09L15.5 10V8.5H14a.5.5 0 0 1-.09-.992L14 7.5h1.5V6a.5.5 0 0 1 .5-.5Z"})})}function ho({theme:e="light",active:t}){const r=z[e],a=t?r.activeColor:r.color;return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:"none",stroke:a,strokeLinecap:"round",strokeLinejoin:"round",d:"m14 16-2-2-2-2 2-2 2-2"})})}function xo({theme:e="light",active:t}){const r=z[e],a=t?r.activeColor:r.color;return o("svg",{viewBox:"0 0 24 24",children:o("path",{fill:"none",stroke:a,strokeLinecap:"round",strokeLinejoin:"round",d:"m10 16 2-2 2-2-2-2-2-2"})})}const R="fastboard-page-control";function De({room:e,manager:t,theme:r="light",addIcon:a,addIconDisable:i,prevIcon:s,prevIconDisable:l,nextIcon:d,nextIconDisable:g,i18n:c}){const[b,x]=n.useState(!1),[u,y]=n.useState(0),[N,O]=n.useState(0),G=n.useCallback(async()=>{if(t&&e){await t.switchMainViewToWriter();const I=e.state.sceneState.contextPath;e.putScenes(I,[{}],N),await t.setMainViewSceneIndex(u)}else if(!t&&e){const I=e.state.sceneState.contextPath;e.putScenes(I,[{}],N),e.setSceneIndex(u)}},[e,t,N,u]),P=n.useCallback(()=>{(e==null?void 0:e.isWritable)&&(t?t.setMainViewSceneIndex(u-1):e.pptPreviousStep())},[e,t,u]),W=n.useCallback(()=>{(e==null?void 0:e.isWritable)&&(t?t.setMainViewSceneIndex(u+1):e.pptNextStep())},[e,t,u]);n.useEffect(()=>{e&&(x(e.isWritable),y(e.state.sceneState.index),O(e.state.sceneState.scenes.length));const I=E=>{E.sceneState&&(y(E.sceneState.index),O(E.sceneState.scenes.length))},T=E=>{e&&E===0&&(y(e.state.sceneState.index),O(e.state.sceneState.scenes.length))},Y=()=>x((e==null?void 0:e.isWritable)||!1);return e&&(e.callbacks.on("onEnableWriteNowChanged",Y),e.callbacks.on("onRoomStateChanged",I),t==null||t.callbacks.on("mainViewModeChange",T)),()=>{e&&(e.callbacks.off("onEnableWriteNowChanged",Y),e.callbacks.off("onRoomStateChanged",I),t==null||t.callbacks.off("mainViewModeChange",T))}},[e,t]);const C=!b;return h("div",{className:f.default(R,r),children:[o(S.default,{className:"fastboard-tip",content:c==null?void 0:c.t("prevPage"),theme:r,disabled:C,placement:"top",duration:300,offset:j,children:o("button",{className:f.default(`${R}-btn`,"prev",r),disabled:C||u===0,onClick:P,children:o(w,{fallback:o(ho,{theme:r}),src:C?l:s,alt:"[prev]"})})}),o("span",{className:f.default(`${R}-page`,r),children:N===0?"\u2026":u+1}),o("span",{className:f.default(`${R}-slash`,r),children:"/"}),o("span",{className:f.default(`${R}-page-count`,r),children:N}),o(S.default,{className:"fastboard-tip",content:c==null?void 0:c.t("nextPage"),theme:r,disabled:C,placement:"top",duration:300,offset:j,children:o("button",{className:f.default(`${R}-btn`,"next",r),disabled:C||u===N-1,onClick:W,children:o(w,{fallback:o(xo,{theme:r}),src:C?g:d,alt:"[next]"})})}),o(S.default,{className:"fastboard-tip",content:c==null?void 0:c.t("addPage"),theme:r,disabled:C,placement:"top",duration:300,offset:j,children:o("button",{className:f.default(`${R}-btn`,"add",r),disabled:C,onClick:G,children:o(w,{fallback:o(uo,{theme:r}),src:C?i:a,alt:"[add]"})})})]})}function mo({instance:e}){const[t]=n.useState(()=>new Xe),r=n.useCallback(a=>t.schedule(a?()=>e.mount(a):()=>e.unmount()),[e,t]);return o(ie.Context.Provider,{value:e,children:h("div",{className:"fastboard-root",children:[!e.room&&o("div",{className:"fastboard-loading",children:"Loading\u2026"}),o("div",{className:"fastboard-view",ref:r}),o("div",{className:"fastboard-left",children:o(Te,{room:e.room,manager:e.manager,i18n:e.i18n})}),h("div",{className:"fastboard-bottom-left",children:[o(Le,{room:e.room,manager:e.manager,i18n:e.i18n}),o(je,{room:e.room,manager:e.manager,i18n:e.i18n})]}),o("div",{className:"fastboard-bottom-right",children:o(De,{room:e.room,manager:e.manager,i18n:e.i18n})})]})})}class ie{constructor(t){A(this,"config");A(this,"sdk",null);A(this,"room",null);A(this,"manager",null);A(this,"i18n",null);A(this,"ready",!1);A(this,"resolveReady");A(this,"readyPromise");A(this,"_target",null);this.config=t,this.refreshReadyPromise(),this.initialize()}refreshReadyPromise(){this.readyPromise=new Promise(t=>{this.resolveReady=()=>{this.resolveReady=Q,this.ready=!0,t()}})}async initialize(){const t=await at(this.config.sdkConfig,this.config.joinRoom,this.config.managerConfig||{},this.config.language||"en-US");this.accept(t),this.resolveReady()}get target(){return this._target}set target(t){this._target&&t&&se.default.unmountComponentAtNode(this._target),this._target=t,this.forceUpdate()}async forceUpdate(){await this.readyPromise,this.target&&se.default.render(o(mo,{instance:this}),this.target)}accept({sdk:t,room:r,manager:a,i18n:i}){this.sdk=t,this.room=r,this.manager=a,this.i18n=i,this.forceUpdate()}async dispose(){this.room&&await this.unmount(),this.target&&(se.default.unmountComponentAtNode(this.target),this.sdk=this.room=this.manager=this.target=null)}async mount(t){await this.readyPromise,this.manager&&this.manager.bindContainer(t)}async unmount(){if(this.manager&&(this.manager.destroy(),this.manager=null),this.room){try{await this.room.disconnect()}catch{}this.room=null}this.refreshReadyPromise()}insertDocs(t){if(!this.manager)throw new Error("[WhiteboardApp] cannot insert doc before mounted");switch(t.fileType){case"pdf":case"ppt":return this.manager.addApp({kind:"DocsViewer",options:{scenePath:t.scenePath,title:t.title,scenes:t.scenes}});case"pptx":return this.manager.addApp({kind:"Slide",options:{scenePath:t.scenePath,title:t.title},attributes:{taskId:t.taskId,url:t.url}})}}insertCodeEditor(){if(!this.manager)throw new Error("[WhiteboardApp] cannot insert app before mounted");return this.manager.addApp({kind:"Monaco",options:{title:"Code Editor"}})}insertGeoGebra(){if(!this.manager)throw new Error("[WhiteboardApp] cannot insert app before mounted");return this.manager.addApp({kind:"GeoGebra",options:{title:"GeoGebra"}})}insertCountdown(){if(!this.manager)throw new Error("[WhiteboardApp] cannot insert app before mounted");return this.manager.addApp({kind:"Countdown",options:{title:"Countdown"}})}async changeLanguage(t){var r;try{await((r=this.i18n)==null?void 0:r.changeLanguage(t))}finally{await this.forceUpdate()}}}A(ie,"Context",n.createContext(null));function H(){return n.useContext(ie.Context)}var wo=`.netless-window-manager-playground{width:100%;height:100%;position:relative;z-index:1;overflow:hidden;user-select:none}.netless-window-manager-sizer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;overflow:hidden;display:flex}.netless-window-manager-sizer-horizontal{flex-direction:column}.netless-window-manager-sizer:before,.netless-window-manager-sizer:after{flex:1;content:"";display:block}.netless-window-manager-chess-sizer:before,.netless-window-manager-chess-sizer:after{background-image:linear-gradient(45deg,#b0b0b0 25%,transparent 25%),linear-gradient(-45deg,#b0b0b0 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#b0b0b0 75%),linear-gradient(-45deg,transparent 75%,#b0b0b0 75%);background-color:#fff;background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0px}.netless-window-manager-wrapper{position:relative;z-index:1;width:100%;height:100%;overflow:hidden}.netless-window-manager-main-view{width:100%;height:100%}.netless-window-manager-cursor-pencil-image,.netless-window-manager-cursor-eraser-image{width:26px;height:26px}.netless-window-manager-cursor-selector-image{width:24px;height:24px}.netless-window-manager-cursor-selector-avatar{border-radius:50%;border-style:solid;border-width:2px;border-color:#fff;margin-bottom:2px}.netless-window-manager-cursor-selector-avatar img{width:12px}.netless-window-manager-cursor-inner{border-radius:4px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:4px;padding-right:4px;font-size:12px}.netless-window-manager-cursor-inner-mellow{height:32px;border-radius:16px;display:flex;align-items:center;justify-content:center;flex-direction:row;padding-left:16px;padding-right:16px}.netless-window-manager-cursor-tag-name{font-size:12px;margin-left:4px;padding:2px 8px;border-radius:4px}.netless-window-manager-cursor-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:26px;height:26px;z-index:2147483647;left:0;top:0;will-change:transform;transition:transform .05s;transform-origin:0 0;user-select:none}.netless-window-manager-cursor-pencil-offset{margin-left:-20px}.netless-window-manager-cursor-selector-offset{margin-left:-22px;margin-top:56px}.netless-window-manager-cursor-text-offset{margin-left:-30px;margin-top:18px}.netless-window-manager-cursor-shape-offset{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;width:180px;height:64px;margin-left:-30px;margin-top:12px}.netless-window-manager-cursor-name{width:100%;height:48px;display:flex;align-items:center;justify-content:center;position:absolute;top:-40px}.cursor-image-wrapper{display:flex;justify-content:center}.tele-fancy-scrollbar{overscroll-behavior:contain;overflow:auto;overflow-y:scroll;overflow-y:overlay;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:auto}.tele-fancy-scrollbar::-webkit-scrollbar{height:8px;width:8px}.tele-fancy-scrollbar::-webkit-scrollbar-track{background-color:transparent}.tele-fancy-scrollbar::-webkit-scrollbar-thumb{background-color:#444e601a;background-color:transparent;border-radius:4px;transition:background-color .4s}.tele-fancy-scrollbar:hover::-webkit-scrollbar-thumb{background-color:#444e601a}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#444e6033}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:active{background-color:#444e6033}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:vertical{min-height:50px}.tele-fancy-scrollbar::-webkit-scrollbar-thumb:horizontal{min-width:50px}.telebox-box{position:absolute;top:0;left:0;z-index:100;will-change:transform;transition:width .4s cubic-bezier(.4,.9,.71,1.02),height .4s cubic-bezier(.55,.82,.63,.95),opacity .6s cubic-bezier(.7,0,.84,0),transform .4s ease}.telebox-box-main{position:relative;width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#f9f9fc;box-shadow:0 4px 10px #2f419226;border-radius:6px;border:1px solid #e3e3ec}.telebox-titlebar-wrap{flex-shrink:0;position:relative;z-index:1}.telebox-content-wrap{flex:1;width:100%;overflow:hidden;display:flex;justify-content:center;align-items:center}.telebox-content{width:100%;height:100%;position:relative}.telebox-footer-wrap{flex-shrink:0;display:flex;flex-direction:column}.telebox-footer-wrap:before{content:"";display:block;flex:1}.telebox-resize-handle{position:absolute;z-index:2147483647}.telebox-n{width:100%;height:5px;left:0;top:-5px;cursor:n-resize}.telebox-s{width:100%;height:5px;left:0;bottom:-5px;cursor:s-resize}.telebox-w{width:5px;height:100%;left:-5px;top:0;cursor:w-resize}.telebox-e{width:5px;height:100%;right:-5px;top:0;cursor:e-resize}.telebox-nw{width:15px;height:15px;top:-5px;left:-5px;cursor:nw-resize}.telebox-ne{width:15px;height:15px;top:-5px;right:-5px;cursor:ne-resize}.telebox-se{width:15px;height:15px;bottom:-5px;right:-5px;cursor:se-resize}.telebox-sw{width:15px;height:15px;bottom:-5px;left:-5px;cursor:sw-resize}.telebox-track-mask{position:fixed;top:0;left:0;z-index:2147483647;width:100%;height:100%;background:rgba(0,0,0,.0001);cursor:move}.telebox-cursor-n{cursor:n-resize}.telebox-cursor-s{cursor:s-resize}.telebox-cursor-w{cursor:w-resize}.telebox-cursor-e{cursor:e-resize}.telebox-cursor-nw{cursor:nw-resize}.telebox-cursor-ne{cursor:ne-resize}.telebox-cursor-se{cursor:se-resize}.telebox-cursor-sw{cursor:sw-resize}.telebox-maximized .telebox-resize-handles,.telebox-no-resize .telebox-resize-handles{display:none}.telebox-maximized{box-shadow:none;transition:none}.telebox-minimized{will-change:transform;transition:width 50ms cubic-bezier(.4,.9,.71,1.02),height 50ms cubic-bezier(.55,.82,.63,.95),opacity .6s cubic-bezier(.7,0,.84,0),transform .6s ease;opacity:0;pointer-events:none;user-select:none}.telebox-transforming{will-change:transform;transition:opacity .6s cubic-bezier(.7,0,.84,0)}.telebox-readonly .telebox-resize-handle{cursor:initial!important;pointer-events:none!important}.telebox-color-scheme-dark .telebox-box-main{color:#e9e9e9;background:#212126;border-color:#43434d}.telebox-titlebar{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;background:#fff;user-select:none;border-bottom:1px solid #eeeef7}.telebox-title{overflow:hidden;margin:0 24px 0 0;padding:0;font-size:14px;font-weight:400;font-family:PingFangSC-Regular,PingFang SC;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;color:#191919}.telebox-titlebar-btns{white-space:nowrap;word-break:keep-all;margin-left:auto;font-size:0}.telebox-titlebar-btn{width:22px;height:22px;padding:0;outline:0;border:none;background:0 0;cursor:pointer}.telebox-titlebar-btn~.telebox-titlebar-btn{margin-left:10px}.telebox-titlebar-btn-icon{width:22px;height:22px}.telebox-readonly .telebox-titlebar-btn{cursor:not-allowed}.telebox-titlebar-icon-minimize{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPHBhdGggZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBkPSJNOSAxM2gxMHYxLjZIOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=)}.telebox-titlebar-icon-maximize{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjh2MjhIMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxtYXNrIGlkPSJiIiBmaWxsPSIjZmZmIj4KICAgICAgICAgICAgPHVzZSB4bGluazpocmVmPSIjYSIgLz4KICAgICAgICA8L21hc2s+CiAgICAgICAgPGcgZmlsbD0iI0E3QTdDQSIgZmlsbC1ydWxlPSJub256ZXJvIiBtYXNrPSJ1cmwoI2IpIj4KICAgICAgICAgICAgPHBhdGgKICAgICAgICAgICAgICAgIGQ9Ik0yMC40ODEgMTcuMWgxLjJ2NC41ODFIMTcuMXYtMS4yaDMuMzgxVjE3LjF6bS0xNC4xOTA1LS4wMDloMS4ydjMuMzgxaDMuMzgwOXYxLjJoLTQuNTgxdi00LjU4MXpNMTcuMSA2LjE5MDVoNC41ODF2NC41ODA5aC0xLjJ2LTMuMzgxSDE3LjF2LTEuMnptLTEwLjcwMDguMTA4N2g0Ljc5ODV2MS4ySDcuNTk5MnYzLjU5ODVoLTEuMlY2LjI5OTJ6IiAvPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+Cg==)}.telebox-titlebar-icon-maximize.is-active{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgMjggMjgiPgogICAgPGRlZnM+CiAgICAgICAgPHBhdGggaWQ9ImEiIGQ9Ik0wIDBoMjZ2MjZIMHoiIC8+CiAgICAgICAgPHBhdGggaWQ9ImMiIGQ9Ik0yNi44NjkgMEwyOCAxLjEzMVYyNi44N0wyNi44NjkgMjhIMS4xM0wwIDI2Ljg3VjEuMTMxTDEuMTMgMHoiIC8+CiAgICA8L2RlZnM+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEgMSkiPgogICAgICAgICAgICA8bWFzayBpZD0iYiIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNhIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tNC42NDI5LTQuNjQyOWgzNS4yODU4djM1LjI4NThILTQuNjQyOXoiIG1hc2s9InVybCgjYikiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxnPgogICAgICAgICAgICA8bWFzayBpZD0iZCIgZmlsbD0iI2ZmZiI+CiAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNjIiAvPgogICAgICAgICAgICA8L21hc2s+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0tMTcuNTE2OCAxNEwxNC0xNy41MTY4IDQ1LjUxNjggMTQgMTQgNDUuNTE2OHoiIG1hc2s9InVybCgjZCkiIC8+CiAgICAgICAgPC9nPgogICAgICAgIDxwYXRoIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjIiCiAgICAgICAgICAgIGQ9Ik0xMC4wODg2IDIxLjQ4NjV2LTMuNjk2Nkg2LjM5Mk0yMS4zODU1IDEwLjE4OTVoLTMuNjk2NlY2LjQ5M00yMS40MDIgMTcuNzk4M2gtMy42OTY2djMuNjk2Nk0xMC4yNTAzIDYuMTQ5OHYzLjg5ODVINi4zNTE3IiAvPgogICAgPC9nPgo8L3N2Zz4K)}.telebox-titlebar-icon-close{background:center/cover no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyOCAyOCI+CiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iI0E3QTdDQSIgc3Ryb2tlLXdpZHRoPSIxLjQiPgogICAgICAgIDxwYXRoIGQ9Ik04LjM1MyAyMC4zMzIxTDIwLjMzMiA4LjM1M00yMC4zMzIyIDIwLjMzMjFMOC4zNTMgOC4zNTMiIC8+CiAgICA8L2c+Cjwvc3ZnPgo=)}.telebox-color-scheme-dark .telebox-titlebar{color:#e9e9e9;background:#43434d;border-bottom:none}.telebox-collector{visibility:hidden;display:block;position:absolute;z-index:200;width:40px;height:40px;margin:0;padding:0;border:none;outline:0;font-size:0;border-radius:50%;background:#fff;box-shadow:0 2px 6px #2f419226;cursor:pointer;user-select:none;pointer-events:none;background-repeat:no-repeat;background-size:18px 16px;background-position:center}.telebox-collector-visible{visibility:visible;pointer-events:initial}.telebox-collector-readonly{cursor:not-allowed}.telebox-color-scheme-dark.telebox-collector{background-color:#43434d}.telebox-max-titlebar{display:none;position:absolute;top:0;left:0;z-index:50000;user-select:none}.telebox-max-titlebar-maximized{display:flex}.telebox-titles{flex:1;height:100%;margin:0 16px 0 -16px;overflow-y:hidden;overflow-x:scroll;overflow-x:overlay;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:auto}.telebox-titles::-webkit-scrollbar{height:8px;width:8px}.telebox-titles::-webkit-scrollbar-track{background-color:transparent}.telebox-titles::-webkit-scrollbar-thumb{background-color:#eeeef7cc;background-color:transparent;border-radius:4px;transition:background-color .4s}.telebox-titles:hover::-webkit-scrollbar-thumb{background-color:#eeeef7cc}.telebox-titles::-webkit-scrollbar-thumb:hover{background-color:#eeeef7}.telebox-titles::-webkit-scrollbar-thumb:active{background-color:#eeeef7}.telebox-titles::-webkit-scrollbar-thumb:vertical{min-height:50px}.telebox-titles::-webkit-scrollbar-thumb:horizontal{min-width:50px}.telebox-titles-content{height:100%;display:flex;flex-wrap:nowrap;align-items:center;padding:0}.telebox-titles-tab{overflow:hidden;max-width:182px;min-width:50px;padding:0 26px 0 16px;outline:0;font-size:13px;font-family:PingFangSC-Regular,PingFang SC;font-weight:400;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;border:none;border-right:1px solid #e5e5f0;color:#7b88a0;background:0 0;cursor:pointer}.telebox-titles-tab~.telebox-titles-tab{margin-left:2px}.telebox-titles-tab-focus{color:#357bf6}.telebox-readonly .telebox-titles-tab{cursor:not-allowed}.telebox-color-scheme-dark{color-scheme:dark}.telebox-color-scheme-dark.telebox-titlebar{color:#e9e9e9;background:#43434d;border-bottom:none}.telebox-color-scheme-dark .telebox-titles-tab{border-right-color:#7b88a0}.telebox-color-scheme-dark .telebox-title{color:#e9e9e9}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box[data-theme~=light]{color:#26323d;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;background-color:#fff}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.rc-slider{position:relative;height:14px;padding:5px 0;width:100%;border-radius:6px;touch-action:none;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-rail{position:absolute;width:100%;background-color:#e9e9e9;height:4px;border-radius:6px}.rc-slider-track{position:absolute;left:0;height:4px;border-radius:6px;background-color:#abe2fb}.rc-slider-handle{position:absolute;width:14px;height:14px;cursor:pointer;cursor:-webkit-grab;margin-top:-5px;cursor:grab;border-radius:50%;border:solid 2px #96dbfa;background-color:#fff;touch-action:pan-x}.rc-slider-handle-dragging.rc-slider-handle-dragging.rc-slider-handle-dragging{border-color:#57c5f7;box-shadow:0 0 0 5px #96dbfa}.rc-slider-handle:focus{outline:none}.rc-slider-handle-click-focused:focus{border-color:#96dbfa;box-shadow:unset}.rc-slider-handle:hover{border-color:#57c5f7}.rc-slider-handle:active{border-color:#57c5f7;box-shadow:0 0 5px #57c5f7;cursor:-webkit-grabbing;cursor:grabbing}.rc-slider-mark{position:absolute;top:18px;left:0;width:100%;font-size:12px}.rc-slider-mark-text{position:absolute;display:inline-block;vertical-align:middle;text-align:center;cursor:pointer;color:#999}.rc-slider-mark-text-active{color:#666}.rc-slider-step{position:absolute;width:100%;height:4px;background:transparent}.rc-slider-dot{position:absolute;bottom:-2px;margin-left:-4px;width:8px;height:8px;border:2px solid #e9e9e9;background-color:#fff;cursor:pointer;border-radius:50%;vertical-align:middle}.rc-slider-dot-active{border-color:#96dbfa}.rc-slider-dot-reverse{margin-right:-4px}.rc-slider-disabled{background-color:#e9e9e9}.rc-slider-disabled .rc-slider-track{background-color:#ccc}.rc-slider-disabled .rc-slider-handle,.rc-slider-disabled .rc-slider-dot{border-color:#ccc;box-shadow:none;background-color:#fff;cursor:not-allowed}.rc-slider-disabled .rc-slider-mark-text,.rc-slider-disabled .rc-slider-dot{cursor:not-allowed!important}.rc-slider-vertical{width:14px;height:100%;padding:0 5px}.rc-slider-vertical .rc-slider-rail{height:100%;width:4px}.rc-slider-vertical .rc-slider-track{left:5px;bottom:0;width:4px}.rc-slider-vertical .rc-slider-handle{margin-left:-5px;touch-action:pan-y}.rc-slider-vertical .rc-slider-mark{top:0;left:18px;height:100%}.rc-slider-vertical .rc-slider-step{height:100%;width:4px}.rc-slider-vertical .rc-slider-dot{left:2px;margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:first-child{margin-bottom:-4px}.rc-slider-vertical .rc-slider-dot:last-child{margin-bottom:-4px}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear,.rc-slider-tooltip-zoom-down-leave{animation-duration:.3s;animation-fill-mode:both;display:block!important;animation-play-state:paused}.rc-slider-tooltip-zoom-down-enter.rc-slider-tooltip-zoom-down-enter-active,.rc-slider-tooltip-zoom-down-appear.rc-slider-tooltip-zoom-down-appear-active{animation-name:rcSliderTooltipZoomDownIn;animation-play-state:running}.rc-slider-tooltip-zoom-down-leave.rc-slider-tooltip-zoom-down-leave-active{animation-name:rcSliderTooltipZoomDownOut;animation-play-state:running}.rc-slider-tooltip-zoom-down-enter,.rc-slider-tooltip-zoom-down-appear{transform:scale(0);animation-timing-function:cubic-bezier(.23,1,.32,1)}.rc-slider-tooltip-zoom-down-leave{animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@keyframes rcSliderTooltipZoomDownIn{0%{opacity:0;transform-origin:50% 100%;transform:scale(0)}to{transform-origin:50% 100%;transform:scale(1)}}@keyframes rcSliderTooltipZoomDownOut{0%{transform-origin:50% 100%;transform:scale(1)}to{opacity:0;transform-origin:50% 100%;transform:scale(0)}}.rc-slider-tooltip{position:absolute;left:-9999px;top:-9999px;visibility:visible;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip *{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.rc-slider-tooltip-hidden{display:none}.rc-slider-tooltip-placement-top{padding:4px 0 8px}.rc-slider-tooltip-inner{padding:6px 2px;min-width:24px;height:24px;font-size:12px;line-height:1;color:#fff;text-align:center;text-decoration:none;background-color:#6c6c6c;border-radius:6px;box-shadow:0 0 4px #d9d9d9}.rc-slider-tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.rc-slider-tooltip-placement-top .rc-slider-tooltip-arrow{bottom:4px;left:50%;margin-left:-4px;border-width:4px 4px 0;border-top-color:#6c6c6c}.fastboard-root{position:relative;width:100%;height:100%;overflow:hidden}.fastboard-loading{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:.6}.fastboard-view{position:absolute;top:0;left:0;width:100%;height:100%}.fastboard-left{position:absolute;top:0;left:0;height:calc(100% - 48px);padding:16px;z-index:201;display:flex;align-items:center}.fastboard-bottom-left,.fastboard-bottom-right{display:flex;gap:10px;position:absolute;bottom:8px;left:8px;padding:8px;z-index:200}.fastboard-bottom-right{left:initial;right:8px}.fastboard-redo-undo{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-redo-undo.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-redo-undo.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-redo-undo-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-redo-undo-btn svg,.fastboard-redo-undo-btn img{width:1em;height:1em}.fastboard-redo-undo-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-redo-undo-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-redo-undo-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-page-control{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-page-control.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-page-control.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-page-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-page-control-btn svg,.fastboard-page-control-btn img{width:1em;height:1em}.fastboard-page-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-page-control-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-page-control-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-page-control-cut-line{height:24px;width:.5px}.fastboard-page-control-cut-line.light{background-color:#e7e7e7}.fastboard-page-control-cut-line.dark{background-color:#ffffff26}.fastboard-page-control-slash{opacity:.6}.fastboard-page-control-page,.fastboard-page-control-slash,.fastboard-page-control-page-count{font-size:12px;font-variant-numeric:tabular-nums}.fastboard-zoom-control{position:relative;display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-zoom-control.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-zoom-control.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-zoom-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1}.fastboard-zoom-control-btn svg,.fastboard-zoom-control-btn img{width:1em;height:1em}.fastboard-zoom-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-zoom-control-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-zoom-control-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-zoom-control-cut-line{height:24px;width:.5px}.fastboard-zoom-control-cut-line.light{background-color:#e7e7e7}.fastboard-zoom-control-cut-line.dark{background-color:#ffffff26}.fastboard-zoom-control-percent{opacity:.6}.fastboard-zoom-control-scale,.fastboard-zoom-control-percent{font-size:12px;font-variant-numeric:tabular-nums}.fastboard-toolbar{display:flex;align-items:center;padding:4px;border-radius:4px;flex-direction:column;gap:4px;position:absolute;z-index:100;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-toolbar .rc-slider{padding:6px 0}.fastboard-toolbar .rc-slider-rail,.fastboard-toolbar .rc-slider-track{height:2px}.fastboard-toolbar .tippy-content{padding:8px}.fastboard-toolbar .tippy-box{border:1px solid rgba(0,0,0,.15);background-color:#333333f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-toolbar .tippy-box[data-theme~=light]{background-color:#fffffff2;box-shadow:0 5px 10px #00000040}.fastboard-toolbar.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-toolbar.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-toolbar-tooltip{display:inline-flex;align-items:center;gap:4px}.fastboard-toolbar-hotkey{margin-right:-4px;width:24px;height:24px;border-radius:4px;background-color:#ffffff1a;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:4px;width:32px;height:32px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1;position:relative}.fastboard-toolbar-btn-interactive{display:inline-block;width:32px;height:32px}.fastboard-toolbar-btn svg,.fastboard-toolbar-btn img{width:1em;height:1em}.fastboard-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-toolbar-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-toolbar-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-toolbar-triangle{width:0px;height:0px;border-bottom:4px solid;border-left:4px solid transparent;position:absolute;bottom:0;right:0}.fastboard-toolbar-cut-line{display:inline-block;height:.5px;width:100%}.fastboard-toolbar-cut-line.light{background-color:#e7e7e7}.fastboard-toolbar-cut-line.dark{background-color:#ffffff26}.fastboard-toolbar-section{display:inline-flex;flex-flow:column nowrap;gap:4px;scroll-behavior:smooth}.fastboard-toolbar-panel{width:120px;padding:0;display:flex;flex-flow:column nowrap;align-items:center;gap:8px}.fastboard-toolbar-panel.apps{width:224px}.fastboard-toolbar-color-box,.fastboard-toolbar-shapes{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;align-items:center;justify-items:center}.fastboard-toolbar-color-box .fastboard-toolbar-btn,.fastboard-toolbar-shapes .fastboard-toolbar-btn{padding:0;width:24px;height:24px}.fastboard-toolbar-apps{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;align-items:center;justify-items:center}.fastboard-toolbar-apps .fastboard-toolbar-btn{width:40px;height:40px;font-size:40px}.fastboard-toolbar-app-icon{padding-top:4px;display:inline-flex;flex-flow:column nowrap;align-items:center;gap:4px}.fastboard-toolbar-app-icon .fastboard-toolbar-btn{padding:0}.fastboard-toolbar-app-icon-text{font-size:12px;color:#5d5d5d;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fastboard-toolbar-color-item{width:24px;height:24px;border-radius:4px;cursor:pointer}.fastboard-toolbar-color-item *.light:hover{background-color:#f5f5f5}.fastboard-toolbar-color-item *.dark:hover{background-color:#333}.fastboard-toolbar-color-border{width:24px;height:24px;border:1px solid transparent;border-radius:4px;display:inline-flex;align-items:center;justify-content:center}.fastboard-toolbar-color-border.active.light,.fastboard-toolbar-color-border.active.dark{border:1px solid rgba(51,129,255,.8)}.fastboard-toolbar-color-btn{margin:0;border:1px solid rgba(0,0,0,.24);padding:0;appearance:none;width:16px;height:16px;border-radius:4px;cursor:pointer}.fastboard-toolbar-color-btn:focus-visible{outline-offset:2px}.fastboard-player-control{width:100%;display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:4px;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-player-control.auto-hide{opacity:0;transition:opacity .2s}.fastboard-player-control.auto-hide:hover{opacity:1}.fastboard-player-control .rc-slider-disabled{background:transparent;opacity:.5}.fastboard-player-control .rc-slider-rail,.fastboard-player-control .rc-slider-track{height:2px}.fastboard-player-control .tippy-content{padding:8px}.fastboard-player-control .tippy-box{border:1px solid rgba(0,0,0,.15);background-color:#333333f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.fastboard-player-control .tippy-box[data-theme~=light]{background-color:#fffffff2;box-shadow:0 5px 10px #00000040}.fastboard-player-control.light{color:#333;background-color:#ffffffd9;border:1px solid rgba(0,0,0,.15)}.fastboard-player-control.dark{color:#ddd;background-color:#333333d9;border:1px solid rgba(0,0,0,.45)}.fastboard-player-control-btn{appearance:none;cursor:pointer;margin:0;border:0;padding:0;min-width:24px;height:24px;background-color:transparent;border-radius:4px;font-size:24px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.fastboard-player-control-btn svg,.fastboard-player-control-btn img{width:1em;height:1em}.fastboard-player-control-btn:disabled{opacity:.5;cursor:not-allowed}.fastboard-player-control-btn.light:not(:disabled):hover{background-color:#3381ff1a}.fastboard-player-control-btn.dark:not(:disabled):hover{background-color:#3381ff40}.fastboard-player-control-btn.loading{animation:fastboard-player-control-rotate .5s linear infinite}@keyframes fastboard-player-control-rotate{to{transform:rotate(360deg)}}.fastboard-player-control-panel{padding:0;display:flex;flex-flow:column nowrap;align-items:stretch;gap:4px}.fastboard-player-control-panel .fastboard-player-control-btn{width:initial;height:initial;user-select:none;font-size:12px;padding:4px;justify-content:flex-end}.fastboard-player-control-panel .fastboard-player-control-btn.active{color:#3381ff}.fastboard-player-control-slider{width:100%;padding:0 7px}.fastboard-player-control-slider.loading{cursor:not-allowed}.fastboard-player-control-slash{opacity:.6}.fastboard-player-control-current,.fastboard-player-control-slash,.fastboard-player-control-total,.fastboard-player-control-speed-text{font-size:12px;font-variant-numeric:tabular-nums}.tippy-box.fastboard-tip{color:#eee;background-color:#000000f2;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.tippy-box.fastboard-tip[data-placement^=right]>.tippy-arrow:before{top:4px;border-width:4px;border-right-color:#000}.tippy-box.fastboard-tip[data-placement^=top]>.tippy-arrow:before{left:4px;border-width:4px;border-top-color:#000}
13
+ `;qe(wo);class We{constructor(t){A(this,"_instance");A(this,"_target",null);this.config=t,this._instance=new ie(t)}get target(){return this._target}get room(){return this._instance.room}get manager(){return this._instance.manager}get sdk(){return this._instance.sdk}get i18n(){return this._instance.i18n}bindElement(t){this._target=t||null,this._instance.target=t||null}insertDocs(t){return this._instance.insertDocs(t)}insertCodeEditor(){return this._instance.insertCodeEditor()}insertGeoGebra(){return this._instance.insertGeoGebra()}insertCountdown(){return this._instance.insertCountdown()}changeLanguage(t){return this._instance.changeLanguage(t)}dispose(){return this._instance.dispose()}}const ko="0.0.5",vo=[];function Co(){const[,e]=n.useState({});return n.useCallback(()=>e({}),vo)}function yo(e){const t=n.useRef(e);return n.useEffect(()=>{t.current=e},[e]),t.current}function Io(e){const t=n.useCallback(()=>{if(e)switch(e.phase){case p.PlayerPhase.WaitingFirstFrame:case p.PlayerPhase.Pause:case p.PlayerPhase.Ended:{e.play();break}case p.PlayerPhase.Playing:{e.pause();break}}},[e]),r=n.useCallback(b=>{e&&e.seekToProgressTime(b)},[e]),a=yo(e),i=Co(),s=n.useCallback(b=>{e&&(e.playbackSpeed=b,i())},[i,e]);n.useEffect(()=>{!a&&e&&i()},[i,a,e]),n.useEffect(()=>{if(e)return e.callbacks.on("onPhaseChanged",i),e.callbacks.on("onProgressTimeChanged",i),()=>{e.callbacks.off("onPhaseChanged",i),e.callbacks.off("onProgressTimeChanged",i)}},[i,e]);const l=e?e.phase:p.PlayerPhase.WaitingFirstFrame,d=e?e.progressTime:0,g=e?e.timeDuration:0,c=e?e.playbackSpeed:1;return{phase:l,currentTime:d,totalTime:g,speed:c,setSpeed:s,togglePlay:t,seekToProgressTime:r}}const Ao=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{d:"M12 4V2A10 10 0 0 0 2 12h2a8 8 0 0 1 8-8z",fill:t})})},So=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{d:"M14 19h4V5h-4M6 19h4V5H6v14z",fill:t})})},Mo=e=>{const t=m(e);return o("svg",{viewBox:"0 0 24 24",children:o("path",{d:"M8 5.14v14l11-7l-11-7z",fill:t})})},ue={Play:n.memo(Mo),Pause:n.memo(So),Loading:n.memo(Ao)},No=n.forwardRef((e,t)=>{const{theme:r,content:a,disabled:i,active:s,onClick:l,interactive:d,placement:g="top",children:c}=e;return o(S.default,{className:"fastboard-tip",content:a,interactive:d,theme:r,disabled:i,placement:g,offset:j,duration:300,children:o("button",{ref:t,className:f.default("fastboard-player-control-btn",r,{active:s}),onClick:l,disabled:i,children:c})})}),D="fastboard-player-control";function Po(s){var l=s,{autoHide:e=!1,player:t,theme:r="light",i18n:a}=l,i=we(l,["autoHide","player","theme","i18n"]);const[d,g]=n.useState(0),c=Io(t);n.useEffect(()=>{g(c.currentTime)},[c.currentTime]),n.useEffect(()=>{c.currentTime!==d&&c.seekToProgressTime(d)},[d]);const b=c.phase===p.PlayerPhase.WaitingFirstFrame||c.phase===p.PlayerPhase.Buffering,x=c.phase===p.PlayerPhase.Playing,{activeColor:u}=z[r];return h("div",{className:f.default(D,r,{"auto-hide":e}),children:[o("button",{className:f.default(`${D}-btn`,b?"loading":x?"pause":"play",r),disabled:b,onClick:c.togglePlay,children:o(w,{fallback:b?o(ue.Loading,{theme:r}):x?o(ue.Pause,{theme:r}):o(ue.Play,{theme:r}),src:b?i.loadingIcon:x?i.pauseIcon:i.playIcon,alt:b?"[loading]":x?"[pause]":"[play]"})}),o("span",{className:f.default(`${D}-slider`,{loading:b},r),children:o(ve.default,{disabled:b,trackStyle:{background:u},handleStyle:{border:`1px solid ${u}`},value:d,onChange:g,min:0,max:c.totalTime,step:100})}),o("span",{className:f.default(`${D}-current`,r),children:Be(c.currentTime)}),o("span",{className:f.default(`${D}-slash`,r),children:"/"}),o("span",{className:f.default(`${D}-total`,r),children:Be(c.totalTime)}),o("span",{className:`${D}-btn-interactive`,children:o(S.default,{className:"fastboard-tip",content:To(c),theme:r,placement:"top-end",trigger:"click",offset:j,arrow:!1,interactive:!0,children:o(No,{content:a==null?void 0:a.t("speed"),theme:r,disabled:b,children:h("span",{className:f.default(`${D}-speed-text`,r),children:[c.speed,"x"]})})})})]})}function Be(e){let t=e/1e3;const r=Math.floor(t/60);return t=Math.floor(t)%60,`${String(r).padStart(2,"0")}:${String(t).padStart(2,"0")}`}const zo=[2,1.5,1.25,1,.75,.5];function To({speed:e,setSpeed:t}){return o("div",{className:f.default(`${D}-panel`,"speed"),children:zo.map(r=>h("button",{className:f.default(`${D}-btn`,"speed",{active:r===e}),onClick:()=>t(r),children:[r,"x"]},r))})}function Lo(e){const[t,r]=n.useState(null),[a,i]=n.useState(null);return n.useEffect(()=>{let s=!0;const l=Ze(e).then(d=>{s&&r(d)});return()=>{s=!1,l.then(()=>t==null?void 0:t.dispose())}},[]),n.useEffect(()=>{t&&t.bindElement(a)},[t,a]),Object.assign([t,i],{app:t,ref:i})}const jo=B.WindowManager.register.bind(B.WindowManager);async function Ze(e){const t=new We(e);return await t._instance.readyPromise,t}exports.PageControl=De;exports.PlayerControl=Po;exports.RedoUndo=Le;exports.Toolbar=Te;exports.WhiteboardApp=We;exports.ZoomControl=je;exports.createWhiteboardApp=Ze;exports.register=jo;exports.useFastboard=Lo;exports.version=ko;
14
14
  //# sourceMappingURL=index.cjs.js.map