@netless/fastboard 0.0.9 → 0.0.10

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.
package/dist/index.cjs.js CHANGED
@@ -1,14 +1,14 @@
1
- "use strict";var Ue=Object.defineProperty,Ve=Object.defineProperties;var Fe=Object.getOwnPropertyDescriptors;var te=Object.getOwnPropertySymbols;var xe=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var le=(e,t,o)=>t in e?Ue(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,S=(e,t)=>{for(var o in t||(t={}))xe.call(t,o)&&le(e,o,t[o]);if(te)for(var o of te(t))me.call(t,o)&&le(e,o,t[o]);return e},U=(e,t)=>Ve(e,Fe(t));var we=(e,t)=>{var o={};for(var a in e)xe.call(e,a)&&t.indexOf(a)<0&&(o[a]=e[a]);if(e!=null&&te)for(var a of te(e))t.indexOf(a)<0&&me.call(e,a)&&(o[a]=e[a]);return o};var A=(e,t,o)=>(le(e,typeof t!="symbol"?t+"":t,o),o);Object.defineProperty(exports,"__esModule",{value:!0});exports[Symbol.toStringTag]="Module";var j=require("@netless/window-manager"),b=require("white-web-sdk"),Je=require("i18next"),i=require("react"),Ye=require("react-dom"),Qe=require("clsx"),qe=require("@tippyjs/react"),Ke=require("rc-slider");function V(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(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 ke=V(Je),Xe=V(i),se=V(Ye),g=V(Qe),M=V(qe),ve=V(Ke);j.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}});j.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}});j.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}});j.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 _e(e){const t=document.createElement("style");return t.appendChild(document.createTextNode(e)),document.head.appendChild(t),t}function ce(e,t,o){return e<t?t:e>o?o:e}function $e(e,t){return e.length===t.length&&e.every((o,a)=>o===t[a])}class et{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 Ce="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",tt=Ce.length,ye=20,Ie=Array(ye),ot=()=>{for(let e=0;e<ye;e++)Ie[e]=Ce.charAt(Math.random()*tt);return Ie.join("")};function rt(e){const t=[];let o="",a="";const n=/^pptx?(?<prefix>:\/\/\S+?dynamicConvert)\/(?<taskId>\w+)\//;for(const{name:s,ppt:l}of e){if(t.push({name:s}),!l||!l.src.startsWith("ppt"))continue;const c=n.exec(l.src);if(!(!c||!c.groups)){o=c.groups.taskId,a="https"+c.groups.prefix;break}}return{scenesWithoutPPT:t,taskId:o,url:a}}const at={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 nt={translation:at};const it={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 lt={translation:it};const st=async e=>{const t=navigator.language||"zh-CN",o=e.language||t;return await ke.default.init({lng:o,resources:{en:nt,"zh-CN":lt}}),ke.default};function ct(e){(!e.invisiblePlugins||!e.invisiblePlugins.includes(j.WindowManager))&&(e.invisiblePlugins=[...e.invisiblePlugins||[],j.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 dt(e,t,o,a){const n=new b.WhiteWebSdk(U(S({},e),{useMobXState:!0}));ct(t),t=S({},t);const s=t.callbacks;delete t.callbacks;const l=U(S({floatBar:!0,hotKeys:S(S({},b.DefaultHotKeys),q)},t),{useMultiViews:!0,disableNewPencil:!1,disableMagixEventDispatchLimit:!0}),c=await n.joinRoom(l,s),p=await j.WindowManager.mount(U(S({cursor:!0,debug:!1},o),{room:c})),d=await st({language:a});return{sdk:n,room:c,manager:p,i18n:d}}var re={exports:{}},K={};/*
1
+ "use strict";var Ue=Object.defineProperty,Ve=Object.defineProperties;var Fe=Object.getOwnPropertyDescriptors;var te=Object.getOwnPropertySymbols;var me=Object.prototype.hasOwnProperty,we=Object.prototype.propertyIsEnumerable;var le=(e,t,o)=>t in e?Ue(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,A=(e,t)=>{for(var o in t||(t={}))me.call(t,o)&&le(e,o,t[o]);if(te)for(var o of te(t))we.call(t,o)&&le(e,o,t[o]);return e},O=(e,t)=>Ve(e,Fe(t));var se=(e,t)=>{var o={};for(var a in e)me.call(e,a)&&t.indexOf(a)<0&&(o[a]=e[a]);if(e!=null&&te)for(var a of te(e))t.indexOf(a)<0&&we.call(e,a)&&(o[a]=e[a]);return o};var S=(e,t,o)=>(le(e,typeof t!="symbol"?t+"":t,o),o);Object.defineProperty(exports,"__esModule",{value:!0});exports[Symbol.toStringTag]="Module";var j=require("@netless/window-manager"),b=require("white-web-sdk"),Je=require("i18next"),i=require("react"),Ye=require("react-dom"),Qe=require("clsx"),qe=require("@tippyjs/react"),Ke=require("rc-slider");function V(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(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 ke=V(Je),Xe=V(i),ce=V(Ye),u=V(Qe),M=V(qe),ve=V(Ke);j.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}});j.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}});j.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}});j.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 _e(e){const t=document.createElement("style");return t.appendChild(document.createTextNode(e)),document.head.appendChild(t),t}function de(e,t,o){return e<t?t:e>o?o:e}function $e(e,t){return e.length===t.length&&e.every((o,a)=>o===t[a])}class et{constructor(){S(this,"running",!1);S(this,"nextFn",null);S(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 Ce="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",tt=Ce.length,ye=20,Ie=Array(ye),ot=()=>{for(let e=0;e<ye;e++)Ie[e]=Ce.charAt(Math.random()*tt);return Ie.join("")};function rt(e){const t=[];let o="",a="";const n=/^pptx?(?<prefix>:\/\/\S+?dynamicConvert)\/(?<taskId>\w+)\//;for(const{name:s,ppt:l}of e){if(t.push({name:s}),!l||!l.src.startsWith("ppt"))continue;const c=n.exec(l.src);if(!(!c||!c.groups)){o=c.groups.taskId,a="https"+c.groups.prefix;break}}return{scenesWithoutPPT:t,taskId:o,url:a}}const at={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 nt={translation:at};const it={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 lt={translation:it};const st=async e=>{const t=navigator.language||"zh-CN",o=e.language||t;return await ke.default.init({lng:o,resources:{en:nt,"zh-CN":lt}}),ke.default};function ct(e){(!e.invisiblePlugins||!e.invisiblePlugins.includes(j.WindowManager))&&(e.invisiblePlugins=[...e.invisiblePlugins||[],j.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 dt(e,t,o,a){const n=new b.WhiteWebSdk(O(A({},e),{useMobXState:!0}));ct(t),t=A({},t);const s=t.callbacks;delete t.callbacks;const l=O(A({floatBar:!0,hotKeys:A(A({},b.DefaultHotKeys),q)},t),{useMultiViews:!0,disableNewPencil:!1,disableMagixEventDispatchLimit:!0}),c=await n.joinRoom(l,s),p=await j.WindowManager.mount(O(A({cursor:!0,debug:!1},o),{room:c})),d=await st({language:a});return{sdk:n,room:c,manager:p,i18n:d}}var re={exports:{}},K={};/*
2
2
  object-assign
3
3
  (c) Sindre Sorhus
4
4
  @license MIT
5
- */var Ae=Object.getOwnPropertySymbols,pt=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable;function ft(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function gt(){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(s){return t[s]});if(a.join("")!=="0123456789")return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(s){n[s]=s}),Object.keys(Object.assign({},n)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}gt();/** @license React v17.0.2
5
+ */var Ae=Object.getOwnPropertySymbols,pt=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable;function ft(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function ut(){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(s){return t[s]});if(a.join("")!=="0123456789")return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(s){n[s]=s}),Object.keys(Object.assign({},n)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}ut();/** @license React v17.0.2
6
6
  * react-jsx-runtime.production.min.js
7
7
  *
8
8
  * Copyright (c) Facebook, Inc. and its affiliates.
9
9
  *
10
10
  * This source code is licensed under the MIT license found in the
11
11
  * LICENSE file in the root directory of this source tree.
12
- */var ut=Xe.default,Se=60103;K.Fragment=60107;if(typeof Symbol=="function"&&Symbol.for){var Me=Symbol.for;Se=Me("react.element"),K.Fragment=Me("react.fragment")}var ht=ut.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,xt=Object.prototype.hasOwnProperty,mt={key:!0,ref:!0,__self:!0,__source:!0};function Pe(e,t,o){var a,n={},s=null,l=null;o!==void 0&&(s=""+o),t.key!==void 0&&(s=""+t.key),t.ref!==void 0&&(l=t.ref);for(a in t)xt.call(t,a)&&!mt.hasOwnProperty(a)&&(n[a]=t[a]);if(e&&e.defaultProps)for(a in t=e.defaultProps,t)n[a]===void 0&&(n[a]=t[a]);return{$$typeof:Se,type:e,key:s,ref:l,props:n,_owner:ht.current}}K.jsx=Pe;K.jsxs=Pe;re.exports=K;const r=re.exports.jsx,h=re.exports.jsxs,X=re.exports.Fragment;function w({fallback:e,src:t,alt:o="[icon]"}){return t?r("img",{src:t,alt:o,title:o}):e}const Ne={color:"#5D5D5D",activeColor:"#3381FF",backgroundColor:"#fff",hoverBackgroundColor:"rgba(51, 129, 255, 0.1)"},wt=U(S({},Ne),{color:"#eee",backgroundColor:"#111"}),z={light:Ne,dark:wt},m=e=>{let t;return e.theme?t=z[e.theme]:t=z.light,e.active?t.activeColor:t.color},D=[0,11],_=[0,11],kt=e=>{const t=m(e);return r("svg",{viewBox:"0 0 24 24",children:h("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"})]})})},vt=e=>{const t=m(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"})})},Ct=e=>{const t=m(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"})})},yt=e=>{const t=m(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"})})},It=e=>{const t=m(e);return r("svg",{viewBox:"0 0 24 24",children:h("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"})]})})},At=e=>{const t=m(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"})})},St=e=>{const t=m(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"})})},Mt=e=>{const t=m(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"})})},Pt=e=>{const t=m(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"})})},Nt=e=>{const t=m(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"})})},zt=e=>{const t=m(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"})})},Tt=e=>{const t=m(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"})})},Lt=e=>{const t=m(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:t,d:"M5.5 5.5h13v13h-13z"})})},jt=e=>{const t=m(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"})})},Dt=e=>{const t=m(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"})})},Wt=e=>{const t=m(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"})})},Bt=e=>{const t=m(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"})})},Et=e=>{const t=m(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"})})},Zt=e=>{const t=m(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"})})},k={Clicker:i.memo(It),Collapse:i.memo(At),Eraser:i.memo(Pt),Expand:i.memo(Nt),Pencil:i.memo(Tt),Selector:i.memo(jt),Rectangle:i.memo(Lt),Text:i.memo(Bt),Apps:i.memo(kt),Clean:i.memo(yt),Circle:i.memo(Ct),Line:i.memo(zt),Arrow:i.memo(vt),Star:i.memo(Wt),Diamond:i.memo(St),SpeechBalloon:i.memo(Dt),Triangle:i.memo(Et),Up:i.memo(Zt),Down:i.memo(Mt)},P=i.forwardRef((e,t)=>{const{content:o,disabled:a,active:n,onClick:s,interactive:l,placement:c="right",children:p}=e,{writable:d,theme:f}=i.useContext(v);return r(M.default,{className:"fastboard-tip",content:o,interactive:l,theme:f,disabled:a||!d,placement:c,offset:c.includes("right")?_:void 0,duration:300,children:r("button",{ref:t,className:g.default("fastboard-toolbar-btn",f,{active:n}),onClick:s,disabled:a||!d,children:p})})});function F(){const{theme:e}=i.useContext(v);return r("span",{className:g.default(`${fe}-cut-line`,e)})}function Ot(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 Rt(e){const[t,o]=i.useState(void 0);return i.useEffect(()=>{if(e){o(e.state.memberState);const a=n=>{n.memberState&&o(n.memberState)};return e.callbacks.on("onRoomStateChanged",a),()=>e.callbacks.off("onRoomStateChanged",a)}},[e]),{memberState:t}}function Ht(e){const t=Ot(e),{memberState:o}=Rt(e),a=i.useCallback(()=>{(e==null?void 0:e.isWritable)&&e.cleanCurrentScene()},[e]),n=i.useCallback((c,p)=>{(e==null?void 0:e.isWritable)&&e.setMemberState({currentApplianceName:c,shapeType:p})},[e]),s=i.useCallback(c=>{(e==null?void 0:e.isWritable)&&e.setMemberState({strokeWidth:c})},[e]),l=i.useCallback(c=>{(e==null?void 0:e.isWritable)&&e.setMemberState({strokeColor:c})},[e]);return{writable:t,memberState:o,cleanCurrentScene:a,setAppliance:n,setStrokeWidth:s,setStrokeColor:l}}const Gt={writable:!1,memberState:void 0,cleanCurrentScene:Q,setAppliance:Q,setStrokeWidth:Q,setStrokeColor:Q},de={[b.ApplianceNames.rectangle]:k.Rectangle,[b.ApplianceNames.ellipse]:k.Circle,[b.ApplianceNames.straight]:k.Line,[b.ApplianceNames.arrow]:k.Arrow,[b.ShapeType.Pentagram]:k.Star,[b.ShapeType.Rhombus]:k.Diamond,[b.ShapeType.Triangle]:k.Triangle,[b.ShapeType.SpeechBalloon]:k.SpeechBalloon},ze=[b.ApplianceNames.rectangle,b.ApplianceNames.ellipse,b.ApplianceNames.straight,b.ApplianceNames.arrow],Te=[b.ShapeType.Pentagram,b.ShapeType.Rhombus,b.ShapeType.Triangle,b.ShapeType.SpeechBalloon],$=32+4,Le=8,Ut=$*Le-4,Vt=$*2-4;function Ft({disabled:e,scrollTo:t}){const{theme:o,icons:a}=i.useContext(v),n=i.useCallback(()=>t(-$),[t]);return h(X,{children:[r(P,{content:"Up",disabled:e,onClick:n,children:r(w,{fallback:r(k.Up,{theme:o}),src:e?a==null?void 0:a.upIconDisable:a==null?void 0:a.upIcon,alt:"[up]"})}),r(F,{})]})}function Jt({disabled:e,scrollTo:t}){const{theme:o,icons:a}=i.useContext(v),n=i.useCallback(()=>t($),[t]);return h(X,{children:[r(F,{}),r(P,{content:"Down",disabled:e,onClick:n,children:r(w,{fallback:r(k.Down,{theme:o}),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:[r("span",{children:e}),r("span",{className:"fastboard-toolbar-hotkey",children:t.toUpperCase()})]})}function Yt(){var u;const e=H(),{theme:t,icons:o,writable:a,setAppliance:n,memberState:s,i18n:l}=i.useContext(v),c=i.useCallback(()=>n(b.ApplianceNames.clicker),[n]),p=(u=e==null?void 0:e.config.joinRoom.hotKeys)==null?void 0:u.changeToClick,f=(s==null?void 0:s.currentApplianceName)===b.ApplianceNames.clicker,x=!a;return r(P,{content:ee(l==null?void 0:l.t("clicker"),p),onClick:c,active:f,children:r(w,{fallback:r(k.Clicker,{theme:t,active:f}),src:x?o==null?void 0:o.clickerIconDisable:o==null?void 0:o.clickerIcon,alt:"[clicker]"})})}function Qt(){const e=H(),{theme:t,icons:o,writable:a,setAppliance:n,memberState:s,i18n:l}=i.useContext(v),c=i.useCallback(()=>n(b.ApplianceNames.selector),[n]),d=(s==null?void 0:s.currentApplianceName)===b.ApplianceNames.selector,f=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||q).changeToSelector;return r(P,{content:ee(l==null?void 0:l.t("selector"),x),onClick:c,active:d,children:r(w,{fallback:r(k.Selector,{theme:t,active:d}),src:f?o==null?void 0:o.selectorIconDisable:o==null?void 0:o.selectorIcon,alt:"[selector]"})})}function qt(){const e=H(),{theme:t,icons:o,writable:a,setAppliance:n,memberState:s,i18n:l}=i.useContext(v),c=i.useCallback(()=>n(b.ApplianceNames.eraser),[n]),d=(s==null?void 0:s.currentApplianceName)===b.ApplianceNames.eraser,f=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||q).changeToEraser;return r(P,{content:ee(l==null?void 0:l.t("eraser"),x),onClick:c,active:d,children:r(w,{fallback:r(k.Eraser,{theme:t,active:d}),src:f?o==null?void 0:o.eraserIconDisable:o==null?void 0:o.eraserIcon,alt:"[eraser]"})})}function Kt(){const{theme:e,icons:t,writable:o,cleanCurrentScene:a,i18n:n}=i.useContext(v),s=!o;return r(P,{content:n==null?void 0:n.t("clean"),onClick:a,children:r(w,{fallback:r(k.Clean,{theme:e}),src:s?t==null?void 0:t.cleanIconDisable:t==null?void 0:t.cleanIcon,alt:"[clean]"})})}var Xt="data:image/png;base64,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",_t="data:image/png;base64,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",$t="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAIAAACRXR/mAAAAAXNSR0IArs4c6QAADAhJREFUWMOtmYlXk1cWwPkr5pyZM2faOTPOjFu1omyyKdICyqoFpBAFFAggQQgJqChUW0dFhEERFNmXLAREqcqmgFbErW60CLIlAglhSSAhybcxN3whfllQoL7zzjtfPt57+eW+e++792IxZ9iENTl9F8LVXJaGy4aR7BoemxyxW2cI2ejcp1r/u3cNd+68/f03xcw0gaFzy28WRp+V73u7zoRNlcSTHCSQAVnDeWJm/CM7Dg4OpKelFRcV37179213t1gslsumlIoZgsBXjjVHENLHt3szD6g4SXppUcWmJWvKIpSyxXasq7uekpxcWlLS0tLS1tb26tWrd7290IWDg9iSJWdh+orA8ZHG8pG8aD2HXlQLnYU0ZRMqhdkdm5sak5jM7Kyspqamlvl27969Vm1rGx0eXjmWlgxDh6qzporjjQ6RcposrDWfQFSma2WyqcyMc8ePpRZcudrQ0NDc0kzCwZkODvT/ISxomEoxWJI2XZ5gLDDuBz70QRGBIaZrlUplZkbG6Z9OZ2dlFxUWcjlcHpfHqaqanJyYw1FcLiY0syvEgqaZFPddPqyoSNSLykjJtHr2mDtnojHT0/If0tMKC4vut7ffvHGjmsfjc7lDgwMEjmHPBNj1VPTWWXysb4VY2t8t6u7PoSsrmRqKYZIjwmMpOSxREbNdUFLGr72QV3g+tyArv7CUKyir4qaeSOPzq1+/fPnubTc+32A3fOApKjhC7oPcPEUoJleIRRDEdNfDvqwocBl6mSE8tqgokXcyhn0ocg/toHdI5O790bv30/32kT3aJyTSNyQyMp6dk38NbHBBLVAwYar1oPcLCVSzEiztTxS/na1JVZTHqTlM0HRFVRInPSYk7KAPjb57H31X0AEX3yB7Dz8bV08rl13WOzzt3H2dvQPdA0MBDnpwdALver1KpSJkI2jtcQMd4CdjXc0rwcJ772O1yRpuPNnFxQms2IN+NLofLcp1TwhwrLdx+vcmm39ttN7itMPe1WOLk+u/NlrBm/U2jltcdm7z2QvcPiFRzBM/yXqeIfwUIwVFr5/Apf3Lw8KFLxA+U88EXV7ByDoS6x4QarVj11or+69sHKMTWIK6m+/6+8VjY1LpuFgy9q6vv/ZGfUwCa721A8wBOBe/YK/gCHpMrLBIK28jMqThAqFWLBWLUE0jdcepTGSfrWLkMoPXbdmakJL6c0MzgqKgf0ZrKwV1r7p+A77DyUfXbLbbYO/i4OkPYjsQFjZakqihXLjwgPDZ2NNq+MIlYaFvbpsykV3FYfRUndLMKvOKyh92PjFaODs5kRp1CFyXdhMUrb/TYOXkut7W2d7Tf+fe8KToMNBOIxcN5omLe5aEpWnIWAxL15uyx4eFg0Mio4UtR47wVq3GVCq9LT/79YWdi9sGhx0OngFugWFV6dFUz0yO6O1zxKz801jjvFPy4mg152NkirofcbWBv0YUMwUbLB+G0MBxUt8/fPR4nZW95XYPJ+9A76D9I8WJRhcaOB3sYak+CrJYTLFUj7jj+VGTVyPVHMZiWGO54VPtXOrCvsbGgj//bYhTZbon+3j66s12djv3uOwOzkuJ+OApuLoLA61Oxnvuz81rqhksXNKL1v8Ek2DqdHGcNO+AqsoMmaoyTpQZMnqFQVX5O4x4/t9XqSQSgw1xvH9Q2PbgoZWz6ybnbx28Ar77nqasSqJGmiQifiONmBw2g4WPD6J1aZQYhj1TGi+5FK4sP2SIxQBc0flgUc4BfMFTq+SyaxssHwQFzyoUMzMzcrl8ar4JRaLE1JO/v+1NOnp8jZU96L6zz97nl+L1xkg9TW0wh6oNsOAz1phpdPfBqKxIADJpXvh0cbSiLHamJEZ6OVzLdP770eJkYr4hCNJVW1vwp7/+XlwMHmxM68Z0DZ4nxsfh4VZj09otW23cfB29AgpTI418mP5mg+vfAAt//xrOTv8jqOJVVSWN5UYIM76HgxMCEDxosYKVPU/UavXk5KRkaKj2u4Drq9eN9PRIF2l9/f3gLDZv94BzPBYThvDMRnJs5G6uARb6mI/w2EaypY6TnBMjhSzhuSDh2cCRa0zZqzY4IxDLSM/bDg/PtjUbGzdtGX7bvRgWTHZ29/ra8RvAigyjoTyDdOFDUP6myQBruqNWXhSn4pqRLblmlsNSdj1ApycQ+fjM1IR0/mhg7CkrvfPFqp+/WHXzL192l5XBK7NYoG1uPnu+dnQFLBotGDWRFtlx0SsLahCDjXRPlSRK8+mzVUnGQd+88OQljJGCJHRWIZPJqNoz0NZW/+U/67+A/o+B9tbFpDUtl+/w9COxQveFoHy2aVCO8pMJuXgBC8fwl/VIdYrW9MoOS3KjlBWJapPQT3wpUphBG+t+bvR9gNhbW/M4Lr6ntoaKa9RGR0dtt39ruc0dsBKjQhEey1RPkJpjEIhb6C6I35oRCruyggkEsiKGmvPhp8iLGaILYaIMmuRNp3Q5bXx8/F77g18edXZ0Pt5o52Tl6glYF5IOaLhmdAtruQixtRYLl42iNceMZoDpgcxGcg6OX4meuBoryY3UMl0IG8iOEgsHlocllT559mt2fmFG1sX/bLLdunMPYDWciTXK2slOPBeAmLRYxJtGhGfscMkH6ZWY/vNh7y/ouuh/kQ3FOe+Hh6XLbxKJxGN34Iat2x28/Lf7BI6VJhlpCKlYeO8DnZdXPq6bLo03ZdK6Ky6rkB2aERtSyaZlRvi03hRMTEysgAnOsYLLX2Npa/2NN2Cx6aGkLzXyjpgghZgY0mHhCtlEAWOiIJZqqDr/XsnsOhu6wzfQdpf/Orvtnv5BAwODK8AaHBpydvP6ym4bMMHl05EVZ1YKSG3q3HwKaaFL7x9VTF07NJZPV827Bj0ZKJYwMyw5Ihj2svPYDSEA/TBTJBItiwnmxyaw1mzZauvuB/sk0ferOCwjAyQ7Dpn6fGyjcxDE1Ah2I11RliC+FDFZGKcoT1CUJ4L8SDXvy2N47N4LegpGtNrSNjya0T8wsGDz4o7OJ6Yo18qqOjqfwgPMDI+Og1U23/rADh579ooKtXGzqbKDfoOTMgxsoMzTcx/8m7IyUXwxAlDeZ4XDKMwMHcujwy53M2KdvAPgCLRkm+3c/QJaWlsnJybaf+k4lZFN3sTU9vT5i6sllc33Wt19A2A+pCTA5OQVAPtQU0Xqg1axhruMw0BtJv76NngvUHN5Sbw0jz52OWqqMI6sKMHKmlPRgAW727r7Qh4GaQ+dwSyt5Lx4+Qr4xhcaPIPR3WlqDo9hrLdxgJkQMjh4B0DUIDhJ13DNHJ/uKqxNJWZlZqJTEBn26w3S11OrIPrLm/sDfZtPIJDZe35n6bJzrbXDemt7ux3u+yJjjqadTD999mjaqf2RMXYu7uus7ddaO27evhNmwnxY1XgmVmOi49RCC95+ZW7RoBnQhC+Rmz+qTcoh82SsN5fjI8Jo8wcKcP6gMZuc3TZsdQGprLN2hBE8k6Wzm42bDwkEM2H+69x4jYlrNLBBSMu6mj5V35qVoZ1cjeCoTtqG3kVZxao/HbOfFuLiq4Vb6P4kKPnR0TvAxTdw/76QW/+NmY+PzVx/VDJUkIJPDi8tqx7rR1qvaPgpppEa6Qyf5jAup0REhdO8AoLAxNz37IXRyz8oKowG759fZJjWeUx9lU7fW3IgNl5yaQSinTcNGj7b7P2lS6Sq2eCHJCVMsHxxCVPF0b5BKMU604q10VbaTQxrJJ+u2EDMg3WUI/zkT/5iamKiWeSSNatbiOAoMS1ZJhaITDOLtxeYki32NYvRmIXWuoa7uXOG5XGLJdZYIaHFO8pIso8ch4FGL+TyptMMCv01x/AFL7psLF269kspulCj+qRszN56ph2tSydmpCvHmifTYC/rUcExsxpmFtGs8zSovFWnQB7/h7B0l9RoN9aYRZb29BUEs8f6EYl+8FjVKVjfoz+MpT/Qvk7s3mVUcFRtkugtxWD1f4KIFHt+/fNgfciXVNOQm+tNYTHBUP/bYJoYY235nxWLZJNL4HZf7P8J5l0J1+BP+J1zoBqfGQu8Gnb7jGnlwjhG4JqLSsibpy6NUM98bixUg9+7ZJqzf8QpGCgflw21U8ikqXv+H7p3tGfM9Tp+AAAAAElFTkSuQmCC";function eo({content:e,onClick:t}){const{theme:o,icons:a,writable:n}=i.useContext(v),s=!n,l=r(P,{content:"Apps",onClick:t,children:r(w,{fallback:r(k.Apps,{theme:o}),src:s?a==null?void 0:a.appsIconDisable:a==null?void 0:a.appsIcon,alt:"[apps]"})});return e===!1?l:r("span",{className:"fastboard-toolbar-btn-interactive",children:r(M.default,{className:"fastboard-tip",content:to(e),theme:o,placement:"right-end",trigger:"click",offset:_,arrow:!1,interactive:!0,children:l})})}function to(e){return r("div",{className:"fastboard-toolbar-panel apps",children:r("div",{className:"fastboard-toolbar-apps",children:e||r(oo,{})})})}function oo(){const e=H();return h(X,{children:[r(pe,{title:"Code Editor",src:Xt,alt:"[code editor]",onClick:e==null?void 0:e.insertCodeEditor.bind(e)}),r(pe,{title:"GeoGebra",src:_t,alt:"[geogebra]",onClick:e==null?void 0:e.insertGeoGebra.bind(e)}),r(pe,{title:"Countdown",src:$t,alt:"[countdown]",onClick:e==null?void 0:e.insertCountdown.bind(e)})]})}function pe({title:e,src:t,alt:o,onClick:a}){return h("span",{className:"fastboard-toolbar-app-icon",children:[r(P,{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 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]},ro=Object.keys(ae);function be(){const{theme:e,memberState:t,setStrokeColor:o,writable:a}=i.useContext(v),n=t==null?void 0:t.strokeColor,s=!a;return r("div",{className:g.default("fastboard-toolbar-color-box",e),children:ro.map(l=>r("div",{className:g.default("fastboard-toolbar-color-item",e),onClick:()=>o(ae[l]),children:r("div",{className:g.default("fastboard-toolbar-color-border",e,{active:n&&$e(n,ae[l])}),children:r("button",{className:g.default("fastboard-toolbar-color-btn"),style:{background:l},disabled:s,onClick:c=>{c.stopPropagation(),o(ae[l])}})})},l))})}function je(){const{theme:e,writable:t,memberState:o,setStrokeWidth:a}=i.useContext(v),{activeColor:n}=z[e],s=(o==null?void 0:o.strokeWidth)||0;return r(ve.default,{disabled:!t,className:g.default("fastboard-toolbar-slider",e),trackStyle:{background:n},handleStyle:{border:`1px solid ${n}`},value:s,onChange:a,min:1,max:32})}function ao(){const e=H(),{theme:t,icons:o,writable:a,setAppliance:n,memberState:s,i18n:l}=i.useContext(v),c=i.useCallback(()=>{n(b.ApplianceNames.pencil)},[n]),d=(s==null?void 0:s.currentApplianceName)===b.ApplianceNames.pencil,f=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||q).changeToPencil;return r("span",{className:"fastboard-toolbar-btn-interactive",children:r(M.default,{className:"fastboard-tip",content:no(),theme:t,placement:"right-start",trigger:"click",offset:_,arrow:!1,interactive:!0,children:h(P,{content:ee(l==null?void 0:l.t("pencil"),x),active:d,onClick:c,children:[r(w,{fallback:r(k.Pencil,{theme:t,active:d}),src:f?o==null?void 0:o.pencilIconDisable:o==null?void 0:o.pencilIcon,alt:"[pencil]"}),r("span",{className:"fastboard-toolbar-triangle"})]})})})}function no(){return h("div",{className:"fastboard-toolbar-panel pencil",children:[r(je,{}),r(F,{}),r(be,{})]})}function io(){const e=H(),{theme:t,icons:o,writable:a,setAppliance:n,memberState:s,i18n:l}=i.useContext(v),c=i.useCallback(()=>{n(b.ApplianceNames.text)},[n]),d=(s==null?void 0:s.currentApplianceName)===b.ApplianceNames.text,f=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||q).changeToText;return r("span",{className:"fastboard-toolbar-btn-interactive",children:r(M.default,{className:"fastboard-tip",content:lo(),theme:t,placement:"right-start",trigger:"click",offset:_,arrow:!1,interactive:!0,children:h(P,{content:ee(l==null?void 0:l.t("text"),x),active:d,onClick:c,children:[r(w,{fallback:r(k.Text,{theme:t,active:d}),src:f?o==null?void 0:o.textIconDisable:o==null?void 0:o.textIcon,alt:"[text]"}),r("span",{className:"fastboard-toolbar-triangle"})]})})})}function lo(){return r("div",{className:"fastboard-toolbar-panel text",children:r(be,{})})}const so=new Set([...ze,...Te]);function co(){const{theme:e,memberState:t,i18n:o}=i.useContext(v),a=t==null?void 0:t.currentApplianceName,n=t==null?void 0:t.shapeType,s=a===b.ApplianceNames.shape?n:a,l=so.has(s),c=de[s]||k.Rectangle;return r("span",{className:"fastboard-toolbar-btn-interactive",children:r(M.default,{className:"fastboard-tip",content:po(),theme:e,placement:"right-start",trigger:"click",offset:_,arrow:!1,interactive:!0,children:h(P,{content:o==null?void 0:o.t("shape"),active:l,children:[r(c,{theme:e,active:l}),r("span",{className:"fastboard-toolbar-triangle"})]})})})}function po(){return h("div",{className:"fastboard-toolbar-panel shapes",children:[r(bo,{}),r(F,{}),r(je,{}),r(F,{}),r(be,{})]})}function bo(){const{i18n:e}=i.useContext(v);return h("div",{className:"fastboard-toolbar-shapes",children:[ze.map(t=>r(fo,{content:e==null?void 0:e.t(t),Appliance:t,Icon:de[t]},t)),Te.map(t=>r(go,{content:e==null?void 0:e.t(t),shape:t,Icon:de[t]},t))]})}function fo({content:e,Appliance:t,Icon:o}){const{theme:a,writable:n,setAppliance:s,memberState:l}=i.useContext(v),c=l==null?void 0:l.currentApplianceName;return r(P,{content:e,disabled:!n,placement:"top",onClick:()=>s(t),children:r(o,{theme:a,active:c===t})})}function go({content:e,shape:t,Icon:o}){const{theme:a,writable:n,setAppliance:s,memberState:l}=i.useContext(v),p=(l==null?void 0:l.currentApplianceName)===b.ApplianceNames.shape&&(l==null?void 0:l.shapeType);return r(P,{content:e,disabled:!n,placement:"top",onClick:()=>s(b.ApplianceNames.shape,t),children:r(o,{theme:a,active:p===t})})}function uo(){var y,T,Z,G,N,B,C;const e=H(),t=i.useRef(null),[o,a]=i.useState(0),[n,s]=i.useState(0),l=(Z=(T=(y=e==null?void 0:e.config.toolbar)==null?void 0:y.apps)==null?void 0:T.enable)!=null?Z:!0,c=n<$*Le+48,p=ce(n-48*(c?3:1),Vt,Ut),d=Math.max(n-p-1,0),f=o===0,x=o===d,u=i.useCallback(I=>{a(ce(o+I,0,d))},[d,o]);return i.useEffect(()=>{t.current&&(t.current.scrollTop=o)},[o]),i.useEffect(()=>{var L,Y;const I=(Y=(L=t.current)==null?void 0:L.parentElement)==null?void 0:Y.parentElement;if(I){const{paddingTop:O,paddingBottom:He}=getComputedStyle(I),Ge=parseInt(O)+parseInt(He)||0,he=new ResizeObserver(()=>{s(I.getBoundingClientRect().height-Ge)});return he.observe(I),()=>he.disconnect()}},[]),h(X,{children:[c&&r(Ft,{scrollTo:u,disabled:f}),h("div",{ref:t,className:`${fe}-section`,style:{height:`${p}px`,overflow:c?"hidden":"visible"},children:[r(Yt,{}),r(Qt,{}),r(ao,{}),r(io,{}),r(co,{}),r(qt,{}),r(Kt,{}),l&&r(eo,{content:(N=(G=e==null?void 0:e.config.toolbar)==null?void 0:G.apps)==null?void 0:N.content,onClick:(C=(B=e==null?void 0:e.config.toolbar)==null?void 0:B.apps)==null?void 0:C.onClick})]}),c&&r(Jt,{scrollTo:u,disabled:x})]})}const v=i.createContext(S({theme:"light"},Gt)),fe="fastboard-toolbar",De=({theme:e="light",icons:t,room:o,i18n:a})=>{const[n,s]=i.useState(!0),l=Ht(o),c=i.useCallback(()=>s(d=>!d),[]),p=!l.writable;return r(v.Provider,{value:U(S({theme:e,icons:t},l),{i18n:a}),children:h("div",{className:g.default(fe,e),children:[n?r(P,{content:a==null?void 0:a.t("collapse"),onClick:c,children:r(w,{fallback:r(k.Collapse,{theme:e}),src:p?t==null?void 0:t.collapseIconDisable:t==null?void 0:t.collapseIcon})}):r(P,{content:a==null?void 0:a.t("expand"),onClick:c,children:r(w,{fallback:r(k.Expand,{theme:e}),src:p?t==null?void 0:t.expandIconDisable:t==null?void 0:t.expandIcon})}),n&&h(X,{children:[r(F,{}),r(uo,{})]})]})})};function ho({theme:e="light",active:t}){const o=z[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:h("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 xo({theme:e="light",active:t}){const o=z[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:h("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 ge="fastboard-redo-undo";function We({room:e,theme:t="light",undoIcon:o,undoIconDisable:a,redoIcon:n,redoIconDisable:s,i18n:l}){const[c,p]=i.useState(!1),[d,f]=i.useState(0),[x,u]=i.useState(0);i.useEffect(()=>{if(e){p(e.isWritable),e.isWritable&&(e.disableSerialization=!1);const T=()=>p((e==null?void 0:e.isWritable)||!1);return e.callbacks.on("onEnableWriteNowChanged",T),e.callbacks.on("onCanUndoStepsUpdate",f),e.callbacks.on("onCanRedoStepsUpdate",u),()=>{e.callbacks.off("onEnableWriteNowChanged",T),e.callbacks.off("onCanUndoStepsUpdate",f),e.callbacks.off("onCanRedoStepsUpdate",u)}}},[e]);const y=!c;return h("div",{className:g.default(ge,t),children:[r(M.default,{className:"fastboard-tip",content:l==null?void 0:l.t("undo"),theme:t,disabled:y,placement:"top",duration:300,offset:D,children:r("button",{className:g.default(`${ge}-btn`,"undo",t),disabled:y||d===0,onClick:i.useCallback(()=>e&&e.undo(),[e]),children:r(w,{fallback:r(ho,{theme:t}),src:d===0?a:o,alt:"[undo]"})})}),r(M.default,{className:"fastboard-tip",content:l==null?void 0:l.t("redo"),theme:t,disabled:y,placement:"top",duration:300,offset:D,children:r("button",{className:g.default(`${ge}-btn`,"redo",t),disabled:y||x===0,onClick:i.useCallback(()=>e&&e.redo(),[e]),children:r(w,{fallback:r(xo,{theme:t}),src:x===0?s:n,alt:"[redo]"})})})]})}function mo({theme:e="light",active:t}){const o=z[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 wo({theme:e="light",active:t}){const o=z[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 ko({theme:e="light",active:t}){const o=z[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:h("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 J="fastboard-zoom-control",E=[.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:o}=E,a=o-1;if(e<E[0])return E[0];if(e>E[a])return E[a];for(let n=0;n<o;++n){const s=E[n],l=n===0?-1/0:(E[n-1]+s)/2,c=n===a?1/0:(E[n+1]+s)/2;if(l<=e&&e<=c)return E[ce(n+t,0,a)]}return 1}function Be({room:e,manager:t,theme:o="light",resetIcon:a,resetIconDisable:n,minusIcon:s,minusIconDisable:l,plusIcon:c,plusIconDisable:p,i18n:d}){const[f,x]=i.useState(!1),[u,y]=i.useState(1),T=i.useCallback(()=>{if(e==null?void 0:e.isWritable)if(t)t.mainView.moveCamera({scale:1,centerX:0,centerY:0});else{const{scenes:B,index:C}=e.state.sceneState;B[C].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:ne(u,1),centerX:0,centerY:0}):e.moveCamera({scale:ne(u,1),centerX:0,centerY:0}))},[e,t,u]),G=i.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]);i.useEffect(()=>{e&&(x(e.isWritable),y(e.state.cameraState.scale)),t&&y(t.mainView.camera.scale);const B=L=>{L.cameraState&&y(L.cameraState.scale)},C=({scale:L})=>y(L),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",B)),()=>{e&&(e.callbacks.off("onEnableWriteNowChanged",I),e.callbacks.off("onRoomStateChanged",B),t==null||t.mainView.callbacks.off("onCameraUpdated",C))}},[e,t]);const N=!f;return h("div",{className:g.default(J,o),children:[r(M.default,{className:"fastboard-tip",content:d==null?void 0:d.t("zoomOut"),theme:o,disabled:N,placement:"top",duration:300,offset:D,children:r("button",{className:g.default(`${J}-btn`,"minus",o),disabled:N,onClick:G,children:r(w,{fallback:r(mo,{theme:o}),src:N?l:s,alt:"[minus]"})})}),r("span",{className:g.default(`${J}-scale`,o),children:Math.ceil(u*100)}),r("span",{className:g.default(`${J}-percent`,o),children:"%"}),r(M.default,{className:"fastboard-tip",content:d==null?void 0:d.t("zoomIn"),theme:o,disabled:N,placement:"top",duration:300,offset:D,children:r("button",{className:g.default(`${J}-btn`,"plus",o),disabled:N,onClick:Z,children:r(w,{fallback:r(wo,{theme:o}),src:N?p:c,alt:"[plus]"})})}),r(M.default,{className:"fastboard-tip",content:d==null?void 0:d.t("reset"),theme:o,disabled:N,placement:"top",duration:300,offset:D,children:r("button",{className:g.default(`${J}-btn`,"reset",o),disabled:N,onClick:T,children:r(w,{fallback:r(ko,{theme:o}),src:N?n:a,alt:"[reset]"})})})]})}function vo({theme:e="light",active:t}){const o=z[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=z[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 yo({theme:e="light",active:t}){const o=z[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 Ee({room:e,manager:t,theme:o="light",addIcon:a,addIconDisable:n,prevIcon:s,prevIconDisable:l,nextIcon:c,nextIconDisable:p,i18n:d}){const[f,x]=i.useState(!1),[u,y]=i.useState(0),[T,Z]=i.useState(0),G=i.useCallback(async()=>{if(t&&e){await t.switchMainViewToWriter();const I=e.state.sceneState.contextPath;e.putScenes(I,[{}],u+1),await t.setMainViewSceneIndex(u+1)}else if(!t&&e){const I=e.state.sceneState.contextPath;e.putScenes(I,[{}],u+1),e.setSceneIndex(u+1)}},[e,t,u]),N=i.useCallback(()=>{(e==null?void 0:e.isWritable)&&(t?t.setMainViewSceneIndex(u-1):e.pptPreviousStep())},[e,t,u]),B=i.useCallback(()=>{(e==null?void 0:e.isWritable)&&(t?t.setMainViewSceneIndex(u+1):e.pptNextStep())},[e,t,u]);i.useEffect(()=>{e&&(x(e.isWritable),y(e.state.sceneState.index),Z(e.state.sceneState.scenes.length));const I=O=>{O.sceneState&&(y(O.sceneState.index),Z(O.sceneState.scenes.length))},L=O=>{e&&O===0&&(y(e.state.sceneState.index),Z(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",L)),()=>{e&&(e.callbacks.off("onEnableWriteNowChanged",Y),e.callbacks.off("onRoomStateChanged",I),t==null||t.callbacks.off("mainViewModeChange",L))}},[e,t]);const C=!f;return h("div",{className:g.default(R,o),children:[r(M.default,{className:"fastboard-tip",content:d==null?void 0:d.t("prevPage"),theme:o,disabled:C,placement:"top",duration:300,offset:D,children:r("button",{className:g.default(`${R}-btn`,"prev",o),disabled:C||u===0,onClick:N,children:r(w,{fallback:r(Co,{theme:o}),src:C?l:s,alt:"[prev]"})})}),r("span",{className:g.default(`${R}-page`,o),children:T===0?"\u2026":u+1}),r("span",{className:g.default(`${R}-slash`,o),children:"/"}),r("span",{className:g.default(`${R}-page-count`,o),children:T}),r(M.default,{className:"fastboard-tip",content:d==null?void 0:d.t("nextPage"),theme:o,disabled:C,placement:"top",duration:300,offset:D,children:r("button",{className:g.default(`${R}-btn`,"next",o),disabled:C||u===T-1,onClick:B,children:r(w,{fallback:r(yo,{theme:o}),src:C?p:c,alt:"[next]"})})}),r(M.default,{className:"fastboard-tip",content:d==null?void 0:d.t("addPage"),theme:o,disabled:C,placement:"top",duration:300,offset:D,children:r("button",{className:g.default(`${R}-btn`,"add",o),disabled:C,onClick:G,children:r(w,{fallback:r(vo,{theme:o}),src:C?n:a,alt:"[add]"})})})]})}function Io({instance:e}){const[t]=i.useState(()=>new et),o=i.useCallback(p=>t.schedule(p?()=>e.mount(p):()=>e.unmount()),[e,t]),{Toolbar:a=!0,RedoUndo:n=!0,ZoomControl:s=!0,PageControl:l=!0}=e.config.layout||{},c={room:e.room,manager:e.manager,i18n:e.i18n};return r(ie.Context.Provider,{value:e,children:h("div",{className:"fastboard-root",children:[!e.room&&r("div",{className:"fastboard-loading",children:"Loading\u2026"}),r("div",{className:"fastboard-view",ref:o}),a&&r("div",{className:"fastboard-left",children:r(De,S({},c))}),(n||s)&&h("div",{className:"fastboard-bottom-left",children:[n&&r(We,S({},c)),s&&r(Be,S({},c))]}),l&&r("div",{className:"fastboard-bottom-right",children:r(Ee,S({},c))})]})})}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);A(this,"collector",null);this.config=S({},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 dt(this.config.sdkConfig,this.config.joinRoom,this.config.managerConfig||{},this.config.language||"en-US");this.accept(t),this.resolveReady()}bindElement(t){this.target&&this.target!==t&&se.default.unmountComponentAtNode(this.target),this.target=t,this.forceUpdate()}bindCollector(t){this.collector=t,this.manager&&t&&this.manager.bindCollectorContainer(t)}updateLayout(t){this.config.layout=t,this.forceUpdate()}async forceUpdate(){await this.readyPromise,this.target&&se.default.render(r(Io,{instance:this}),this.target)}accept({sdk:t,room:o,manager:a,i18n:n}){this.sdk=t,this.room=o,this.manager=a,this.i18n=n,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){if(await this.readyPromise,!this.manager)throw new Error("[WhiteboardApp] mounted, but not found window manager");this.manager.bindContainer(t),this.collector&&this.manager.bindCollectorContainer(this.collector)}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,scenes:t.scenes},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"}})}insertMedia({title:t,src:o}){if(!this.manager)throw new Error("[WhiteboardApp] cannot insert app before mounted");return this.manager.addApp({kind:j.BuiltinApps.MediaPlayer,options:{title:t},attributes:{src:o}})}async changeLanguage(t){var o;try{await((o=this.i18n)==null?void 0:o.changeLanguage(t))}finally{await this.forceUpdate()}}}A(ie,"Context",i.createContext(null));function H(){return i.useContext(ie.Context)}var Ao=`.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}.fastboard{width:100%;height:100%;position:relative}.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
- `;_e(Ao);class Ze{constructor(t){A(this,"_instance");this.config=t,this._instance=new ie(t)}get room(){return this._instance.room}get manager(){return this._instance.manager}get sdk(){return this._instance.sdk}get i18n(){return this._instance.i18n}get target(){return this._instance.target}get collector(){return this._instance.collector}bindElement(t){this._instance.bindElement(t||null)}bindCollector(t){this._instance.bindCollector(t||null)}get layout(){return this._instance.config.layout}updateLayout(t){this._instance.updateLayout(t)}insertMedia(t){this._instance.insertMedia(t)}insertDocs(t,o){if(typeof t=="object"&&"fileType"in t)return this._instance.insertDocs(t);if(o&&o.status!=="Finished")throw new Error("[WhiteboardApp] cannot insert a converting doc");if(o&&o.progress){const a=o.progress.convertedFileList.map((d,f)=>({name:String(f+1),ppt:{src:d.conversionFileUrl,width:d.width,height:d.height,previewURL:d.preview}})),n=ot(),s=`/${o.uuid}/${n}`,{scenesWithoutPPT:l,taskId:c,url:p}=rt(a);return c&&p?this._instance.insertDocs({fileType:"pptx",scenePath:s,taskId:c,title:t,url:p,scenes:l}):this._instance.insertDocs({fileType:"pdf",scenePath:s,scenes:a,title: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 So="0.0.9";function Oe(e){const t=i.useRef(e);return i.useEffect(()=>{t.current=e},[e]),t.current}const Mo=[];function Po(){const[,e]=i.useState({});return i.useCallback(()=>e({}),Mo)}function No(e){const t=i.useCallback(()=>{if(e)switch(e.phase){case b.PlayerPhase.WaitingFirstFrame:case b.PlayerPhase.Pause:case b.PlayerPhase.Ended:{e.play();break}case b.PlayerPhase.Playing:{e.pause();break}}},[e]),o=i.useCallback(f=>{e&&e.seekToProgressTime(f)},[e]),a=Oe(e),n=Po(),s=i.useCallback(f=>{e&&(e.playbackSpeed=f,n())},[n,e]);i.useEffect(()=>{!a&&e&&n()},[n,a,e]),i.useEffect(()=>{if(e)return e.callbacks.on("onPhaseChanged",n),e.callbacks.on("onProgressTimeChanged",n),()=>{e.callbacks.off("onPhaseChanged",n),e.callbacks.off("onProgressTimeChanged",n)}},[n,e]);const l=e?e.phase:b.PlayerPhase.WaitingFirstFrame,c=e?e.progressTime:0,p=e?e.timeDuration:0,d=e?e.playbackSpeed:1;return{phase:l,currentTime:c,totalTime:p,speed:d,setSpeed:s,togglePlay:t,seekToProgressTime:o}}const zo=e=>{const t=m(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{d:"M12 4V2A10 10 0 0 0 2 12h2a8 8 0 0 1 8-8z",fill:t})})},To=e=>{const t=m(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{d:"M14 19h4V5h-4M6 19h4V5H6v14z",fill:t})})},Lo=e=>{const t=m(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{d:"M8 5.14v14l11-7l-11-7z",fill:t})})},ue={Play:i.memo(Lo),Pause:i.memo(To),Loading:i.memo(zo)},jo=i.forwardRef((e,t)=>{const{theme:o,content:a,disabled:n,active:s,onClick:l,interactive:c,placement:p="top",children:d}=e;return r(M.default,{className:"fastboard-tip",content:a,interactive:c,theme:o,disabled:n,placement:p,offset:D,duration:300,children:r("button",{ref:t,className:g.default("fastboard-player-control-btn",o,{active:s}),onClick:l,disabled:n,children:d})})}),W="fastboard-player-control";function Do(s){var l=s,{autoHide:e=!1,player:t,theme:o="light",i18n:a}=l,n=we(l,["autoHide","player","theme","i18n"]);const[c,p]=i.useState(0),d=No(t);i.useEffect(()=>{p(d.currentTime)},[d.currentTime]),i.useEffect(()=>{d.currentTime!==c&&d.seekToProgressTime(c)},[c]);const f=d.phase===b.PlayerPhase.WaitingFirstFrame||d.phase===b.PlayerPhase.Buffering,x=d.phase===b.PlayerPhase.Playing,{activeColor:u}=z[o];return h("div",{className:g.default(W,o,{"auto-hide":e}),children:[r("button",{className:g.default(`${W}-btn`,f?"loading":x?"pause":"play",o),disabled:f,onClick:d.togglePlay,children:r(w,{fallback:f?r(ue.Loading,{theme:o}):x?r(ue.Pause,{theme:o}):r(ue.Play,{theme:o}),src:f?n.loadingIcon:x?n.pauseIcon:n.playIcon,alt:f?"[loading]":x?"[pause]":"[play]"})}),r("span",{className:g.default(`${W}-slider`,{loading:f},o),children:r(ve.default,{disabled:f,trackStyle:{background:u},handleStyle:{border:`1px solid ${u}`},value:c,onChange:p,min:0,max:d.totalTime,step:100})}),r("span",{className:g.default(`${W}-current`,o),children:Re(d.currentTime)}),r("span",{className:g.default(`${W}-slash`,o),children:"/"}),r("span",{className:g.default(`${W}-total`,o),children:Re(d.totalTime)}),r("span",{className:`${W}-btn-interactive`,children:r(M.default,{className:"fastboard-tip",content:Bo(d),theme:o,placement:"top-end",trigger:"click",offset:D,arrow:!1,interactive:!0,children:r(jo,{content:a==null?void 0:a.t("speed"),theme:o,disabled:f,children:h("span",{className:g.default(`${W}-speed-text`,o),children:[d.speed,"x"]})})})})]})}function Re(e){let t=e/1e3;const o=Math.floor(t/60);return t=Math.floor(t)%60,`${String(o).padStart(2,"0")}:${String(t).padStart(2,"0")}`}const Wo=[2,1.5,1.25,1,.75,.5];function Bo({speed:e,setSpeed:t}){return r("div",{className:g.default(`${W}-panel`,"speed"),children:Wo.map(o=>h("button",{className:g.default(`${W}-btn`,"speed",{active:o===e}),onClick:()=>t(o),children:[o,"x"]},o))})}function Eo({app:e}){const t=i.useRef(null),o=Oe(e);return i.useEffect(()=>{o&&o!==e&&o.bindElement(null),e&&e.bindElement(t.current)},[e,o]),r("div",{className:"fastboard",ref:t})}const Zo=j.WindowManager.register.bind(j.WindowManager);async function Oo(e){const t=new Ze(e);return await t._instance.readyPromise,t}exports.Fastboard=Eo;exports.PageControl=Ee;exports.PlayerControl=Do;exports.RedoUndo=We;exports.Toolbar=De;exports.WhiteboardApp=Ze;exports.ZoomControl=Be;exports.createWhiteboardApp=Oo;exports.register=Zo;exports.version=So;
12
+ */var gt=Xe.default,Se=60103;K.Fragment=60107;if(typeof Symbol=="function"&&Symbol.for){var Me=Symbol.for;Se=Me("react.element"),K.Fragment=Me("react.fragment")}var ht=gt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,xt=Object.prototype.hasOwnProperty,mt={key:!0,ref:!0,__self:!0,__source:!0};function Pe(e,t,o){var a,n={},s=null,l=null;o!==void 0&&(s=""+o),t.key!==void 0&&(s=""+t.key),t.ref!==void 0&&(l=t.ref);for(a in t)xt.call(t,a)&&!mt.hasOwnProperty(a)&&(n[a]=t[a]);if(e&&e.defaultProps)for(a in t=e.defaultProps,t)n[a]===void 0&&(n[a]=t[a]);return{$$typeof:Se,type:e,key:s,ref:l,props:n,_owner:ht.current}}K.jsx=Pe;K.jsxs=Pe;re.exports=K;const r=re.exports.jsx,h=re.exports.jsxs,X=re.exports.Fragment;function w({fallback:e,src:t,alt:o="[icon]"}){return t?r("img",{src:t,alt:o,title:o}):e}const Ne={color:"#5D5D5D",activeColor:"#3381FF",backgroundColor:"#fff",hoverBackgroundColor:"rgba(51, 129, 255, 0.1)"},wt=O(A({},Ne),{color:"#eee",backgroundColor:"#111"}),z={light:Ne,dark:wt},m=e=>{let t;return e.theme?t=z[e.theme]:t=z.light,e.active?t.activeColor:t.color},D=[0,11],_=[0,11],kt=e=>{const t=m(e);return r("svg",{viewBox:"0 0 24 24",children:h("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"})]})})},vt=e=>{const t=m(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"})})},Ct=e=>{const t=m(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"})})},yt=e=>{const t=m(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"})})},It=e=>{const t=m(e);return r("svg",{viewBox:"0 0 24 24",children:h("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"})]})})},At=e=>{const t=m(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"})})},St=e=>{const t=m(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"})})},Mt=e=>{const t=m(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"})})},Pt=e=>{const t=m(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"})})},Nt=e=>{const t=m(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"})})},zt=e=>{const t=m(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"})})},Tt=e=>{const t=m(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"})})},Lt=e=>{const t=m(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{fill:"none",stroke:t,d:"M5.5 5.5h13v13h-13z"})})},jt=e=>{const t=m(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"})})},Dt=e=>{const t=m(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"})})},Wt=e=>{const t=m(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"})})},Bt=e=>{const t=m(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"})})},Et=e=>{const t=m(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"})})},Zt=e=>{const t=m(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"})})},k={Clicker:i.memo(It),Collapse:i.memo(At),Eraser:i.memo(Pt),Expand:i.memo(Nt),Pencil:i.memo(Tt),Selector:i.memo(jt),Rectangle:i.memo(Lt),Text:i.memo(Bt),Apps:i.memo(kt),Clean:i.memo(yt),Circle:i.memo(Ct),Line:i.memo(zt),Arrow:i.memo(vt),Star:i.memo(Wt),Diamond:i.memo(St),SpeechBalloon:i.memo(Dt),Triangle:i.memo(Et),Up:i.memo(Zt),Down:i.memo(Mt)},P=i.forwardRef((e,t)=>{const{content:o,disabled:a,active:n,onClick:s,interactive:l,placement:c="right",children:p}=e,{writable:d,theme:f}=i.useContext(v);return r(M.default,{className:"fastboard-tip",content:o,interactive:l,theme:f,disabled:a||!d,placement:c,offset:c.includes("right")?_:void 0,duration:300,children:r("button",{ref:t,className:u.default("fastboard-toolbar-btn",f,{active:n}),onClick:s,disabled:a||!d,children:p})})});function F(){const{theme:e}=i.useContext(v);return r("span",{className:u.default(`${ue}-cut-line`,e)})}function Rt(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 Ot(e){const[t,o]=i.useState(void 0);return i.useEffect(()=>{if(e){o(e.state.memberState);const a=n=>{n.memberState&&o(n.memberState)};return e.callbacks.on("onRoomStateChanged",a),()=>e.callbacks.off("onRoomStateChanged",a)}},[e]),{memberState:t}}function Ht(e){const t=Rt(e),{memberState:o}=Ot(e),a=i.useCallback(()=>{(e==null?void 0:e.isWritable)&&e.cleanCurrentScene()},[e]),n=i.useCallback((c,p)=>{(e==null?void 0:e.isWritable)&&e.setMemberState({currentApplianceName:c,shapeType:p})},[e]),s=i.useCallback(c=>{(e==null?void 0:e.isWritable)&&e.setMemberState({strokeWidth:c})},[e]),l=i.useCallback(c=>{(e==null?void 0:e.isWritable)&&e.setMemberState({strokeColor:c})},[e]);return{writable:t,memberState:o,cleanCurrentScene:a,setAppliance:n,setStrokeWidth:s,setStrokeColor:l}}const Gt={writable:!1,memberState:void 0,cleanCurrentScene:Q,setAppliance:Q,setStrokeWidth:Q,setStrokeColor:Q},pe={[b.ApplianceNames.rectangle]:k.Rectangle,[b.ApplianceNames.ellipse]:k.Circle,[b.ApplianceNames.straight]:k.Line,[b.ApplianceNames.arrow]:k.Arrow,[b.ShapeType.Pentagram]:k.Star,[b.ShapeType.Rhombus]:k.Diamond,[b.ShapeType.Triangle]:k.Triangle,[b.ShapeType.SpeechBalloon]:k.SpeechBalloon},ze=[b.ApplianceNames.rectangle,b.ApplianceNames.ellipse,b.ApplianceNames.straight,b.ApplianceNames.arrow],Te=[b.ShapeType.Pentagram,b.ShapeType.Rhombus,b.ShapeType.Triangle,b.ShapeType.SpeechBalloon],$=32+4,Le=8,Ut=$*Le-4,Vt=$*2-4;function Ft({disabled:e,scrollTo:t}){const{theme:o,icons:a}=i.useContext(v),n=i.useCallback(()=>t(-$),[t]);return h(X,{children:[r(P,{content:"Up",disabled:e,onClick:n,children:r(w,{fallback:r(k.Up,{theme:o}),src:e?a==null?void 0:a.upIconDisable:a==null?void 0:a.upIcon,alt:"[up]"})}),r(F,{})]})}function Jt({disabled:e,scrollTo:t}){const{theme:o,icons:a}=i.useContext(v),n=i.useCallback(()=>t($),[t]);return h(X,{children:[r(F,{}),r(P,{content:"Down",disabled:e,onClick:n,children:r(w,{fallback:r(k.Down,{theme:o}),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:[r("span",{children:e}),r("span",{className:"fastboard-toolbar-hotkey",children:t.toUpperCase()})]})}function Yt(){var g;const e=G(),{theme:t,icons:o,writable:a,setAppliance:n,memberState:s,i18n:l}=i.useContext(v),c=i.useCallback(()=>n(b.ApplianceNames.clicker),[n]),p=(g=e==null?void 0:e.config.joinRoom.hotKeys)==null?void 0:g.changeToClick,f=(s==null?void 0:s.currentApplianceName)===b.ApplianceNames.clicker,x=!a;return r(P,{content:ee(l==null?void 0:l.t("clicker"),p),onClick:c,active:f,children:r(w,{fallback:r(k.Clicker,{theme:t,active:f}),src:x?o==null?void 0:o.clickerIconDisable:o==null?void 0:o.clickerIcon,alt:"[clicker]"})})}function Qt(){const e=G(),{theme:t,icons:o,writable:a,setAppliance:n,memberState:s,i18n:l}=i.useContext(v),c=i.useCallback(()=>n(b.ApplianceNames.selector),[n]),d=(s==null?void 0:s.currentApplianceName)===b.ApplianceNames.selector,f=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||q).changeToSelector;return r(P,{content:ee(l==null?void 0:l.t("selector"),x),onClick:c,active:d,children:r(w,{fallback:r(k.Selector,{theme:t,active:d}),src:f?o==null?void 0:o.selectorIconDisable:o==null?void 0:o.selectorIcon,alt:"[selector]"})})}function qt(){const e=G(),{theme:t,icons:o,writable:a,setAppliance:n,memberState:s,i18n:l}=i.useContext(v),c=i.useCallback(()=>n(b.ApplianceNames.eraser),[n]),d=(s==null?void 0:s.currentApplianceName)===b.ApplianceNames.eraser,f=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||q).changeToEraser;return r(P,{content:ee(l==null?void 0:l.t("eraser"),x),onClick:c,active:d,children:r(w,{fallback:r(k.Eraser,{theme:t,active:d}),src:f?o==null?void 0:o.eraserIconDisable:o==null?void 0:o.eraserIcon,alt:"[eraser]"})})}function Kt(){const{theme:e,icons:t,writable:o,cleanCurrentScene:a,i18n:n}=i.useContext(v),s=!o;return r(P,{content:n==null?void 0:n.t("clean"),onClick:a,children:r(w,{fallback:r(k.Clean,{theme:e}),src:s?t==null?void 0:t.cleanIconDisable:t==null?void 0:t.cleanIcon,alt:"[clean]"})})}var Xt="data:image/png;base64,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",_t="data:image/png;base64,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",$t="data:image/png;base64,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";function eo({content:e,onClick:t}){const{theme:o,icons:a,writable:n}=i.useContext(v),s=!n,l=r(P,{content:"Apps",onClick:t,children:r(w,{fallback:r(k.Apps,{theme:o}),src:s?a==null?void 0:a.appsIconDisable:a==null?void 0:a.appsIcon,alt:"[apps]"})});return e===!1?l:r("span",{className:"fastboard-toolbar-btn-interactive",children:r(M.default,{className:"fastboard-tip",content:to(e),theme:o,placement:"right-end",trigger:"click",offset:_,arrow:!1,interactive:!0,children:l})})}function to(e){return r("div",{className:"fastboard-toolbar-panel apps",children:r("div",{className:"fastboard-toolbar-apps",children:e||r(oo,{})})})}function oo(){const e=G();return h(X,{children:[r(be,{title:"Code Editor",src:Xt,alt:"[code editor]",onClick:e==null?void 0:e.insertCodeEditor.bind(e)}),r(be,{title:"GeoGebra",src:_t,alt:"[geogebra]",onClick:e==null?void 0:e.insertGeoGebra.bind(e)}),r(be,{title:"Countdown",src:$t,alt:"[countdown]",onClick:e==null?void 0:e.insertCountdown.bind(e)})]})}function be({title:e,src:t,alt:o,onClick:a}){return h("span",{className:"fastboard-toolbar-app-icon",children:[r(P,{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 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]},ro=Object.keys(ae);function fe(){const{theme:e,memberState:t,setStrokeColor:o,writable:a}=i.useContext(v),n=t==null?void 0:t.strokeColor,s=!a;return r("div",{className:u.default("fastboard-toolbar-color-box",e),children:ro.map(l=>r("div",{className:u.default("fastboard-toolbar-color-item",e),onClick:()=>o(ae[l]),children:r("div",{className:u.default("fastboard-toolbar-color-border",e,{active:n&&$e(n,ae[l])}),children:r("button",{className:u.default("fastboard-toolbar-color-btn"),style:{background:l},disabled:s,onClick:c=>{c.stopPropagation(),o(ae[l])}})})},l))})}function je(){const{theme:e,writable:t,memberState:o,setStrokeWidth:a}=i.useContext(v),{activeColor:n}=z[e],s=(o==null?void 0:o.strokeWidth)||0;return r(ve.default,{disabled:!t,className:u.default("fastboard-toolbar-slider",e),trackStyle:{background:n},handleStyle:{border:`1px solid ${n}`},value:s,onChange:a,min:1,max:32})}function ao(){const e=G(),{theme:t,icons:o,writable:a,setAppliance:n,memberState:s,i18n:l}=i.useContext(v),c=i.useCallback(()=>{n(b.ApplianceNames.pencil)},[n]),d=(s==null?void 0:s.currentApplianceName)===b.ApplianceNames.pencil,f=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||q).changeToPencil;return r("span",{className:"fastboard-toolbar-btn-interactive",children:r(M.default,{className:"fastboard-tip",content:no(),theme:t,placement:"right-start",trigger:"click",offset:_,arrow:!1,interactive:!0,children:h(P,{content:ee(l==null?void 0:l.t("pencil"),x),active:d,onClick:c,children:[r(w,{fallback:r(k.Pencil,{theme:t,active:d}),src:f?o==null?void 0:o.pencilIconDisable:o==null?void 0:o.pencilIcon,alt:"[pencil]"}),r("span",{className:"fastboard-toolbar-triangle"})]})})})}function no(){return h("div",{className:"fastboard-toolbar-panel pencil",children:[r(je,{}),r(F,{}),r(fe,{})]})}function io(){const e=G(),{theme:t,icons:o,writable:a,setAppliance:n,memberState:s,i18n:l}=i.useContext(v),c=i.useCallback(()=>{n(b.ApplianceNames.text)},[n]),d=(s==null?void 0:s.currentApplianceName)===b.ApplianceNames.text,f=!a,x=((e==null?void 0:e.config.joinRoom.hotKeys)||q).changeToText;return r("span",{className:"fastboard-toolbar-btn-interactive",children:r(M.default,{className:"fastboard-tip",content:lo(),theme:t,placement:"right-start",trigger:"click",offset:_,arrow:!1,interactive:!0,children:h(P,{content:ee(l==null?void 0:l.t("text"),x),active:d,onClick:c,children:[r(w,{fallback:r(k.Text,{theme:t,active:d}),src:f?o==null?void 0:o.textIconDisable:o==null?void 0:o.textIcon,alt:"[text]"}),r("span",{className:"fastboard-toolbar-triangle"})]})})})}function lo(){return r("div",{className:"fastboard-toolbar-panel text",children:r(fe,{})})}const so=new Set([...ze,...Te]);function co(){const{theme:e,memberState:t,i18n:o}=i.useContext(v),a=t==null?void 0:t.currentApplianceName,n=t==null?void 0:t.shapeType,s=a===b.ApplianceNames.shape?n:a,l=so.has(s),c=pe[s]||k.Rectangle;return r("span",{className:"fastboard-toolbar-btn-interactive",children:r(M.default,{className:"fastboard-tip",content:po(),theme:e,placement:"right-start",trigger:"click",offset:_,arrow:!1,interactive:!0,children:h(P,{content:o==null?void 0:o.t("shape"),active:l,children:[r(c,{theme:e,active:l}),r("span",{className:"fastboard-toolbar-triangle"})]})})})}function po(){return h("div",{className:"fastboard-toolbar-panel shapes",children:[r(bo,{}),r(F,{}),r(je,{}),r(F,{}),r(fe,{})]})}function bo(){const{i18n:e}=i.useContext(v);return h("div",{className:"fastboard-toolbar-shapes",children:[ze.map(t=>r(fo,{content:e==null?void 0:e.t(t),Appliance:t,Icon:pe[t]},t)),Te.map(t=>r(uo,{content:e==null?void 0:e.t(t),shape:t,Icon:pe[t]},t))]})}function fo({content:e,Appliance:t,Icon:o}){const{theme:a,writable:n,setAppliance:s,memberState:l}=i.useContext(v),c=l==null?void 0:l.currentApplianceName;return r(P,{content:e,disabled:!n,placement:"top",onClick:()=>s(t),children:r(o,{theme:a,active:c===t})})}function uo({content:e,shape:t,Icon:o}){const{theme:a,writable:n,setAppliance:s,memberState:l}=i.useContext(v),p=(l==null?void 0:l.currentApplianceName)===b.ApplianceNames.shape&&(l==null?void 0:l.shapeType);return r(P,{content:e,disabled:!n,placement:"top",onClick:()=>s(b.ApplianceNames.shape,t),children:r(o,{theme:a,active:p===t})})}function go(){var y,T,Z,U,N,B,C;const e=G(),t=i.useRef(null),[o,a]=i.useState(0),[n,s]=i.useState(0),l=(Z=(T=(y=e==null?void 0:e.config.toolbar)==null?void 0:y.apps)==null?void 0:T.enable)!=null?Z:!0,c=n<$*Le+48,p=de(n-48*(c?3:1),Vt,Ut),d=Math.max(n-p-1,0),f=o===0,x=o===d,g=i.useCallback(I=>{a(de(o+I,0,d))},[d,o]);return i.useEffect(()=>{t.current&&(t.current.scrollTop=o)},[o]),i.useEffect(()=>{var L,Y;const I=(Y=(L=t.current)==null?void 0:L.parentElement)==null?void 0:Y.parentElement;if(I){const{paddingTop:R,paddingBottom:He}=getComputedStyle(I),Ge=parseInt(R)+parseInt(He)||0,xe=new ResizeObserver(()=>{s(I.getBoundingClientRect().height-Ge)});return xe.observe(I),()=>xe.disconnect()}},[]),h(X,{children:[c&&r(Ft,{scrollTo:g,disabled:f}),h("div",{ref:t,className:`${ue}-section`,style:{height:`${p}px`,overflow:c?"hidden":"visible"},children:[r(Yt,{}),r(Qt,{}),r(ao,{}),r(io,{}),r(co,{}),r(qt,{}),r(Kt,{}),l&&r(eo,{content:(N=(U=e==null?void 0:e.config.toolbar)==null?void 0:U.apps)==null?void 0:N.content,onClick:(C=(B=e==null?void 0:e.config.toolbar)==null?void 0:B.apps)==null?void 0:C.onClick})]}),c&&r(Jt,{scrollTo:g,disabled:x})]})}const v=i.createContext(A({theme:"light"},Gt)),ue="fastboard-toolbar",De=({theme:e="light",icons:t,room:o,i18n:a})=>{const[n,s]=i.useState(!0),l=Ht(o),c=i.useCallback(()=>s(d=>!d),[]),p=!l.writable;return r(v.Provider,{value:O(A({theme:e,icons:t},l),{i18n:a}),children:h("div",{className:u.default(ue,e),children:[n?r(P,{content:a==null?void 0:a.t("collapse"),onClick:c,children:r(w,{fallback:r(k.Collapse,{theme:e}),src:p?t==null?void 0:t.collapseIconDisable:t==null?void 0:t.collapseIcon})}):r(P,{content:a==null?void 0:a.t("expand"),onClick:c,children:r(w,{fallback:r(k.Expand,{theme:e}),src:p?t==null?void 0:t.expandIconDisable:t==null?void 0:t.expandIcon})}),n&&h(X,{children:[r(F,{}),r(go,{})]})]})})};function ho({theme:e="light",active:t}){const o=z[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:h("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 xo({theme:e="light",active:t}){const o=z[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:h("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 ge="fastboard-redo-undo";function We({room:e,theme:t="light",undoIcon:o,undoIconDisable:a,redoIcon:n,redoIconDisable:s,i18n:l}){const[c,p]=i.useState(!1),[d,f]=i.useState(0),[x,g]=i.useState(0);i.useEffect(()=>{if(e){p(e.isWritable),e.isWritable&&(e.disableSerialization=!1);const T=()=>p((e==null?void 0:e.isWritable)||!1);return e.callbacks.on("onEnableWriteNowChanged",T),e.callbacks.on("onCanUndoStepsUpdate",f),e.callbacks.on("onCanRedoStepsUpdate",g),()=>{e.callbacks.off("onEnableWriteNowChanged",T),e.callbacks.off("onCanUndoStepsUpdate",f),e.callbacks.off("onCanRedoStepsUpdate",g)}}},[e]);const y=!c;return h("div",{className:u.default(ge,t),children:[r(M.default,{className:"fastboard-tip",content:l==null?void 0:l.t("undo"),theme:t,disabled:y,placement:"top",duration:300,offset:D,children:r("button",{className:u.default(`${ge}-btn`,"undo",t),disabled:y||d===0,onClick:i.useCallback(()=>e&&e.undo(),[e]),children:r(w,{fallback:r(ho,{theme:t}),src:d===0?a:o,alt:"[undo]"})})}),r(M.default,{className:"fastboard-tip",content:l==null?void 0:l.t("redo"),theme:t,disabled:y,placement:"top",duration:300,offset:D,children:r("button",{className:u.default(`${ge}-btn`,"redo",t),disabled:y||x===0,onClick:i.useCallback(()=>e&&e.redo(),[e]),children:r(w,{fallback:r(xo,{theme:t}),src:x===0?s:n,alt:"[redo]"})})})]})}function mo({theme:e="light",active:t}){const o=z[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 wo({theme:e="light",active:t}){const o=z[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 ko({theme:e="light",active:t}){const o=z[e],a=t?o.activeColor:o.color;return r("svg",{viewBox:"0 0 24 24",children:h("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 J="fastboard-zoom-control",E=[.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:o}=E,a=o-1;if(e<E[0])return E[0];if(e>E[a])return E[a];for(let n=0;n<o;++n){const s=E[n],l=n===0?-1/0:(E[n-1]+s)/2,c=n===a?1/0:(E[n+1]+s)/2;if(l<=e&&e<=c)return E[de(n+t,0,a)]}return 1}function Be({room:e,manager:t,theme:o="light",resetIcon:a,resetIconDisable:n,minusIcon:s,minusIconDisable:l,plusIcon:c,plusIconDisable:p,i18n:d}){const[f,x]=i.useState(!1),[g,y]=i.useState(1),T=i.useCallback(()=>{if(e==null?void 0:e.isWritable)if(t)t.mainView.moveCamera({scale:1,centerX:0,centerY:0});else{const{scenes:B,index:C}=e.state.sceneState;B[C].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:ne(g,1),centerX:0,centerY:0}):e.moveCamera({scale:ne(g,1),centerX:0,centerY:0}))},[e,t,g]),U=i.useCallback(()=>{(e==null?void 0:e.isWritable)&&(t?t.mainView.moveCamera({scale:ne(g,-1),centerX:0,centerY:0}):e.moveCamera({scale:ne(g,-1),centerX:0,centerY:0}))},[e,t,g]);i.useEffect(()=>{e&&(x(e.isWritable),y(e.state.cameraState.scale)),t&&y(t.mainView.camera.scale);const B=L=>{L.cameraState&&y(L.cameraState.scale)},C=({scale:L})=>y(L),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",B)),()=>{e&&(e.callbacks.off("onEnableWriteNowChanged",I),e.callbacks.off("onRoomStateChanged",B),t==null||t.mainView.callbacks.off("onCameraUpdated",C))}},[e,t]);const N=!f;return h("div",{className:u.default(J,o),children:[r(M.default,{className:"fastboard-tip",content:d==null?void 0:d.t("zoomOut"),theme:o,disabled:N,placement:"top",duration:300,offset:D,children:r("button",{className:u.default(`${J}-btn`,"minus",o),disabled:N,onClick:U,children:r(w,{fallback:r(mo,{theme:o}),src:N?l:s,alt:"[minus]"})})}),r("span",{className:u.default(`${J}-scale`,o),children:Math.ceil(g*100)}),r("span",{className:u.default(`${J}-percent`,o),children:"%"}),r(M.default,{className:"fastboard-tip",content:d==null?void 0:d.t("zoomIn"),theme:o,disabled:N,placement:"top",duration:300,offset:D,children:r("button",{className:u.default(`${J}-btn`,"plus",o),disabled:N,onClick:Z,children:r(w,{fallback:r(wo,{theme:o}),src:N?p:c,alt:"[plus]"})})}),r(M.default,{className:"fastboard-tip",content:d==null?void 0:d.t("reset"),theme:o,disabled:N,placement:"top",duration:300,offset:D,children:r("button",{className:u.default(`${J}-btn`,"reset",o),disabled:N,onClick:T,children:r(w,{fallback:r(ko,{theme:o}),src:N?n:a,alt:"[reset]"})})})]})}function vo({theme:e="light",active:t}){const o=z[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=z[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 yo({theme:e="light",active:t}){const o=z[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 H="fastboard-page-control";function Ee({room:e,manager:t,theme:o="light",addIcon:a,addIconDisable:n,prevIcon:s,prevIconDisable:l,nextIcon:c,nextIconDisable:p,i18n:d}){const[f,x]=i.useState(!1),[g,y]=i.useState(0),[T,Z]=i.useState(0),U=i.useCallback(async()=>{if(t&&e){await t.switchMainViewToWriter();const I=e.state.sceneState.contextPath;e.putScenes(I,[{}],g+1),await t.setMainViewSceneIndex(g+1)}else if(!t&&e){const I=e.state.sceneState.contextPath;e.putScenes(I,[{}],g+1),e.setSceneIndex(g+1)}},[e,t,g]),N=i.useCallback(()=>{(e==null?void 0:e.isWritable)&&(t?t.setMainViewSceneIndex(g-1):e.pptPreviousStep())},[e,t,g]),B=i.useCallback(()=>{(e==null?void 0:e.isWritable)&&(t?t.setMainViewSceneIndex(g+1):e.pptNextStep())},[e,t,g]);i.useEffect(()=>{e&&(x(e.isWritable),y(e.state.sceneState.index),Z(e.state.sceneState.scenes.length));const I=R=>{R.sceneState&&(y(R.sceneState.index),Z(R.sceneState.scenes.length))},L=R=>{e&&R===0&&(y(e.state.sceneState.index),Z(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",L)),()=>{e&&(e.callbacks.off("onEnableWriteNowChanged",Y),e.callbacks.off("onRoomStateChanged",I),t==null||t.callbacks.off("mainViewModeChange",L))}},[e,t]);const C=!f;return h("div",{className:u.default(H,o),children:[r(M.default,{className:"fastboard-tip",content:d==null?void 0:d.t("prevPage"),theme:o,disabled:C,placement:"top",duration:300,offset:D,children:r("button",{className:u.default(`${H}-btn`,"prev",o),disabled:C||g===0,onClick:N,children:r(w,{fallback:r(Co,{theme:o}),src:C?l:s,alt:"[prev]"})})}),r("span",{className:u.default(`${H}-page`,o),children:T===0?"\u2026":g+1}),r("span",{className:u.default(`${H}-slash`,o),children:"/"}),r("span",{className:u.default(`${H}-page-count`,o),children:T}),r(M.default,{className:"fastboard-tip",content:d==null?void 0:d.t("nextPage"),theme:o,disabled:C,placement:"top",duration:300,offset:D,children:r("button",{className:u.default(`${H}-btn`,"next",o),disabled:C||g===T-1,onClick:B,children:r(w,{fallback:r(yo,{theme:o}),src:C?p:c,alt:"[next]"})})}),r(M.default,{className:"fastboard-tip",content:d==null?void 0:d.t("addPage"),theme:o,disabled:C,placement:"top",duration:300,offset:D,children:r("button",{className:u.default(`${H}-btn`,"add",o),disabled:C,onClick:U,children:r(w,{fallback:r(vo,{theme:o}),src:C?n:a,alt:"[add]"})})})]})}function Io({instance:e}){const[t]=i.useState(()=>new et),o=i.useCallback(p=>t.schedule(p?()=>e.mount(p):()=>e.unmount()),[e,t]),{Toolbar:a=!0,RedoUndo:n=!0,ZoomControl:s=!0,PageControl:l=!0}=e.config.layout||{},c={room:e.room,manager:e.manager,i18n:e.i18n};return r(ie.Context.Provider,{value:e,children:h("div",{className:"fastboard-root",children:[!e.room&&r("div",{className:"fastboard-loading",children:"Loading\u2026"}),r("div",{className:"fastboard-view",ref:o}),a&&r("div",{className:"fastboard-left",children:r(De,A({},c))}),(n||s)&&h("div",{className:"fastboard-bottom-left",children:[n&&r(We,A({},c)),s&&r(Be,A({},c))]}),l&&r("div",{className:"fastboard-bottom-right",children:r(Ee,A({},c))})]})})}class ie{constructor(t){S(this,"config");S(this,"sdk",null);S(this,"room",null);S(this,"manager",null);S(this,"i18n",null);S(this,"ready",!1);S(this,"resolveReady");S(this,"readyPromise");S(this,"target",null);S(this,"collector",null);this.config=A({},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 dt(this.config.sdkConfig,this.config.joinRoom,this.config.managerConfig||{},this.config.language||"en-US");this.accept(t),this.resolveReady()}bindElement(t){this.target&&this.target!==t&&ce.default.unmountComponentAtNode(this.target),this.target=t,this.forceUpdate()}bindCollector(t){this.collector=t,this.manager&&t&&this.manager.bindCollectorContainer(t)}updateLayout(t){this.config.layout=t,this.forceUpdate()}async forceUpdate(){await this.readyPromise,this.target&&ce.default.render(r(Io,{instance:this}),this.target)}accept({sdk:t,room:o,manager:a,i18n:n}){this.sdk=t,this.room=o,this.manager=a,this.i18n=n,this.forceUpdate()}async dispose(){this.room&&await this.unmount(),this.target&&(ce.default.unmountComponentAtNode(this.target),this.sdk=this.room=this.manager=this.target=null)}async mount(t){if(await this.readyPromise,!this.manager)throw new Error("[WhiteboardApp] mounted, but not found window manager");this.manager.bindContainer(t),this.collector&&this.manager.bindCollectorContainer(this.collector)}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,scenes:t.scenes},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"}})}insertMedia({title:t,src:o}){if(!this.manager)throw new Error("[WhiteboardApp] cannot insert app before mounted");return this.manager.addApp({kind:j.BuiltinApps.MediaPlayer,options:{title:t},attributes:{src:o}})}async changeLanguage(t){var o;try{await((o=this.i18n)==null?void 0:o.changeLanguage(t))}finally{await this.forceUpdate()}}}S(ie,"Context",i.createContext(null));function G(){return i.useContext(ie.Context)}var Ao=`.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}.fastboard{width:100%;height:100%;position:relative}.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
+ `;_e(Ao);class Ze{constructor(t){S(this,"_instance");this.config=t,this._instance=new ie(t)}get room(){return this._instance.room}get manager(){return this._instance.manager}get sdk(){return this._instance.sdk}get i18n(){return this._instance.i18n}get target(){return this._instance.target}get collector(){return this._instance.collector}bindElement(t){this._instance.bindElement(t||null)}bindCollector(t){this._instance.bindCollector(t||null)}get layout(){return this._instance.config.layout}updateLayout(t){this._instance.updateLayout(t)}insertMedia(t){this._instance.insertMedia(t)}insertDocs(t,o){if(typeof t=="object"&&"fileType"in t)return this._instance.insertDocs(t);if(o&&o.status!=="Finished")throw new Error("[WhiteboardApp] cannot insert a converting doc");if(o&&o.progress){const a=o.progress.convertedFileList.map((d,f)=>({name:String(f+1),ppt:{src:d.conversionFileUrl,width:d.width,height:d.height,previewURL:d.preview}})),n=ot(),s=`/${o.uuid}/${n}`,{scenesWithoutPPT:l,taskId:c,url:p}=rt(a);return c&&p?this._instance.insertDocs({fileType:"pptx",scenePath:s,taskId:c,title:t,url:p,scenes:l}):this._instance.insertDocs({fileType:"pdf",scenePath:s,scenes:a,title: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 So="0.0.10";function Re(e){const t=i.useRef(e);return i.useEffect(()=>{t.current=e},[e]),t.current}const Mo=[];function Po(){const[,e]=i.useState({});return i.useCallback(()=>e({}),Mo)}function No(e){const t=i.useCallback(()=>{if(e)switch(e.phase){case b.PlayerPhase.WaitingFirstFrame:case b.PlayerPhase.Pause:case b.PlayerPhase.Ended:{e.play();break}case b.PlayerPhase.Playing:{e.pause();break}}},[e]),o=i.useCallback(f=>{e&&e.seekToProgressTime(f)},[e]),a=Re(e),n=Po(),s=i.useCallback(f=>{e&&(e.playbackSpeed=f,n())},[n,e]);i.useEffect(()=>{!a&&e&&n()},[n,a,e]),i.useEffect(()=>{if(e)return e.callbacks.on("onPhaseChanged",n),e.callbacks.on("onProgressTimeChanged",n),()=>{e.callbacks.off("onPhaseChanged",n),e.callbacks.off("onProgressTimeChanged",n)}},[n,e]);const l=e?e.phase:b.PlayerPhase.WaitingFirstFrame,c=e?e.progressTime:0,p=e?e.timeDuration:0,d=e?e.playbackSpeed:1;return{phase:l,currentTime:c,totalTime:p,speed:d,setSpeed:s,togglePlay:t,seekToProgressTime:o}}const zo=e=>{const t=m(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{d:"M12 4V2A10 10 0 0 0 2 12h2a8 8 0 0 1 8-8z",fill:t})})},To=e=>{const t=m(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{d:"M14 19h4V5h-4M6 19h4V5H6v14z",fill:t})})},Lo=e=>{const t=m(e);return r("svg",{viewBox:"0 0 24 24",children:r("path",{d:"M8 5.14v14l11-7l-11-7z",fill:t})})},he={Play:i.memo(Lo),Pause:i.memo(To),Loading:i.memo(zo)},jo=i.forwardRef((e,t)=>{const{theme:o,content:a,disabled:n,active:s,onClick:l,interactive:c,placement:p="top",children:d}=e;return r(M.default,{className:"fastboard-tip",content:a,interactive:c,theme:o,disabled:n,placement:p,offset:D,duration:300,children:r("button",{ref:t,className:u.default("fastboard-player-control-btn",o,{active:s}),onClick:l,disabled:n,children:d})})}),W="fastboard-player-control";function Do(s){var l=s,{autoHide:e=!1,player:t,theme:o="light",i18n:a}=l,n=se(l,["autoHide","player","theme","i18n"]);const[c,p]=i.useState(0),d=No(t);i.useEffect(()=>{p(d.currentTime)},[d.currentTime]),i.useEffect(()=>{d.currentTime!==c&&d.seekToProgressTime(c)},[c]);const f=d.phase===b.PlayerPhase.WaitingFirstFrame||d.phase===b.PlayerPhase.Buffering,x=d.phase===b.PlayerPhase.Playing,{activeColor:g}=z[o];return h("div",{className:u.default(W,o,{"auto-hide":e}),children:[r("button",{className:u.default(`${W}-btn`,f?"loading":x?"pause":"play",o),disabled:f,onClick:d.togglePlay,children:r(w,{fallback:f?r(he.Loading,{theme:o}):x?r(he.Pause,{theme:o}):r(he.Play,{theme:o}),src:f?n.loadingIcon:x?n.pauseIcon:n.playIcon,alt:f?"[loading]":x?"[pause]":"[play]"})}),r("span",{className:u.default(`${W}-slider`,{loading:f},o),children:r(ve.default,{disabled:f,trackStyle:{background:g},handleStyle:{border:`1px solid ${g}`},value:c,onChange:p,min:0,max:d.totalTime,step:100})}),r("span",{className:u.default(`${W}-current`,o),children:Oe(d.currentTime)}),r("span",{className:u.default(`${W}-slash`,o),children:"/"}),r("span",{className:u.default(`${W}-total`,o),children:Oe(d.totalTime)}),r("span",{className:`${W}-btn-interactive`,children:r(M.default,{className:"fastboard-tip",content:Bo(d),theme:o,placement:"top-end",trigger:"click",offset:D,arrow:!1,interactive:!0,children:r(jo,{content:a==null?void 0:a.t("speed"),theme:o,disabled:f,children:h("span",{className:u.default(`${W}-speed-text`,o),children:[d.speed,"x"]})})})})]})}function Oe(e){let t=e/1e3;const o=Math.floor(t/60);return t=Math.floor(t)%60,`${String(o).padStart(2,"0")}:${String(t).padStart(2,"0")}`}const Wo=[2,1.5,1.25,1,.75,.5];function Bo({speed:e,setSpeed:t}){return r("div",{className:u.default(`${W}-panel`,"speed"),children:Wo.map(o=>h("button",{className:u.default(`${W}-btn`,"speed",{active:o===e}),onClick:()=>t(o),children:[o,"x"]},o))})}function Eo(...e){const t=i.useRef(null);return i.useEffect(()=>{for(const o of e)!o||(typeof o=="function"?o(t.current):o.current=t.current)},[e]),t}const Zo=i.forwardRef((a,o)=>{var n=a,{app:e}=n,t=se(n,["app"]);const s=i.useRef(null),l=Eo(o,s),c=Re(e);return i.useEffect(()=>{c&&c!==e&&c.bindElement(null),e&&e.bindElement(l.current)},[e,c,l]),r("div",O(A({className:"fastboard"},t),{ref:l}))}),Ro=j.WindowManager.register.bind(j.WindowManager);async function Oo(e){const t=new Ze(e);return await t._instance.readyPromise,t}exports.Fastboard=Zo;exports.PageControl=Ee;exports.PlayerControl=Do;exports.RedoUndo=We;exports.Toolbar=De;exports.WhiteboardApp=Ze;exports.ZoomControl=Be;exports.createWhiteboardApp=Oo;exports.register=Ro;exports.version=So;
14
14
  //# sourceMappingURL=index.cjs.js.map