@netless/app-slide 0.1.3 → 0.1.4
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/SlideController/index.d.ts +2 -1
- package/dist/index.d.ts +9 -0
- package/dist/main.cjs.js +32 -32
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.es.js +22 -11
- package/dist/main.es.js.map +1 -1
- package/dist/main.iife.js +32 -32
- package/dist/main.iife.js.map +1 -1
- package/dist/utils/logger.d.ts +9 -3
- package/package.json +1 -1
- package/src/SlideController/index.ts +5 -4
- package/src/index.ts +9 -0
- package/src/utils/logger.ts +23 -5
package/dist/utils/logger.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { SlideController } from "../SlideController";
|
|
2
|
+
declare type DebugMessage = {
|
|
3
|
+
slide: boolean | "__instance" | "__debug";
|
|
4
|
+
};
|
|
2
5
|
declare class Logger {
|
|
3
6
|
enable: boolean;
|
|
4
7
|
apps: Record<string, {
|
|
@@ -10,9 +13,12 @@ declare class Logger {
|
|
|
10
13
|
log(...args: Parameters<Console["log"]>): void;
|
|
11
14
|
verbose(...args: Parameters<Console["log"]>): void;
|
|
12
15
|
dispose(appId: string): void;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
/**
|
|
17
|
+
* @example
|
|
18
|
+
* window.postMessage({ slide: '__debug' })
|
|
19
|
+
* window.dispatchEvent(new MessageEvent('message', { data: { slide: '__debug' } }))
|
|
20
|
+
*/
|
|
21
|
+
_onMessage: (ev: MessageEvent<DebugMessage> | CustomEvent<DebugMessage>) => void;
|
|
16
22
|
}
|
|
17
23
|
export declare const logger: Logger;
|
|
18
24
|
export declare const log: (...args: Parameters<Console["log"]>) => void;
|
package/package.json
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import type { AppContext, Player, Room } from "@netless/window-manager";
|
|
12
12
|
import type { SyncEvent } from "@netless/slide";
|
|
13
13
|
import type { Attributes, MagixEvents, MagixPayload, SlideState } from "../typings";
|
|
14
|
+
import type { AppOptions } from "..";
|
|
14
15
|
|
|
15
16
|
import { SideEffectManager } from "side-effect-manager";
|
|
16
17
|
import { Slide, SLIDE_EVENTS } from "@netless/slide";
|
|
@@ -28,7 +29,7 @@ export const EmptyAttributes: Attributes = {
|
|
|
28
29
|
};
|
|
29
30
|
|
|
30
31
|
export interface SlideControllerOptions {
|
|
31
|
-
context: AppContext<Attributes, MagixEvents>;
|
|
32
|
+
context: AppContext<Attributes, MagixEvents, AppOptions>;
|
|
32
33
|
anchor: HTMLDivElement;
|
|
33
34
|
onPageChanged: (page: number) => void;
|
|
34
35
|
onTransitionStart: () => void;
|
|
@@ -246,10 +247,10 @@ export class SlideController {
|
|
|
246
247
|
controller: logger.enable,
|
|
247
248
|
enableGlobalClick: true,
|
|
248
249
|
renderOptions: {
|
|
249
|
-
minFPS: 25,
|
|
250
|
-
maxFPS: 30,
|
|
250
|
+
minFPS: this.context.getAppOptions()?.minFPS || 25,
|
|
251
|
+
maxFPS: this.context.getAppOptions()?.maxFPS || 30,
|
|
251
252
|
autoFPS: true,
|
|
252
|
-
autoResolution: true,
|
|
253
|
+
autoResolution: this.context.getAppOptions()?.autoResolution ?? true,
|
|
253
254
|
resolution: this.context.getAppOptions()?.resolution,
|
|
254
255
|
transactionBgColor: this.context.getAppOptions()?.bgColor || cachedGetBgColor(anchor),
|
|
255
256
|
},
|
package/src/index.ts
CHANGED
|
@@ -27,9 +27,18 @@ export const version = __APP_VERSION__;
|
|
|
27
27
|
export { DefaultUrl, apps, FreezerLength, addHooks };
|
|
28
28
|
|
|
29
29
|
export interface AppOptions {
|
|
30
|
+
/** show debug controller */
|
|
30
31
|
debug?: boolean;
|
|
32
|
+
/** scale */
|
|
31
33
|
resolution?: number;
|
|
34
|
+
/** background color for slide animations */
|
|
32
35
|
bgColor?: string;
|
|
36
|
+
/** minimal fps @default 25 */
|
|
37
|
+
minFPS?: number;
|
|
38
|
+
/** maximal fps @default 30 */
|
|
39
|
+
maxFPS?: number;
|
|
40
|
+
/** whether to re-scale automatically @default true */
|
|
41
|
+
autoResolution?: boolean;
|
|
33
42
|
}
|
|
34
43
|
|
|
35
44
|
export interface Controller {
|
package/src/utils/logger.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { SlideController } from "../SlideController";
|
|
2
2
|
import { isObj } from "./helpers";
|
|
3
3
|
|
|
4
|
+
type DebugMessage = { slide: boolean | "__instance" | "__debug" };
|
|
5
|
+
|
|
4
6
|
class Logger {
|
|
5
7
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
8
|
public apps: Record<string, { context?: any; controller?: SlideController }> = {};
|
|
@@ -23,12 +25,28 @@ class Logger {
|
|
|
23
25
|
delete this.apps[appId];
|
|
24
26
|
window.removeEventListener("message", this._onMessage);
|
|
25
27
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
/**
|
|
29
|
+
* @example
|
|
30
|
+
* window.postMessage({ slide: '__debug' })
|
|
31
|
+
* window.dispatchEvent(new MessageEvent('message', { data: { slide: '__debug' } }))
|
|
32
|
+
*/
|
|
33
|
+
_onMessage = (ev: MessageEvent<DebugMessage> | CustomEvent<DebugMessage>) => {
|
|
34
|
+
let data: DebugMessage | undefined;
|
|
35
|
+
if (ev instanceof CustomEvent) {
|
|
36
|
+
data = ev.detail;
|
|
37
|
+
} else if (isObj(ev.data)) {
|
|
38
|
+
data = ev.data;
|
|
39
|
+
}
|
|
40
|
+
if (data) {
|
|
41
|
+
if (typeof data.slide === "boolean") {
|
|
42
|
+
this.enable = data.slide;
|
|
43
|
+
} else if (data.slide === "__instance") {
|
|
31
44
|
console.log(this);
|
|
45
|
+
} else if (data.slide === "__debug") {
|
|
46
|
+
Object.values(this.apps).forEach(app => {
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
|
+
(app.controller?.slide as any)?.createController();
|
|
49
|
+
});
|
|
32
50
|
}
|
|
33
51
|
}
|
|
34
52
|
};
|