@netless/fastboard-core 0.2.12 → 0.3.0-canary.1

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.js CHANGED
@@ -58,21 +58,89 @@ var __toCommonJS = /* @__PURE__ */ ((cache) => {
58
58
  // src/index.ts
59
59
  var src_exports = {};
60
60
  __export(src_exports, {
61
+ FastboardApp: () => FastboardApp,
62
+ FastboardPlayer: () => FastboardPlayer,
63
+ convertedFileToScene: () => convertedFileToScene,
61
64
  createFastboard: () => createFastboard,
62
- replayFastboard: () => replayFastboard
65
+ genUID: () => genUID,
66
+ getImageSize: () => getImageSize,
67
+ makeSlideParams: () => makeSlideParams,
68
+ readable: () => readable,
69
+ replayFastboard: () => replayFastboard,
70
+ warn: () => warn,
71
+ writable: () => writable
63
72
  });
64
73
 
65
- // src/minimal.ts
66
- var import_white_web_sdk = require("white-web-sdk");
67
- var import_window_manager4 = require("@netless/window-manager");
68
-
69
- // src/helpers/utils.ts
70
- var import_window_manager = require("@netless/window-manager");
74
+ // src/utils/store.ts
71
75
  function noop() {
72
76
  }
73
77
  function safe_not_equal(a, b) {
74
78
  return a != a ? b == b : a !== b || a && typeof a === "object" || typeof a === "function";
75
79
  }
80
+ function readable(value, start = noop) {
81
+ let stop;
82
+ const subscribers = /* @__PURE__ */ new Set();
83
+ function set(new_value) {
84
+ if (safe_not_equal(value, new_value)) {
85
+ value = new_value;
86
+ if (stop) {
87
+ for (const run of subscribers) {
88
+ run(value);
89
+ }
90
+ }
91
+ }
92
+ }
93
+ function subscribe(run) {
94
+ subscribers.add(run);
95
+ if (subscribers.size === 1) {
96
+ stop = start(set) || noop;
97
+ }
98
+ run(value);
99
+ return () => {
100
+ subscribers.delete(run);
101
+ if (subscribers.size === 0) {
102
+ stop && stop();
103
+ stop = void 0;
104
+ }
105
+ };
106
+ }
107
+ function reaction(run) {
108
+ subscribers.add(run);
109
+ if (subscribers.size === 1) {
110
+ stop = start(set) || noop;
111
+ }
112
+ return () => {
113
+ subscribers.delete(run);
114
+ if (subscribers.size === 0) {
115
+ stop && stop();
116
+ stop = void 0;
117
+ }
118
+ };
119
+ }
120
+ return {
121
+ get value() {
122
+ return value;
123
+ },
124
+ subscribe,
125
+ reaction
126
+ };
127
+ }
128
+ function writable(value, start = noop, set) {
129
+ const internal = readable(value, start);
130
+ return {
131
+ get value() {
132
+ return internal.value;
133
+ },
134
+ subscribe: internal.subscribe,
135
+ reaction: internal.reaction,
136
+ set,
137
+ update(fn) {
138
+ set(fn(value));
139
+ }
140
+ };
141
+ }
142
+
143
+ // src/utils/misc.ts
76
144
  function getImageSize(url, fallback) {
77
145
  return new Promise((resolve) => {
78
146
  const img = new Image();
@@ -99,7 +167,7 @@ function makeSlideParams(scenes) {
99
167
  url = "https" + match.groups.prefix;
100
168
  break;
101
169
  }
102
- return { emptyScenes, taskId, url };
170
+ return { scenes: emptyScenes, taskId, url };
103
171
  }
104
172
  function convertedFileToScene(f, i) {
105
173
  return {
@@ -112,14 +180,10 @@ function convertedFileToScene(f, i) {
112
180
  }
113
181
  };
114
182
  }
115
- function ensureWindowManager(joinRoom) {
116
- if (!joinRoom.invisiblePlugins || !joinRoom.invisiblePlugins.includes(import_window_manager.WindowManager)) {
117
- joinRoom.invisiblePlugins = [...joinRoom.invisiblePlugins || [], import_window_manager.WindowManager];
118
- }
119
- return joinRoom;
120
- }
121
- var SOUP = "!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
122
- var SOUP_LEN = SOUP.length;
183
+
184
+ // src/utils/uid.ts
185
+ var SOUP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
186
+ var SOUP_LEN = 62;
123
187
  var ID_LEN = 20;
124
188
  var reusedIdCarrier = /* @__PURE__ */ Array(ID_LEN);
125
189
  function genUID() {
@@ -129,75 +193,46 @@ function genUID() {
129
193
  return reusedIdCarrier.join("");
130
194
  }
131
195
 
132
- // src/impl/app.ts
133
- var import_window_manager2 = require("@netless/window-manager");
134
-
135
- // src/helpers/emitter.ts
136
- var FastboardEmitter = class {
137
- constructor() {
138
- this.listeners = /* @__PURE__ */ new Set();
139
- }
140
- get length() {
141
- return this.listeners.size;
142
- }
143
- dispatch(message) {
144
- this.listeners.forEach((callback) => callback(message));
145
- }
146
- addListener(listener) {
147
- this.listeners.add(listener);
148
- }
149
- removeListener(listener) {
150
- this.listeners.delete(listener);
151
- }
196
+ // src/utils/warn.ts
197
+ var warnings = {
198
+ "no-ppt-in-scenes": "You're probably inserting the slide app in a wrong way, there shouldn't exist `scenes[0].ppt`."
152
199
  };
200
+ var warned = /* @__PURE__ */ new Set();
201
+ function warn(id) {
202
+ if (warned.has(id))
203
+ return;
204
+ warned.add(id);
205
+ console.warn(warnings[id]);
206
+ }
153
207
 
154
- // src/helpers/value.ts
155
- function createValue(value, effect, setValue = noop) {
156
- const emitter = new FastboardEmitter();
157
- function set(newValue) {
158
- if (safe_not_equal(value, newValue)) {
159
- emitter.dispatch(value = newValue);
160
- }
161
- }
162
- const dispose = effect(set) || noop;
163
- function subscribe(callback) {
164
- emitter.addListener(callback);
165
- callback(value);
166
- return () => emitter.removeListener(callback);
167
- }
168
- function reaction(callback) {
169
- emitter.addListener(callback);
170
- return () => emitter.removeListener(callback);
208
+ // src/impl/FastboardApp.ts
209
+ var import_white_web_sdk = require("white-web-sdk");
210
+ var import_window_manager2 = require("@netless/window-manager");
211
+
212
+ // src/internal.ts
213
+ var import_window_manager = require("@netless/window-manager");
214
+ function ensure_window_manager(joinRoom) {
215
+ if (!joinRoom.invisiblePlugins || !joinRoom.invisiblePlugins.includes(import_window_manager.WindowManager)) {
216
+ joinRoom.invisiblePlugins = [...joinRoom.invisiblePlugins || [], import_window_manager.WindowManager];
171
217
  }
172
- return {
173
- get value() {
174
- return value;
175
- },
176
- subscribe,
177
- reaction,
178
- setValue,
179
- dispose
180
- };
218
+ return joinRoom;
219
+ }
220
+ function transform_app_status(status) {
221
+ return status === "start" ? "loading" : status === "failed" ? "failed" : "idle";
181
222
  }
182
223
 
183
- // src/impl/app.ts
224
+ // src/impl/FastboardApp.ts
184
225
  var FastboardAppBase = class {
185
226
  constructor(sdk, room, manager, hotKeys) {
186
227
  this.sdk = sdk;
187
228
  this.room = room;
188
229
  this.manager = manager;
189
230
  this.hotKeys = hotKeys;
190
- this._disposers = [];
191
231
  this._destroyed = false;
192
- this.createValue = (...args) => {
193
- const value = createValue(...args);
194
- this._disposers.push(value.dispose);
195
- return value;
196
- };
197
232
  }
198
233
  _assertNotDestroyed() {
199
234
  if (this._destroyed) {
200
- throw new Error("[FastboardApp] Can not call any method on destroyed FastboardApp.");
235
+ throw new Error("FastboardApp has been destroyed");
201
236
  }
202
237
  }
203
238
  _addRoomListener(name, listener) {
@@ -205,10 +240,10 @@ var FastboardAppBase = class {
205
240
  this.room.callbacks.on(name, listener);
206
241
  return () => this.room.callbacks.off(name, listener);
207
242
  }
208
- _addManagerListener(name, set) {
243
+ _addManagerListener(name, listener) {
209
244
  this._assertNotDestroyed();
210
- this.manager.emitter.on(name, set);
211
- return () => this.manager.emitter.off(name, set);
245
+ this.manager.emitter.on(name, listener);
246
+ return () => this.manager.emitter.off(name, listener);
212
247
  }
213
248
  _addMainViewListener(name, listener) {
214
249
  this._assertNotDestroyed();
@@ -216,8 +251,6 @@ var FastboardAppBase = class {
216
251
  return () => this.manager.mainView.callbacks.off(name, listener);
217
252
  }
218
253
  destroy() {
219
- this._disposers.forEach((dispose) => dispose());
220
- this._disposers.length = 0;
221
254
  this._destroyed = true;
222
255
  this.manager.destroy();
223
256
  return this.room.disconnect();
@@ -226,21 +259,18 @@ var FastboardAppBase = class {
226
259
  var FastboardApp = class extends FastboardAppBase {
227
260
  constructor() {
228
261
  super(...arguments);
229
- this.writable = this.createValue(this.room.isWritable, (set) => this._addRoomListener("onEnableWriteNowChanged", () => set(this.room.isWritable)), this.room.setWritable.bind(this.room));
230
- this.boxState = this.createValue(this.manager.boxState, (set) => this._addManagerListener("boxStateChange", set));
231
- this.focusedApp = this.createValue(this.manager.focused, (set) => this._addManagerListener("focusedChange", set));
232
- this.canRedoSteps = this.createValue(this.manager.canRedoSteps, (set) => this._addManagerListener("canRedoStepsChange", set));
233
- this.canUndoSteps = this.createValue(this.manager.canUndoSteps, (set) => this._addManagerListener("canUndoStepsChange", set));
234
- this.camera = this.createValue(this.manager.mainView.camera, (set) => this._addMainViewListener("onCameraUpdated", set));
235
- this.memberState = this.createValue(this.room.state.memberState, (set) => this._addRoomListener("onRoomStateChanged", ({ memberState: m }) => m && set(m)));
236
- this.sceneIndex = this.createValue(this.manager.mainViewSceneIndex, (set) => this._addManagerListener("mainViewSceneIndexChange", set), this.manager.setMainViewSceneIndex.bind(this.manager));
237
- this.sceneLength = this.createValue(this.manager.mainViewScenesLength, (set) => this._addManagerListener("mainViewScenesLengthChange", set));
262
+ this.writable = writable(this.room.isWritable, (set) => this._addRoomListener("onEnableWriteNowChanged", () => set(this.room.isWritable)), this.room.setWritable.bind(this.room));
263
+ this.boxState = readable(this.manager.boxState, (set) => this._addManagerListener("boxStateChange", set));
264
+ this.focusedApp = readable(this.manager.focused, (set) => this._addManagerListener("focusedChange", set));
265
+ this.canRedoSteps = readable(this.manager.canRedoSteps, (set) => this._addManagerListener("canRedoStepsChange", set));
266
+ this.canUndoSteps = readable(this.manager.canUndoSteps, (set) => this._addManagerListener("canUndoStepsChange", set));
267
+ this.camera = readable(this.manager.mainView.camera, (set) => this._addMainViewListener("onCameraUpdated", set));
268
+ this.memberState = readable(this.room.state.memberState, (set) => this._addRoomListener("onRoomStateChanged", ({ memberState: m }) => m && set(m)));
269
+ this.sceneIndex = writable(this.manager.mainViewSceneIndex, (set) => this._addManagerListener("mainViewSceneIndexChange", set), this.manager.setMainViewSceneIndex.bind(this.manager));
270
+ this.sceneLength = readable(this.manager.mainViewScenesLength, (set) => this._addManagerListener("mainViewScenesLengthChange", set));
238
271
  this._appsStatus = {};
239
- this.appsStatus = this.createValue({}, (set) => this._addManagerListener("loadApp", ({ kind, status, reason }) => {
240
- this._appsStatus[kind] = {
241
- status: status === "start" ? "loading" : status === "failed" ? "failed" : "idle",
242
- reason
243
- };
272
+ this.appsStatus = readable({}, (set) => this._addManagerListener("loadApp", ({ kind, status, reason }) => {
273
+ this._appsStatus[kind] = { status: transform_app_status(status), reason };
244
274
  set(this._appsStatus);
245
275
  }));
246
276
  }
@@ -254,11 +284,11 @@ var FastboardApp = class extends FastboardAppBase {
254
284
  }
255
285
  undo() {
256
286
  this._assertNotDestroyed();
257
- this.manager.mainView.undo();
287
+ this.manager.undo();
258
288
  }
259
289
  redo() {
260
290
  this._assertNotDestroyed();
261
- this.manager.mainView.redo();
291
+ this.manager.redo();
262
292
  }
263
293
  moveCamera(camera) {
264
294
  this._assertNotDestroyed();
@@ -274,7 +304,10 @@ var FastboardApp = class extends FastboardAppBase {
274
304
  }
275
305
  setAppliance(appliance, shape) {
276
306
  this._assertNotDestroyed();
277
- this.manager.mainView.setMemberState({ currentApplianceName: appliance, shapeType: shape });
307
+ this.manager.mainView.setMemberState({
308
+ currentApplianceName: appliance,
309
+ shapeType: shape
310
+ });
278
311
  }
279
312
  setStrokeWidth(strokeWidth) {
280
313
  this._assertNotDestroyed();
@@ -284,6 +317,18 @@ var FastboardApp = class extends FastboardAppBase {
284
317
  this._assertNotDestroyed();
285
318
  this.manager.mainView.setMemberState({ strokeColor });
286
319
  }
320
+ prevPage() {
321
+ this._assertNotDestroyed();
322
+ return this.manager.prevPage();
323
+ }
324
+ nextPage() {
325
+ this._assertNotDestroyed();
326
+ return this.manager.nextPage();
327
+ }
328
+ addPage(params) {
329
+ this._assertNotDestroyed();
330
+ return this.manager.addPage(params);
331
+ }
287
332
  async insertImage(url) {
288
333
  this._assertNotDestroyed();
289
334
  await this.manager.switchMainViewToWriter();
@@ -308,19 +353,20 @@ var FastboardApp = class extends FastboardAppBase {
308
353
  this.manager.moveCameraToContain({ originX, originY, width, height });
309
354
  }
310
355
  insertDocs(arg1, arg2) {
356
+ this._assertNotDestroyed();
311
357
  if (typeof arg1 === "object" && "fileType" in arg1) {
312
358
  return this._insertDocsImpl(arg1);
313
359
  } else if (arg2 && arg2.status !== "Finished") {
314
- throw new Error("[FastboardApp] Can not insert a converting doc.");
360
+ throw new Error("FastboardApp cannot insert a converting doc.");
315
361
  } else if (arg2 && arg2.progress) {
316
- const scenes = arg2.progress.convertedFileList.map(convertedFileToScene);
362
+ const title = arg1;
317
363
  const scenePath = `/${arg2.uuid}/${genUID()}`;
318
- const { emptyScenes, taskId, url } = makeSlideParams(scenes);
364
+ const scenes1 = arg2.progress.convertedFileList.map(convertedFileToScene);
365
+ const { scenes, taskId, url } = makeSlideParams(scenes1);
319
366
  if (taskId && url) {
320
- const title = arg1;
321
- return this._insertDocsImpl({ fileType: "pptx", scenePath, taskId, title, url, scenes: emptyScenes });
367
+ return this._insertDocsImpl({ fileType: "pptx", scenePath, scenes, title, taskId, url });
322
368
  } else {
323
- return this._insertDocsImpl({ fileType: "pdf", scenePath, scenes, title: arg1 });
369
+ return this._insertDocsImpl({ fileType: "pdf", scenePath, scenes: scenes1, title });
324
370
  }
325
371
  }
326
372
  }
@@ -334,6 +380,9 @@ var FastboardApp = class extends FastboardAppBase {
334
380
  options: { scenePath, title, scenes }
335
381
  });
336
382
  case "pptx":
383
+ if (scenes && scenes[0].ppt) {
384
+ warn("no-ppt-in-scenes");
385
+ }
337
386
  return this.manager.addApp({
338
387
  kind: "Slide",
339
388
  options: { scenePath, title, scenes },
@@ -371,24 +420,61 @@ var FastboardApp = class extends FastboardAppBase {
371
420
  });
372
421
  }
373
422
  };
423
+ async function createFastboard(_a) {
424
+ var _b = _a, {
425
+ sdkConfig,
426
+ joinRoom: _c
427
+ } = _b, _d = _c, { callbacks } = _d, joinRoomParams = __objRest(_d, ["callbacks"]), {
428
+ managerConfig
429
+ } = _b;
430
+ const sdk = new import_white_web_sdk.WhiteWebSdk(__spreadProps(__spreadValues({}, sdkConfig), {
431
+ useMobXState: true
432
+ }));
433
+ const hotKeys = __spreadProps(__spreadValues({}, import_white_web_sdk.DefaultHotKeys), {
434
+ changeToSelector: "s",
435
+ changeToLaserPointer: "z",
436
+ changeToPencil: "p",
437
+ changeToRectangle: "r",
438
+ changeToEllipse: "c",
439
+ changeToEraser: "e",
440
+ changeToText: "t",
441
+ changeToStraight: "l",
442
+ changeToArrow: "a",
443
+ changeToHand: "h"
444
+ });
445
+ const room = await sdk.joinRoom(__spreadProps(__spreadValues({
446
+ floatBar: true,
447
+ hotKeys
448
+ }, ensure_window_manager(joinRoomParams)), {
449
+ useMultiViews: true,
450
+ disableNewPencil: false,
451
+ disableMagixEventDispatchLimit: true
452
+ }), callbacks);
453
+ const manager = await import_window_manager2.WindowManager.mount(__spreadProps(__spreadValues({
454
+ cursor: true
455
+ }, managerConfig), {
456
+ room
457
+ }));
458
+ manager.mainView.setCameraBound({
459
+ minContentMode: (0, import_white_web_sdk.contentModeScale)(0.3),
460
+ maxContentMode: (0, import_white_web_sdk.contentModeScale)(3)
461
+ });
462
+ return new FastboardApp(sdk, room, manager, hotKeys);
463
+ }
374
464
 
375
- // src/impl/player.ts
465
+ // src/impl/FastboardPlayer.ts
466
+ var import_white_web_sdk2 = require("white-web-sdk");
467
+ var import_window_manager3 = require("@netless/window-manager");
376
468
  var FastboardPlayerBase = class {
377
469
  constructor(sdk, player, manager) {
378
470
  this.sdk = sdk;
379
471
  this.player = player;
380
472
  this.manager = manager;
381
- this._disposers = [];
382
473
  this._destroyed = false;
383
- this.createValue = (...args) => {
384
- const value = createValue(...args);
385
- this._disposers.push(value.dispose);
386
- return value;
387
- };
388
474
  }
389
475
  _assertNotDestroyed() {
390
476
  if (this._destroyed) {
391
- throw new Error("[FastboardPlayer] Can not call any method on destroyed FastboardPlayer.");
477
+ throw new Error("FastboardApp has been destroyed");
392
478
  }
393
479
  }
394
480
  _addPlayerListener(name, listener) {
@@ -396,10 +482,10 @@ var FastboardPlayerBase = class {
396
482
  this.player.callbacks.on(name, listener);
397
483
  return () => this.player.callbacks.off(name, listener);
398
484
  }
399
- _addManagerListener(name, set) {
485
+ _addManagerListener(name, listener) {
400
486
  this._assertNotDestroyed();
401
- this.manager.emitter.on(name, set);
402
- return () => this.manager.emitter.off(name, set);
487
+ this.manager.emitter.on(name, listener);
488
+ return () => this.manager.emitter.off(name, listener);
403
489
  }
404
490
  _addMainViewListener(name, listener) {
405
491
  this._assertNotDestroyed();
@@ -407,30 +493,37 @@ var FastboardPlayerBase = class {
407
493
  return () => this.manager.mainView.callbacks.off(name, listener);
408
494
  }
409
495
  destroy() {
410
- this._disposers.forEach((dispose) => dispose());
411
- this._disposers.length = 0;
412
496
  this._destroyed = true;
413
497
  this.manager.destroy();
414
- this.player.callbacks.off();
498
+ return this.player.callbacks.off();
415
499
  }
416
500
  };
417
501
  var FastboardPlayer = class extends FastboardPlayerBase {
418
502
  constructor() {
419
503
  super(...arguments);
420
- this.currentTime = this.createValue(this.player.progressTime, (set) => this._addPlayerListener("onProgressTimeChanged", set), this.player.seekToProgressTime.bind(this.player));
421
- this.phase = this.createValue(this.player.phase, (set) => this._addPlayerListener("onPhaseChanged", set));
422
- this.canplay = this.createValue(this.player.isPlayable, (set) => this._addPlayerListener("onIsPlayableChanged", set));
423
- this.speed = this.createValue(this.player.playbackSpeed, (set) => {
504
+ this.currentTime = writable(this.player.progressTime, (set) => this._addPlayerListener("onProgressTimeChanged", set), this.player.seekToProgressTime.bind(this.player));
505
+ this.phase = readable(this.player.phase, (set) => this._addPlayerListener("onPhaseChanged", set));
506
+ this.canplay = readable(this.player.isPlayable, (set) => this._addPlayerListener("onIsPlayableChanged", set));
507
+ this.speed = writable(this.player.playbackSpeed, (set) => {
424
508
  this._setSpeed = set;
425
509
  }, (value) => {
426
510
  this.player.playbackSpeed = value;
427
511
  this._setSpeed(value);
428
512
  });
429
- this.state = this.createValue(null, (set) => {
513
+ this.ready = readable(false, (set) => {
514
+ this._setReady = set;
515
+ });
516
+ this.duration = readable(0, (set) => {
517
+ this._setDuration = set;
518
+ });
519
+ this.state = readable(null, (set) => {
430
520
  const update = () => set(this.player.state);
431
- const dispose1 = this._addPlayerListener("onLoadFirstFrame", update);
432
- const dispose2 = this._addPlayerListener("onPlayerStateChanged", update);
433
- return () => (dispose1(), dispose2());
521
+ this.player.callbacks.once("onLoadFirstFrame", () => {
522
+ this._setDuration(this.player.timeDuration);
523
+ this._setReady(true);
524
+ update();
525
+ });
526
+ return this._addPlayerListener("onPlayerStateChanged", update);
434
527
  });
435
528
  }
436
529
  bindContainer(container) {
@@ -457,10 +550,38 @@ var FastboardPlayer = class extends FastboardPlayerBase {
457
550
  this._assertNotDestroyed();
458
551
  this.player.stop();
459
552
  }
553
+ setSpeed(value) {
554
+ this._assertNotDestroyed();
555
+ this.speed.set(value);
556
+ }
460
557
  };
558
+ async function replayFastboard(_a) {
559
+ var _b = _a, {
560
+ sdkConfig,
561
+ replayRoom: _c
562
+ } = _b, _d = _c, { callbacks } = _d, replayRoomParams = __objRest(_d, ["callbacks"]), {
563
+ managerConfig
564
+ } = _b;
565
+ const sdk = new import_white_web_sdk2.WhiteWebSdk(__spreadProps(__spreadValues({}, sdkConfig), {
566
+ useMobXState: true
567
+ }));
568
+ const player = await sdk.replayRoom(__spreadProps(__spreadValues({}, ensure_window_manager(replayRoomParams)), {
569
+ useMultiViews: true
570
+ }), callbacks);
571
+ const managerPromise = import_window_manager3.WindowManager.mount(__spreadProps(__spreadValues({
572
+ cursor: true
573
+ }, managerConfig), {
574
+ room: player
575
+ }));
576
+ player.play();
577
+ const manager = await managerPromise;
578
+ player.pause();
579
+ return new FastboardPlayer(sdk, player, manager);
580
+ }
461
581
 
462
- // src/behaviors/register-apps.ts
463
- var import_window_manager3 = require("@netless/window-manager");
582
+ // src/behaviors/index.ts
583
+ var import_window_manager4 = require("@netless/window-manager");
584
+ var import_app_slide = __toESM(require("@netless/app-slide"));
464
585
  var DefaultApps = {
465
586
  Monaco: {
466
587
  src: "https://netless-app.oss-cn-hangzhou.aliyuncs.com/@netless/app-monaco/0.1.12/dist/main.iife.js"
@@ -482,88 +603,16 @@ var DefaultApps = {
482
603
  src: "https://netless-app.oss-cn-hangzhou.aliyuncs.com/@netless/app-media-player/0.1.1/dist/main.iife.js"
483
604
  }
484
605
  };
606
+ import_window_manager4.WindowManager.register({
607
+ kind: "Slide",
608
+ appOptions: { debug: false },
609
+ src: import_app_slide.default
610
+ });
485
611
  for (const kind in DefaultApps) {
486
612
  if (Object.prototype.hasOwnProperty.call(DefaultApps, kind)) {
487
613
  const options = DefaultApps[kind];
488
- import_window_manager3.WindowManager.register(__spreadValues({ kind }, options));
614
+ import_window_manager4.WindowManager.register(__spreadValues({ kind }, options));
489
615
  }
490
616
  }
491
-
492
- // src/minimal.ts
493
- async function createFastboard(_a) {
494
- var _b = _a, {
495
- sdkConfig,
496
- joinRoom: _c
497
- } = _b, _d = _c, { callbacks } = _d, joinRoomParams = __objRest(_d, ["callbacks"]), {
498
- managerConfig
499
- } = _b;
500
- const sdk = new import_white_web_sdk.WhiteWebSdk(__spreadProps(__spreadValues({}, sdkConfig), {
501
- useMobXState: true
502
- }));
503
- const hotKeys = __spreadProps(__spreadValues({}, import_white_web_sdk.DefaultHotKeys), {
504
- changeToSelector: "s",
505
- changeToLaserPointer: "z",
506
- changeToPencil: "p",
507
- changeToRectangle: "r",
508
- changeToEllipse: "c",
509
- changeToEraser: "e",
510
- changeToText: "t",
511
- changeToStraight: "l",
512
- changeToArrow: "a",
513
- changeToHand: "h"
514
- });
515
- const room = await sdk.joinRoom(__spreadProps(__spreadValues({
516
- floatBar: true,
517
- hotKeys
518
- }, ensureWindowManager(joinRoomParams)), {
519
- useMultiViews: true,
520
- disableNewPencil: false,
521
- disableMagixEventDispatchLimit: true
522
- }), callbacks);
523
- const manager = await import_window_manager4.WindowManager.mount(__spreadProps(__spreadValues({
524
- cursor: true
525
- }, managerConfig), {
526
- room
527
- }));
528
- manager.mainView.setCameraBound({
529
- minContentMode: (0, import_white_web_sdk.contentModeScale)(0.3),
530
- maxContentMode: (0, import_white_web_sdk.contentModeScale)(3)
531
- });
532
- return new FastboardApp(sdk, room, manager, hotKeys);
533
- }
534
- async function replayFastboard(_a) {
535
- var _b = _a, {
536
- sdkConfig,
537
- replayRoom: _c
538
- } = _b, _d = _c, { callbacks } = _d, replayRoomParams = __objRest(_d, ["callbacks"]), {
539
- managerConfig
540
- } = _b;
541
- const sdk = new import_white_web_sdk.WhiteWebSdk(__spreadProps(__spreadValues({}, sdkConfig), {
542
- useMobXState: true
543
- }));
544
- const player = await sdk.replayRoom(__spreadProps(__spreadValues({}, ensureWindowManager(replayRoomParams)), {
545
- useMultiViews: true
546
- }), callbacks);
547
- const managerPromise = import_window_manager4.WindowManager.mount(__spreadProps(__spreadValues({
548
- cursor: true
549
- }, managerConfig), {
550
- room: player
551
- }));
552
- player.play();
553
- const manager = await managerPromise;
554
- player.pause();
555
- return new FastboardPlayer(sdk, player, manager);
556
- }
557
-
558
- // src/behaviors/register-slide.ts
559
- var import_window_manager5 = require("@netless/window-manager");
560
- var import_app_slide = __toESM(require("@netless/app-slide"));
561
- import_window_manager5.WindowManager.register({
562
- kind: "Slide",
563
- appOptions: {
564
- debug: false
565
- },
566
- src: import_app_slide.default
567
- });
568
617
  module.exports = __toCommonJS(src_exports);
569
618
  //# sourceMappingURL=index.js.map