@embedpdf/plugin-fullscreen 1.0.0 → 1.0.2
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 +24 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.js +24 -4
- package/dist/index.js.map +1 -1
- package/dist/preact/index.cjs +24 -8
- package/dist/preact/index.cjs.map +1 -1
- package/dist/preact/index.d.cts +7 -3
- package/dist/preact/index.d.ts +7 -3
- package/dist/preact/index.js +22 -7
- package/dist/preact/index.js.map +1 -1
- package/dist/react/index.cjs +24 -8
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +7 -3
- package/dist/react/index.d.ts +7 -3
- package/dist/react/index.js +22 -7
- package/dist/react/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -24,6 +24,7 @@ __export(index_exports, {
|
|
|
24
24
|
FullscreenPlugin: () => FullscreenPlugin,
|
|
25
25
|
FullscreenPluginPackage: () => FullscreenPluginPackage,
|
|
26
26
|
SET_FULLSCREEN: () => SET_FULLSCREEN,
|
|
27
|
+
initialState: () => initialState,
|
|
27
28
|
manifest: () => manifest,
|
|
28
29
|
setFullscreen: () => setFullscreen
|
|
29
30
|
});
|
|
@@ -56,6 +57,7 @@ function setFullscreen(payload) {
|
|
|
56
57
|
var FullscreenPlugin = class extends import_core.BasePlugin {
|
|
57
58
|
constructor(id, registry) {
|
|
58
59
|
super(id, registry);
|
|
60
|
+
this.onStateChange$ = (0, import_core.createBehaviorEmitter)();
|
|
59
61
|
this.fullscreenRequest$ = (0, import_core.createEmitter)();
|
|
60
62
|
}
|
|
61
63
|
async initialize(_) {
|
|
@@ -63,11 +65,29 @@ var FullscreenPlugin = class extends import_core.BasePlugin {
|
|
|
63
65
|
buildCapability() {
|
|
64
66
|
return {
|
|
65
67
|
isFullscreen: () => this.state.isFullscreen,
|
|
66
|
-
enableFullscreen: () => this.
|
|
67
|
-
exitFullscreen: () => this.
|
|
68
|
-
|
|
68
|
+
enableFullscreen: () => this.enableFullscreen(),
|
|
69
|
+
exitFullscreen: () => this.exitFullscreen(),
|
|
70
|
+
toggleFullscreen: () => this.toggleFullscreen(),
|
|
71
|
+
onRequest: this.fullscreenRequest$.on,
|
|
72
|
+
onStateChange: this.onStateChange$.on
|
|
69
73
|
};
|
|
70
74
|
}
|
|
75
|
+
toggleFullscreen() {
|
|
76
|
+
if (this.state.isFullscreen) {
|
|
77
|
+
this.exitFullscreen();
|
|
78
|
+
} else {
|
|
79
|
+
this.enableFullscreen();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
enableFullscreen() {
|
|
83
|
+
this.fullscreenRequest$.emit("enter");
|
|
84
|
+
}
|
|
85
|
+
exitFullscreen() {
|
|
86
|
+
this.fullscreenRequest$.emit("exit");
|
|
87
|
+
}
|
|
88
|
+
onStoreUpdated(_, newState) {
|
|
89
|
+
this.onStateChange$.emit(newState);
|
|
90
|
+
}
|
|
71
91
|
setFullscreenState(isFullscreen) {
|
|
72
92
|
this.dispatch(setFullscreen(isFullscreen));
|
|
73
93
|
}
|
|
@@ -104,6 +124,7 @@ var FullscreenPluginPackage = {
|
|
|
104
124
|
FullscreenPlugin,
|
|
105
125
|
FullscreenPluginPackage,
|
|
106
126
|
SET_FULLSCREEN,
|
|
127
|
+
initialState,
|
|
107
128
|
manifest,
|
|
108
129
|
setFullscreen
|
|
109
130
|
});
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/lib/manifest.ts","../src/lib/fullscreen-plugin.ts","../src/lib/actions.ts","../src/lib/reducer.ts","../src/lib/index.ts"],"sourcesContent":["export * from './lib';\n","import { PluginManifest } from '@embedpdf/core';\nimport { FullscreenPluginConfig } from './types';\n\nexport const FULLSCREEN_PLUGIN_ID = 'fullscreen';\n\nexport const manifest: PluginManifest<FullscreenPluginConfig> = {\n id: FULLSCREEN_PLUGIN_ID,\n name: 'Fullscreen Plugin',\n version: '1.0.0',\n provides: ['fullscreen'],\n requires: [],\n optional: [],\n defaultConfig: {\n enabled: true,\n },\n};\n","import { BasePlugin, createEmitter, PluginRegistry } from '@embedpdf/core';\nimport { FullscreenCapability, FullscreenPluginConfig, FullscreenState } from './types';\nimport { FullscreenAction, setFullscreen } from './actions';\n\nexport class FullscreenPlugin extends BasePlugin<\n FullscreenPluginConfig,\n FullscreenCapability,\n FullscreenState,\n FullscreenAction\n> {\n static readonly id = 'fullscreen' as const;\n\n private readonly fullscreenRequest$ = createEmitter<'enter' | 'exit'>();\n\n constructor(id: string, registry: PluginRegistry) {\n super(id, registry);\n }\n\n async initialize(_: FullscreenPluginConfig): Promise<void> {}\n\n protected buildCapability(): FullscreenCapability {\n return {\n isFullscreen: () => this.state.isFullscreen,\n enableFullscreen: () => this.
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/lib/manifest.ts","../src/lib/fullscreen-plugin.ts","../src/lib/actions.ts","../src/lib/reducer.ts","../src/lib/index.ts"],"sourcesContent":["export * from './lib';\n","import { PluginManifest } from '@embedpdf/core';\nimport { FullscreenPluginConfig } from './types';\n\nexport const FULLSCREEN_PLUGIN_ID = 'fullscreen';\n\nexport const manifest: PluginManifest<FullscreenPluginConfig> = {\n id: FULLSCREEN_PLUGIN_ID,\n name: 'Fullscreen Plugin',\n version: '1.0.0',\n provides: ['fullscreen'],\n requires: [],\n optional: [],\n defaultConfig: {\n enabled: true,\n },\n};\n","import { BasePlugin, createBehaviorEmitter, createEmitter, PluginRegistry } from '@embedpdf/core';\nimport { FullscreenCapability, FullscreenPluginConfig, FullscreenState } from './types';\nimport { FullscreenAction, setFullscreen } from './actions';\n\nexport class FullscreenPlugin extends BasePlugin<\n FullscreenPluginConfig,\n FullscreenCapability,\n FullscreenState,\n FullscreenAction\n> {\n static readonly id = 'fullscreen' as const;\n\n private readonly onStateChange$ = createBehaviorEmitter<FullscreenState>();\n private readonly fullscreenRequest$ = createEmitter<'enter' | 'exit'>();\n\n constructor(id: string, registry: PluginRegistry) {\n super(id, registry);\n }\n\n async initialize(_: FullscreenPluginConfig): Promise<void> {}\n\n protected buildCapability(): FullscreenCapability {\n return {\n isFullscreen: () => this.state.isFullscreen,\n enableFullscreen: () => this.enableFullscreen(),\n exitFullscreen: () => this.exitFullscreen(),\n toggleFullscreen: () => this.toggleFullscreen(),\n onRequest: this.fullscreenRequest$.on,\n onStateChange: this.onStateChange$.on,\n };\n }\n\n private toggleFullscreen(): void {\n if (this.state.isFullscreen) {\n this.exitFullscreen();\n } else {\n this.enableFullscreen();\n }\n }\n\n private enableFullscreen(): void {\n this.fullscreenRequest$.emit('enter');\n }\n\n private exitFullscreen(): void {\n this.fullscreenRequest$.emit('exit');\n }\n\n override onStoreUpdated(_: FullscreenState, newState: FullscreenState): void {\n this.onStateChange$.emit(newState);\n }\n\n public setFullscreenState(isFullscreen: boolean): void {\n this.dispatch(setFullscreen(isFullscreen));\n }\n\n async destroy(): Promise<void> {\n this.fullscreenRequest$.clear();\n super.destroy();\n }\n}\n","import { Action } from '@embedpdf/core';\n\nexport const SET_FULLSCREEN = 'SET_FULLSCREEN';\n\nexport interface SetFullscreenAction extends Action {\n type: typeof SET_FULLSCREEN;\n payload: boolean;\n}\n\nexport type FullscreenAction = SetFullscreenAction;\n\nexport function setFullscreen(payload: boolean): SetFullscreenAction {\n return { type: SET_FULLSCREEN, payload };\n}\n","import { Reducer } from '@embedpdf/core';\nimport { FullscreenState } from './types';\nimport { FullscreenAction, SET_FULLSCREEN } from './actions';\n\nexport const initialState: FullscreenState = {\n isFullscreen: false,\n};\n\nexport const reducer: Reducer<FullscreenState, FullscreenAction> = (state, action) => {\n switch (action.type) {\n case SET_FULLSCREEN:\n return { ...state, isFullscreen: action.payload };\n default:\n return state;\n }\n};\n","import { PluginPackage } from '@embedpdf/core';\nimport { manifest, FULLSCREEN_PLUGIN_ID } from './manifest';\nimport { FullscreenPluginConfig, FullscreenState } from './types';\nimport { FullscreenPlugin } from './fullscreen-plugin';\nimport { initialState } from './reducer';\nimport { reducer } from './reducer';\nimport { FullscreenAction } from './actions';\n\nexport const FullscreenPluginPackage: PluginPackage<\n FullscreenPlugin,\n FullscreenPluginConfig,\n FullscreenState,\n FullscreenAction\n> = {\n manifest,\n create: (registry) => new FullscreenPlugin(FULLSCREEN_PLUGIN_ID, registry),\n reducer,\n initialState,\n};\n\nexport * from './fullscreen-plugin';\nexport * from './types';\nexport * from './manifest';\nexport * from './actions';\nexport { initialState };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACGO,IAAM,uBAAuB;AAE7B,IAAM,WAAmD;AAAA,EAC9D,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,SAAS;AAAA,EACT,UAAU,CAAC,YAAY;AAAA,EACvB,UAAU,CAAC;AAAA,EACX,UAAU,CAAC;AAAA,EACX,eAAe;AAAA,IACb,SAAS;AAAA,EACX;AACF;;;ACfA,kBAAiF;;;ACE1E,IAAM,iBAAiB;AASvB,SAAS,cAAc,SAAuC;AACnE,SAAO,EAAE,MAAM,gBAAgB,QAAQ;AACzC;;;ADTO,IAAM,mBAAN,cAA+B,uBAKpC;AAAA,EAMA,YAAY,IAAY,UAA0B;AAChD,UAAM,IAAI,QAAQ;AAJpB,SAAiB,qBAAiB,mCAAuC;AACzE,SAAiB,yBAAqB,2BAAgC;AAAA,EAItE;AAAA,EAEA,MAAM,WAAW,GAA0C;AAAA,EAAC;AAAA,EAElD,kBAAwC;AAChD,WAAO;AAAA,MACL,cAAc,MAAM,KAAK,MAAM;AAAA,MAC/B,kBAAkB,MAAM,KAAK,iBAAiB;AAAA,MAC9C,gBAAgB,MAAM,KAAK,eAAe;AAAA,MAC1C,kBAAkB,MAAM,KAAK,iBAAiB;AAAA,MAC9C,WAAW,KAAK,mBAAmB;AAAA,MACnC,eAAe,KAAK,eAAe;AAAA,IACrC;AAAA,EACF;AAAA,EAEQ,mBAAyB;AAC/B,QAAI,KAAK,MAAM,cAAc;AAC3B,WAAK,eAAe;AAAA,IACtB,OAAO;AACL,WAAK,iBAAiB;AAAA,IACxB;AAAA,EACF;AAAA,EAEQ,mBAAyB;AAC/B,SAAK,mBAAmB,KAAK,OAAO;AAAA,EACtC;AAAA,EAEQ,iBAAuB;AAC7B,SAAK,mBAAmB,KAAK,MAAM;AAAA,EACrC;AAAA,EAES,eAAe,GAAoB,UAAiC;AAC3E,SAAK,eAAe,KAAK,QAAQ;AAAA,EACnC;AAAA,EAEO,mBAAmB,cAA6B;AACrD,SAAK,SAAS,cAAc,YAAY,CAAC;AAAA,EAC3C;AAAA,EAEA,MAAM,UAAyB;AAC7B,SAAK,mBAAmB,MAAM;AAC9B,UAAM,QAAQ;AAAA,EAChB;AACF;AAxDa,iBAMK,KAAK;;;AENhB,IAAM,eAAgC;AAAA,EAC3C,cAAc;AAChB;AAEO,IAAM,UAAsD,CAAC,OAAO,WAAW;AACpF,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK;AACH,aAAO,EAAE,GAAG,OAAO,cAAc,OAAO,QAAQ;AAAA,IAClD;AACE,aAAO;AAAA,EACX;AACF;;;ACPO,IAAM,0BAKT;AAAA,EACF;AAAA,EACA,QAAQ,CAAC,aAAa,IAAI,iBAAiB,sBAAsB,QAAQ;AAAA,EACzE;AAAA,EACA;AACF;","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -9,7 +9,9 @@ interface FullscreenCapability {
|
|
|
9
9
|
isFullscreen: () => boolean;
|
|
10
10
|
enableFullscreen: () => void;
|
|
11
11
|
exitFullscreen: () => void;
|
|
12
|
+
toggleFullscreen: () => void;
|
|
12
13
|
onRequest: EventHook<'enter' | 'exit'>;
|
|
14
|
+
onStateChange: EventHook<FullscreenState>;
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
declare const SET_FULLSCREEN = "SET_FULLSCREEN";
|
|
@@ -22,17 +24,24 @@ declare function setFullscreen(payload: boolean): SetFullscreenAction;
|
|
|
22
24
|
|
|
23
25
|
declare class FullscreenPlugin extends BasePlugin<FullscreenPluginConfig, FullscreenCapability, FullscreenState, FullscreenAction> {
|
|
24
26
|
static readonly id: "fullscreen";
|
|
27
|
+
private readonly onStateChange$;
|
|
25
28
|
private readonly fullscreenRequest$;
|
|
26
29
|
constructor(id: string, registry: PluginRegistry);
|
|
27
30
|
initialize(_: FullscreenPluginConfig): Promise<void>;
|
|
28
31
|
protected buildCapability(): FullscreenCapability;
|
|
32
|
+
private toggleFullscreen;
|
|
33
|
+
private enableFullscreen;
|
|
34
|
+
private exitFullscreen;
|
|
35
|
+
onStoreUpdated(_: FullscreenState, newState: FullscreenState): void;
|
|
29
36
|
setFullscreenState(isFullscreen: boolean): void;
|
|
30
37
|
destroy(): Promise<void>;
|
|
31
38
|
}
|
|
32
39
|
|
|
40
|
+
declare const initialState: FullscreenState;
|
|
41
|
+
|
|
33
42
|
declare const FULLSCREEN_PLUGIN_ID = "fullscreen";
|
|
34
43
|
declare const manifest: PluginManifest<FullscreenPluginConfig>;
|
|
35
44
|
|
|
36
45
|
declare const FullscreenPluginPackage: PluginPackage<FullscreenPlugin, FullscreenPluginConfig, FullscreenState, FullscreenAction>;
|
|
37
46
|
|
|
38
|
-
export { FULLSCREEN_PLUGIN_ID, type FullscreenAction, type FullscreenCapability, FullscreenPlugin, type FullscreenPluginConfig, FullscreenPluginPackage, type FullscreenState, SET_FULLSCREEN, type SetFullscreenAction, manifest, setFullscreen };
|
|
47
|
+
export { FULLSCREEN_PLUGIN_ID, type FullscreenAction, type FullscreenCapability, FullscreenPlugin, type FullscreenPluginConfig, FullscreenPluginPackage, type FullscreenState, SET_FULLSCREEN, type SetFullscreenAction, initialState, manifest, setFullscreen };
|
package/dist/index.d.ts
CHANGED
|
@@ -9,7 +9,9 @@ interface FullscreenCapability {
|
|
|
9
9
|
isFullscreen: () => boolean;
|
|
10
10
|
enableFullscreen: () => void;
|
|
11
11
|
exitFullscreen: () => void;
|
|
12
|
+
toggleFullscreen: () => void;
|
|
12
13
|
onRequest: EventHook<'enter' | 'exit'>;
|
|
14
|
+
onStateChange: EventHook<FullscreenState>;
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
declare const SET_FULLSCREEN = "SET_FULLSCREEN";
|
|
@@ -22,17 +24,24 @@ declare function setFullscreen(payload: boolean): SetFullscreenAction;
|
|
|
22
24
|
|
|
23
25
|
declare class FullscreenPlugin extends BasePlugin<FullscreenPluginConfig, FullscreenCapability, FullscreenState, FullscreenAction> {
|
|
24
26
|
static readonly id: "fullscreen";
|
|
27
|
+
private readonly onStateChange$;
|
|
25
28
|
private readonly fullscreenRequest$;
|
|
26
29
|
constructor(id: string, registry: PluginRegistry);
|
|
27
30
|
initialize(_: FullscreenPluginConfig): Promise<void>;
|
|
28
31
|
protected buildCapability(): FullscreenCapability;
|
|
32
|
+
private toggleFullscreen;
|
|
33
|
+
private enableFullscreen;
|
|
34
|
+
private exitFullscreen;
|
|
35
|
+
onStoreUpdated(_: FullscreenState, newState: FullscreenState): void;
|
|
29
36
|
setFullscreenState(isFullscreen: boolean): void;
|
|
30
37
|
destroy(): Promise<void>;
|
|
31
38
|
}
|
|
32
39
|
|
|
40
|
+
declare const initialState: FullscreenState;
|
|
41
|
+
|
|
33
42
|
declare const FULLSCREEN_PLUGIN_ID = "fullscreen";
|
|
34
43
|
declare const manifest: PluginManifest<FullscreenPluginConfig>;
|
|
35
44
|
|
|
36
45
|
declare const FullscreenPluginPackage: PluginPackage<FullscreenPlugin, FullscreenPluginConfig, FullscreenState, FullscreenAction>;
|
|
37
46
|
|
|
38
|
-
export { FULLSCREEN_PLUGIN_ID, type FullscreenAction, type FullscreenCapability, FullscreenPlugin, type FullscreenPluginConfig, FullscreenPluginPackage, type FullscreenState, SET_FULLSCREEN, type SetFullscreenAction, manifest, setFullscreen };
|
|
47
|
+
export { FULLSCREEN_PLUGIN_ID, type FullscreenAction, type FullscreenCapability, FullscreenPlugin, type FullscreenPluginConfig, FullscreenPluginPackage, type FullscreenState, SET_FULLSCREEN, type SetFullscreenAction, initialState, manifest, setFullscreen };
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ var manifest = {
|
|
|
13
13
|
};
|
|
14
14
|
|
|
15
15
|
// src/lib/fullscreen-plugin.ts
|
|
16
|
-
import { BasePlugin, createEmitter } from "@embedpdf/core";
|
|
16
|
+
import { BasePlugin, createBehaviorEmitter, createEmitter } from "@embedpdf/core";
|
|
17
17
|
|
|
18
18
|
// src/lib/actions.ts
|
|
19
19
|
var SET_FULLSCREEN = "SET_FULLSCREEN";
|
|
@@ -25,6 +25,7 @@ function setFullscreen(payload) {
|
|
|
25
25
|
var FullscreenPlugin = class extends BasePlugin {
|
|
26
26
|
constructor(id, registry) {
|
|
27
27
|
super(id, registry);
|
|
28
|
+
this.onStateChange$ = createBehaviorEmitter();
|
|
28
29
|
this.fullscreenRequest$ = createEmitter();
|
|
29
30
|
}
|
|
30
31
|
async initialize(_) {
|
|
@@ -32,11 +33,29 @@ var FullscreenPlugin = class extends BasePlugin {
|
|
|
32
33
|
buildCapability() {
|
|
33
34
|
return {
|
|
34
35
|
isFullscreen: () => this.state.isFullscreen,
|
|
35
|
-
enableFullscreen: () => this.
|
|
36
|
-
exitFullscreen: () => this.
|
|
37
|
-
|
|
36
|
+
enableFullscreen: () => this.enableFullscreen(),
|
|
37
|
+
exitFullscreen: () => this.exitFullscreen(),
|
|
38
|
+
toggleFullscreen: () => this.toggleFullscreen(),
|
|
39
|
+
onRequest: this.fullscreenRequest$.on,
|
|
40
|
+
onStateChange: this.onStateChange$.on
|
|
38
41
|
};
|
|
39
42
|
}
|
|
43
|
+
toggleFullscreen() {
|
|
44
|
+
if (this.state.isFullscreen) {
|
|
45
|
+
this.exitFullscreen();
|
|
46
|
+
} else {
|
|
47
|
+
this.enableFullscreen();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
enableFullscreen() {
|
|
51
|
+
this.fullscreenRequest$.emit("enter");
|
|
52
|
+
}
|
|
53
|
+
exitFullscreen() {
|
|
54
|
+
this.fullscreenRequest$.emit("exit");
|
|
55
|
+
}
|
|
56
|
+
onStoreUpdated(_, newState) {
|
|
57
|
+
this.onStateChange$.emit(newState);
|
|
58
|
+
}
|
|
40
59
|
setFullscreenState(isFullscreen) {
|
|
41
60
|
this.dispatch(setFullscreen(isFullscreen));
|
|
42
61
|
}
|
|
@@ -72,6 +91,7 @@ export {
|
|
|
72
91
|
FullscreenPlugin,
|
|
73
92
|
FullscreenPluginPackage,
|
|
74
93
|
SET_FULLSCREEN,
|
|
94
|
+
initialState,
|
|
75
95
|
manifest,
|
|
76
96
|
setFullscreen
|
|
77
97
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/manifest.ts","../src/lib/fullscreen-plugin.ts","../src/lib/actions.ts","../src/lib/reducer.ts","../src/lib/index.ts"],"sourcesContent":["import { PluginManifest } from '@embedpdf/core';\nimport { FullscreenPluginConfig } from './types';\n\nexport const FULLSCREEN_PLUGIN_ID = 'fullscreen';\n\nexport const manifest: PluginManifest<FullscreenPluginConfig> = {\n id: FULLSCREEN_PLUGIN_ID,\n name: 'Fullscreen Plugin',\n version: '1.0.0',\n provides: ['fullscreen'],\n requires: [],\n optional: [],\n defaultConfig: {\n enabled: true,\n },\n};\n","import { BasePlugin, createEmitter, PluginRegistry } from '@embedpdf/core';\nimport { FullscreenCapability, FullscreenPluginConfig, FullscreenState } from './types';\nimport { FullscreenAction, setFullscreen } from './actions';\n\nexport class FullscreenPlugin extends BasePlugin<\n FullscreenPluginConfig,\n FullscreenCapability,\n FullscreenState,\n FullscreenAction\n> {\n static readonly id = 'fullscreen' as const;\n\n private readonly fullscreenRequest$ = createEmitter<'enter' | 'exit'>();\n\n constructor(id: string, registry: PluginRegistry) {\n super(id, registry);\n }\n\n async initialize(_: FullscreenPluginConfig): Promise<void> {}\n\n protected buildCapability(): FullscreenCapability {\n return {\n isFullscreen: () => this.state.isFullscreen,\n enableFullscreen: () => this.
|
|
1
|
+
{"version":3,"sources":["../src/lib/manifest.ts","../src/lib/fullscreen-plugin.ts","../src/lib/actions.ts","../src/lib/reducer.ts","../src/lib/index.ts"],"sourcesContent":["import { PluginManifest } from '@embedpdf/core';\nimport { FullscreenPluginConfig } from './types';\n\nexport const FULLSCREEN_PLUGIN_ID = 'fullscreen';\n\nexport const manifest: PluginManifest<FullscreenPluginConfig> = {\n id: FULLSCREEN_PLUGIN_ID,\n name: 'Fullscreen Plugin',\n version: '1.0.0',\n provides: ['fullscreen'],\n requires: [],\n optional: [],\n defaultConfig: {\n enabled: true,\n },\n};\n","import { BasePlugin, createBehaviorEmitter, createEmitter, PluginRegistry } from '@embedpdf/core';\nimport { FullscreenCapability, FullscreenPluginConfig, FullscreenState } from './types';\nimport { FullscreenAction, setFullscreen } from './actions';\n\nexport class FullscreenPlugin extends BasePlugin<\n FullscreenPluginConfig,\n FullscreenCapability,\n FullscreenState,\n FullscreenAction\n> {\n static readonly id = 'fullscreen' as const;\n\n private readonly onStateChange$ = createBehaviorEmitter<FullscreenState>();\n private readonly fullscreenRequest$ = createEmitter<'enter' | 'exit'>();\n\n constructor(id: string, registry: PluginRegistry) {\n super(id, registry);\n }\n\n async initialize(_: FullscreenPluginConfig): Promise<void> {}\n\n protected buildCapability(): FullscreenCapability {\n return {\n isFullscreen: () => this.state.isFullscreen,\n enableFullscreen: () => this.enableFullscreen(),\n exitFullscreen: () => this.exitFullscreen(),\n toggleFullscreen: () => this.toggleFullscreen(),\n onRequest: this.fullscreenRequest$.on,\n onStateChange: this.onStateChange$.on,\n };\n }\n\n private toggleFullscreen(): void {\n if (this.state.isFullscreen) {\n this.exitFullscreen();\n } else {\n this.enableFullscreen();\n }\n }\n\n private enableFullscreen(): void {\n this.fullscreenRequest$.emit('enter');\n }\n\n private exitFullscreen(): void {\n this.fullscreenRequest$.emit('exit');\n }\n\n override onStoreUpdated(_: FullscreenState, newState: FullscreenState): void {\n this.onStateChange$.emit(newState);\n }\n\n public setFullscreenState(isFullscreen: boolean): void {\n this.dispatch(setFullscreen(isFullscreen));\n }\n\n async destroy(): Promise<void> {\n this.fullscreenRequest$.clear();\n super.destroy();\n }\n}\n","import { Action } from '@embedpdf/core';\n\nexport const SET_FULLSCREEN = 'SET_FULLSCREEN';\n\nexport interface SetFullscreenAction extends Action {\n type: typeof SET_FULLSCREEN;\n payload: boolean;\n}\n\nexport type FullscreenAction = SetFullscreenAction;\n\nexport function setFullscreen(payload: boolean): SetFullscreenAction {\n return { type: SET_FULLSCREEN, payload };\n}\n","import { Reducer } from '@embedpdf/core';\nimport { FullscreenState } from './types';\nimport { FullscreenAction, SET_FULLSCREEN } from './actions';\n\nexport const initialState: FullscreenState = {\n isFullscreen: false,\n};\n\nexport const reducer: Reducer<FullscreenState, FullscreenAction> = (state, action) => {\n switch (action.type) {\n case SET_FULLSCREEN:\n return { ...state, isFullscreen: action.payload };\n default:\n return state;\n }\n};\n","import { PluginPackage } from '@embedpdf/core';\nimport { manifest, FULLSCREEN_PLUGIN_ID } from './manifest';\nimport { FullscreenPluginConfig, FullscreenState } from './types';\nimport { FullscreenPlugin } from './fullscreen-plugin';\nimport { initialState } from './reducer';\nimport { reducer } from './reducer';\nimport { FullscreenAction } from './actions';\n\nexport const FullscreenPluginPackage: PluginPackage<\n FullscreenPlugin,\n FullscreenPluginConfig,\n FullscreenState,\n FullscreenAction\n> = {\n manifest,\n create: (registry) => new FullscreenPlugin(FULLSCREEN_PLUGIN_ID, registry),\n reducer,\n initialState,\n};\n\nexport * from './fullscreen-plugin';\nexport * from './types';\nexport * from './manifest';\nexport * from './actions';\nexport { initialState };\n"],"mappings":";AAGO,IAAM,uBAAuB;AAE7B,IAAM,WAAmD;AAAA,EAC9D,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,SAAS;AAAA,EACT,UAAU,CAAC,YAAY;AAAA,EACvB,UAAU,CAAC;AAAA,EACX,UAAU,CAAC;AAAA,EACX,eAAe;AAAA,IACb,SAAS;AAAA,EACX;AACF;;;ACfA,SAAS,YAAY,uBAAuB,qBAAqC;;;ACE1E,IAAM,iBAAiB;AASvB,SAAS,cAAc,SAAuC;AACnE,SAAO,EAAE,MAAM,gBAAgB,QAAQ;AACzC;;;ADTO,IAAM,mBAAN,cAA+B,WAKpC;AAAA,EAMA,YAAY,IAAY,UAA0B;AAChD,UAAM,IAAI,QAAQ;AAJpB,SAAiB,iBAAiB,sBAAuC;AACzE,SAAiB,qBAAqB,cAAgC;AAAA,EAItE;AAAA,EAEA,MAAM,WAAW,GAA0C;AAAA,EAAC;AAAA,EAElD,kBAAwC;AAChD,WAAO;AAAA,MACL,cAAc,MAAM,KAAK,MAAM;AAAA,MAC/B,kBAAkB,MAAM,KAAK,iBAAiB;AAAA,MAC9C,gBAAgB,MAAM,KAAK,eAAe;AAAA,MAC1C,kBAAkB,MAAM,KAAK,iBAAiB;AAAA,MAC9C,WAAW,KAAK,mBAAmB;AAAA,MACnC,eAAe,KAAK,eAAe;AAAA,IACrC;AAAA,EACF;AAAA,EAEQ,mBAAyB;AAC/B,QAAI,KAAK,MAAM,cAAc;AAC3B,WAAK,eAAe;AAAA,IACtB,OAAO;AACL,WAAK,iBAAiB;AAAA,IACxB;AAAA,EACF;AAAA,EAEQ,mBAAyB;AAC/B,SAAK,mBAAmB,KAAK,OAAO;AAAA,EACtC;AAAA,EAEQ,iBAAuB;AAC7B,SAAK,mBAAmB,KAAK,MAAM;AAAA,EACrC;AAAA,EAES,eAAe,GAAoB,UAAiC;AAC3E,SAAK,eAAe,KAAK,QAAQ;AAAA,EACnC;AAAA,EAEO,mBAAmB,cAA6B;AACrD,SAAK,SAAS,cAAc,YAAY,CAAC;AAAA,EAC3C;AAAA,EAEA,MAAM,UAAyB;AAC7B,SAAK,mBAAmB,MAAM;AAC9B,UAAM,QAAQ;AAAA,EAChB;AACF;AAxDa,iBAMK,KAAK;;;AENhB,IAAM,eAAgC;AAAA,EAC3C,cAAc;AAChB;AAEO,IAAM,UAAsD,CAAC,OAAO,WAAW;AACpF,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK;AACH,aAAO,EAAE,GAAG,OAAO,cAAc,OAAO,QAAQ;AAAA,IAClD;AACE,aAAO;AAAA,EACX;AACF;;;ACPO,IAAM,0BAKT;AAAA,EACF;AAAA,EACA,QAAQ,CAAC,aAAa,IAAI,iBAAiB,sBAAsB,QAAQ;AAAA,EACzE;AAAA,EACA;AACF;","names":[]}
|
package/dist/preact/index.cjs
CHANGED
|
@@ -22,24 +22,39 @@ var preact_exports = {};
|
|
|
22
22
|
__export(preact_exports, {
|
|
23
23
|
FullscreenProvider: () => FullscreenProvider,
|
|
24
24
|
useFullscreen: () => useFullscreen,
|
|
25
|
-
useFullscreenCapability: () => useFullscreenCapability
|
|
25
|
+
useFullscreenCapability: () => useFullscreenCapability,
|
|
26
|
+
useFullscreenPlugin: () => useFullscreenPlugin
|
|
26
27
|
});
|
|
27
28
|
module.exports = __toCommonJS(preact_exports);
|
|
28
29
|
|
|
29
30
|
// src/preact/hooks/use-fullscreen.ts
|
|
30
31
|
var import_preact = require("@embedpdf/core/preact");
|
|
31
32
|
var import_plugin_fullscreen = require("@embedpdf/plugin-fullscreen");
|
|
32
|
-
var
|
|
33
|
+
var import_hooks = require("preact/hooks");
|
|
34
|
+
var useFullscreenPlugin = () => (0, import_preact.usePlugin)(import_plugin_fullscreen.FullscreenPlugin.id);
|
|
33
35
|
var useFullscreenCapability = () => (0, import_preact.useCapability)(import_plugin_fullscreen.FullscreenPlugin.id);
|
|
36
|
+
var useFullscreen = () => {
|
|
37
|
+
const { provides } = useFullscreenCapability();
|
|
38
|
+
const [state, setState] = (0, import_hooks.useState)(import_plugin_fullscreen.initialState);
|
|
39
|
+
(0, import_hooks.useEffect)(() => {
|
|
40
|
+
return provides?.onStateChange((state2) => {
|
|
41
|
+
setState(state2);
|
|
42
|
+
});
|
|
43
|
+
}, [provides]);
|
|
44
|
+
return {
|
|
45
|
+
provides,
|
|
46
|
+
state
|
|
47
|
+
};
|
|
48
|
+
};
|
|
34
49
|
|
|
35
50
|
// src/preact/components/fullscreen.tsx
|
|
36
|
-
var
|
|
51
|
+
var import_hooks2 = require("preact/hooks");
|
|
37
52
|
var import_jsx_runtime = require("preact/jsx-runtime");
|
|
38
53
|
function FullscreenProvider({ children, ...props }) {
|
|
39
54
|
const { provides: fullscreenCapability } = useFullscreenCapability();
|
|
40
|
-
const { plugin } =
|
|
41
|
-
const ref = (0,
|
|
42
|
-
(0,
|
|
55
|
+
const { plugin } = useFullscreenPlugin();
|
|
56
|
+
const ref = (0, import_hooks2.useRef)(null);
|
|
57
|
+
(0, import_hooks2.useEffect)(() => {
|
|
43
58
|
if (!fullscreenCapability) return;
|
|
44
59
|
const unsub = fullscreenCapability.onRequest(async (action) => {
|
|
45
60
|
if (action === "enter") {
|
|
@@ -51,7 +66,7 @@ function FullscreenProvider({ children, ...props }) {
|
|
|
51
66
|
});
|
|
52
67
|
return unsub;
|
|
53
68
|
}, [fullscreenCapability]);
|
|
54
|
-
(0,
|
|
69
|
+
(0, import_hooks2.useEffect)(() => {
|
|
55
70
|
if (!plugin) return;
|
|
56
71
|
const handler = () => plugin.setFullscreenState(!!document.fullscreenElement);
|
|
57
72
|
document.addEventListener("fullscreenchange", handler);
|
|
@@ -71,6 +86,7 @@ function FullscreenProvider({ children, ...props }) {
|
|
|
71
86
|
0 && (module.exports = {
|
|
72
87
|
FullscreenProvider,
|
|
73
88
|
useFullscreen,
|
|
74
|
-
useFullscreenCapability
|
|
89
|
+
useFullscreenCapability,
|
|
90
|
+
useFullscreenPlugin
|
|
75
91
|
});
|
|
76
92
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/preact/index.ts","../../src/preact/hooks/use-fullscreen.ts","../../src/preact/components/fullscreen.tsx"],"sourcesContent":["export * from './hooks';\nexport * from './components';\n","import { useCapability, usePlugin } from '@embedpdf/core/preact';\nimport { FullscreenPlugin } from '@embedpdf/plugin-fullscreen';\n\nexport const
|
|
1
|
+
{"version":3,"sources":["../../src/preact/index.ts","../../src/preact/hooks/use-fullscreen.ts","../../src/preact/components/fullscreen.tsx"],"sourcesContent":["export * from './hooks';\nexport * from './components';\n","import { useCapability, usePlugin } from '@embedpdf/core/preact';\nimport { FullscreenPlugin, FullscreenState, initialState } from '@embedpdf/plugin-fullscreen';\nimport { useState, useEffect } from 'preact/hooks';\n\nexport const useFullscreenPlugin = () => usePlugin<FullscreenPlugin>(FullscreenPlugin.id);\nexport const useFullscreenCapability = () => useCapability<FullscreenPlugin>(FullscreenPlugin.id);\n\nexport const useFullscreen = () => {\n const { provides } = useFullscreenCapability();\n const [state, setState] = useState<FullscreenState>(initialState);\n\n useEffect(() => {\n return provides?.onStateChange((state) => {\n setState(state);\n });\n }, [provides]);\n\n return {\n provides,\n state,\n };\n};\n","/** @jsxImportSource preact */\nimport { setFullscreen } from '@embedpdf/plugin-fullscreen';\nimport { ComponentChildren, JSX } from 'preact';\nimport { useEffect, useRef } from 'preact/hooks';\n\nimport { useFullscreenPlugin, useFullscreenCapability } from '../hooks';\n\ntype FullscreenProviderProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, 'style'> & {\n children: ComponentChildren;\n style?: JSX.CSSProperties;\n};\n\nexport function FullscreenProvider({ children, ...props }: FullscreenProviderProps) {\n const { provides: fullscreenCapability } = useFullscreenCapability();\n const { plugin } = useFullscreenPlugin();\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!fullscreenCapability) return;\n\n const unsub = fullscreenCapability.onRequest(async (action) => {\n if (action === 'enter') {\n const el = ref.current;\n if (el && !document.fullscreenElement) await el.requestFullscreen();\n } else {\n if (document.fullscreenElement) await document.exitFullscreen();\n }\n });\n\n return unsub;\n }, [fullscreenCapability]);\n\n useEffect(() => {\n if (!plugin) return;\n const handler = () => plugin.setFullscreenState(!!document.fullscreenElement);\n document.addEventListener('fullscreenchange', handler);\n return () => document.removeEventListener('fullscreenchange', handler);\n }, [plugin]);\n\n return (\n <div\n {...props}\n style={{ position: 'relative', width: '100%', height: '100%', ...props.style }}\n ref={ref}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAyC;AACzC,+BAAgE;AAChE,mBAAoC;AAE7B,IAAM,sBAAsB,UAAM,yBAA4B,0CAAiB,EAAE;AACjF,IAAM,0BAA0B,UAAM,6BAAgC,0CAAiB,EAAE;AAEzF,IAAM,gBAAgB,MAAM;AACjC,QAAM,EAAE,SAAS,IAAI,wBAAwB;AAC7C,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAA0B,qCAAY;AAEhE,8BAAU,MAAM;AACd,WAAO,UAAU,cAAc,CAACA,WAAU;AACxC,eAASA,MAAK;AAAA,IAChB,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AAEb,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;AClBA,IAAAC,gBAAkC;AAqC9B;AA5BG,SAAS,mBAAmB,EAAE,UAAU,GAAG,MAAM,GAA4B;AAClF,QAAM,EAAE,UAAU,qBAAqB,IAAI,wBAAwB;AACnE,QAAM,EAAE,OAAO,IAAI,oBAAoB;AACvC,QAAM,UAAM,sBAAuB,IAAI;AAEvC,+BAAU,MAAM;AACd,QAAI,CAAC,qBAAsB;AAE3B,UAAM,QAAQ,qBAAqB,UAAU,OAAO,WAAW;AAC7D,UAAI,WAAW,SAAS;AACtB,cAAM,KAAK,IAAI;AACf,YAAI,MAAM,CAAC,SAAS,kBAAmB,OAAM,GAAG,kBAAkB;AAAA,MACpE,OAAO;AACL,YAAI,SAAS,kBAAmB,OAAM,SAAS,eAAe;AAAA,MAChE;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT,GAAG,CAAC,oBAAoB,CAAC;AAEzB,+BAAU,MAAM;AACd,QAAI,CAAC,OAAQ;AACb,UAAM,UAAU,MAAM,OAAO,mBAAmB,CAAC,CAAC,SAAS,iBAAiB;AAC5E,aAAS,iBAAiB,oBAAoB,OAAO;AACrD,WAAO,MAAM,SAAS,oBAAoB,oBAAoB,OAAO;AAAA,EACvE,GAAG,CAAC,MAAM,CAAC;AAEX,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,OAAO,EAAE,UAAU,YAAY,OAAO,QAAQ,QAAQ,QAAQ,GAAG,MAAM,MAAM;AAAA,MAC7E;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;","names":["state","import_hooks"]}
|
package/dist/preact/index.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as _embedpdf_plugin_fullscreen from '@embedpdf/plugin-fullscreen';
|
|
2
|
-
import { FullscreenPlugin } from '@embedpdf/plugin-fullscreen';
|
|
2
|
+
import { FullscreenPlugin, FullscreenState } from '@embedpdf/plugin-fullscreen';
|
|
3
3
|
import { JSX, ComponentChildren } from 'preact';
|
|
4
4
|
|
|
5
|
-
declare const
|
|
5
|
+
declare const useFullscreenPlugin: () => {
|
|
6
6
|
plugin: FullscreenPlugin | null;
|
|
7
7
|
isLoading: boolean;
|
|
8
8
|
ready: Promise<void>;
|
|
@@ -12,6 +12,10 @@ declare const useFullscreenCapability: () => {
|
|
|
12
12
|
isLoading: boolean;
|
|
13
13
|
ready: Promise<void>;
|
|
14
14
|
};
|
|
15
|
+
declare const useFullscreen: () => {
|
|
16
|
+
provides: Readonly<_embedpdf_plugin_fullscreen.FullscreenCapability> | null;
|
|
17
|
+
state: FullscreenState;
|
|
18
|
+
};
|
|
15
19
|
|
|
16
20
|
type FullscreenProviderProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, 'style'> & {
|
|
17
21
|
children: ComponentChildren;
|
|
@@ -19,4 +23,4 @@ type FullscreenProviderProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, 'style'>
|
|
|
19
23
|
};
|
|
20
24
|
declare function FullscreenProvider({ children, ...props }: FullscreenProviderProps): JSX.Element;
|
|
21
25
|
|
|
22
|
-
export { FullscreenProvider, useFullscreen, useFullscreenCapability };
|
|
26
|
+
export { FullscreenProvider, useFullscreen, useFullscreenCapability, useFullscreenPlugin };
|
package/dist/preact/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as _embedpdf_plugin_fullscreen from '@embedpdf/plugin-fullscreen';
|
|
2
|
-
import { FullscreenPlugin } from '@embedpdf/plugin-fullscreen';
|
|
2
|
+
import { FullscreenPlugin, FullscreenState } from '@embedpdf/plugin-fullscreen';
|
|
3
3
|
import { JSX, ComponentChildren } from 'preact';
|
|
4
4
|
|
|
5
|
-
declare const
|
|
5
|
+
declare const useFullscreenPlugin: () => {
|
|
6
6
|
plugin: FullscreenPlugin | null;
|
|
7
7
|
isLoading: boolean;
|
|
8
8
|
ready: Promise<void>;
|
|
@@ -12,6 +12,10 @@ declare const useFullscreenCapability: () => {
|
|
|
12
12
|
isLoading: boolean;
|
|
13
13
|
ready: Promise<void>;
|
|
14
14
|
};
|
|
15
|
+
declare const useFullscreen: () => {
|
|
16
|
+
provides: Readonly<_embedpdf_plugin_fullscreen.FullscreenCapability> | null;
|
|
17
|
+
state: FullscreenState;
|
|
18
|
+
};
|
|
15
19
|
|
|
16
20
|
type FullscreenProviderProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, 'style'> & {
|
|
17
21
|
children: ComponentChildren;
|
|
@@ -19,4 +23,4 @@ type FullscreenProviderProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, 'style'>
|
|
|
19
23
|
};
|
|
20
24
|
declare function FullscreenProvider({ children, ...props }: FullscreenProviderProps): JSX.Element;
|
|
21
25
|
|
|
22
|
-
export { FullscreenProvider, useFullscreen, useFullscreenCapability };
|
|
26
|
+
export { FullscreenProvider, useFullscreen, useFullscreenCapability, useFullscreenPlugin };
|
package/dist/preact/index.js
CHANGED
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
// src/preact/hooks/use-fullscreen.ts
|
|
2
2
|
import { useCapability, usePlugin } from "@embedpdf/core/preact";
|
|
3
|
-
import { FullscreenPlugin } from "@embedpdf/plugin-fullscreen";
|
|
4
|
-
|
|
3
|
+
import { FullscreenPlugin, initialState } from "@embedpdf/plugin-fullscreen";
|
|
4
|
+
import { useState, useEffect } from "preact/hooks";
|
|
5
|
+
var useFullscreenPlugin = () => usePlugin(FullscreenPlugin.id);
|
|
5
6
|
var useFullscreenCapability = () => useCapability(FullscreenPlugin.id);
|
|
7
|
+
var useFullscreen = () => {
|
|
8
|
+
const { provides } = useFullscreenCapability();
|
|
9
|
+
const [state, setState] = useState(initialState);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
return provides?.onStateChange((state2) => {
|
|
12
|
+
setState(state2);
|
|
13
|
+
});
|
|
14
|
+
}, [provides]);
|
|
15
|
+
return {
|
|
16
|
+
provides,
|
|
17
|
+
state
|
|
18
|
+
};
|
|
19
|
+
};
|
|
6
20
|
|
|
7
21
|
// src/preact/components/fullscreen.tsx
|
|
8
|
-
import { useEffect, useRef } from "preact/hooks";
|
|
22
|
+
import { useEffect as useEffect2, useRef } from "preact/hooks";
|
|
9
23
|
import { jsx } from "preact/jsx-runtime";
|
|
10
24
|
function FullscreenProvider({ children, ...props }) {
|
|
11
25
|
const { provides: fullscreenCapability } = useFullscreenCapability();
|
|
12
|
-
const { plugin } =
|
|
26
|
+
const { plugin } = useFullscreenPlugin();
|
|
13
27
|
const ref = useRef(null);
|
|
14
|
-
|
|
28
|
+
useEffect2(() => {
|
|
15
29
|
if (!fullscreenCapability) return;
|
|
16
30
|
const unsub = fullscreenCapability.onRequest(async (action) => {
|
|
17
31
|
if (action === "enter") {
|
|
@@ -23,7 +37,7 @@ function FullscreenProvider({ children, ...props }) {
|
|
|
23
37
|
});
|
|
24
38
|
return unsub;
|
|
25
39
|
}, [fullscreenCapability]);
|
|
26
|
-
|
|
40
|
+
useEffect2(() => {
|
|
27
41
|
if (!plugin) return;
|
|
28
42
|
const handler = () => plugin.setFullscreenState(!!document.fullscreenElement);
|
|
29
43
|
document.addEventListener("fullscreenchange", handler);
|
|
@@ -42,6 +56,7 @@ function FullscreenProvider({ children, ...props }) {
|
|
|
42
56
|
export {
|
|
43
57
|
FullscreenProvider,
|
|
44
58
|
useFullscreen,
|
|
45
|
-
useFullscreenCapability
|
|
59
|
+
useFullscreenCapability,
|
|
60
|
+
useFullscreenPlugin
|
|
46
61
|
};
|
|
47
62
|
//# sourceMappingURL=index.js.map
|
package/dist/preact/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/preact/hooks/use-fullscreen.ts","../../src/preact/components/fullscreen.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/preact';\nimport { FullscreenPlugin } from '@embedpdf/plugin-fullscreen';\n\nexport const
|
|
1
|
+
{"version":3,"sources":["../../src/preact/hooks/use-fullscreen.ts","../../src/preact/components/fullscreen.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/preact';\nimport { FullscreenPlugin, FullscreenState, initialState } from '@embedpdf/plugin-fullscreen';\nimport { useState, useEffect } from 'preact/hooks';\n\nexport const useFullscreenPlugin = () => usePlugin<FullscreenPlugin>(FullscreenPlugin.id);\nexport const useFullscreenCapability = () => useCapability<FullscreenPlugin>(FullscreenPlugin.id);\n\nexport const useFullscreen = () => {\n const { provides } = useFullscreenCapability();\n const [state, setState] = useState<FullscreenState>(initialState);\n\n useEffect(() => {\n return provides?.onStateChange((state) => {\n setState(state);\n });\n }, [provides]);\n\n return {\n provides,\n state,\n };\n};\n","/** @jsxImportSource preact */\nimport { setFullscreen } from '@embedpdf/plugin-fullscreen';\nimport { ComponentChildren, JSX } from 'preact';\nimport { useEffect, useRef } from 'preact/hooks';\n\nimport { useFullscreenPlugin, useFullscreenCapability } from '../hooks';\n\ntype FullscreenProviderProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, 'style'> & {\n children: ComponentChildren;\n style?: JSX.CSSProperties;\n};\n\nexport function FullscreenProvider({ children, ...props }: FullscreenProviderProps) {\n const { provides: fullscreenCapability } = useFullscreenCapability();\n const { plugin } = useFullscreenPlugin();\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!fullscreenCapability) return;\n\n const unsub = fullscreenCapability.onRequest(async (action) => {\n if (action === 'enter') {\n const el = ref.current;\n if (el && !document.fullscreenElement) await el.requestFullscreen();\n } else {\n if (document.fullscreenElement) await document.exitFullscreen();\n }\n });\n\n return unsub;\n }, [fullscreenCapability]);\n\n useEffect(() => {\n if (!plugin) return;\n const handler = () => plugin.setFullscreenState(!!document.fullscreenElement);\n document.addEventListener('fullscreenchange', handler);\n return () => document.removeEventListener('fullscreenchange', handler);\n }, [plugin]);\n\n return (\n <div\n {...props}\n style={{ position: 'relative', width: '100%', height: '100%', ...props.style }}\n ref={ref}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";AAAA,SAAS,eAAe,iBAAiB;AACzC,SAAS,kBAAmC,oBAAoB;AAChE,SAAS,UAAU,iBAAiB;AAE7B,IAAM,sBAAsB,MAAM,UAA4B,iBAAiB,EAAE;AACjF,IAAM,0BAA0B,MAAM,cAAgC,iBAAiB,EAAE;AAEzF,IAAM,gBAAgB,MAAM;AACjC,QAAM,EAAE,SAAS,IAAI,wBAAwB;AAC7C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA0B,YAAY;AAEhE,YAAU,MAAM;AACd,WAAO,UAAU,cAAc,CAACA,WAAU;AACxC,eAASA,MAAK;AAAA,IAChB,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AAEb,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;AClBA,SAAS,aAAAC,YAAW,cAAc;AAqC9B;AA5BG,SAAS,mBAAmB,EAAE,UAAU,GAAG,MAAM,GAA4B;AAClF,QAAM,EAAE,UAAU,qBAAqB,IAAI,wBAAwB;AACnE,QAAM,EAAE,OAAO,IAAI,oBAAoB;AACvC,QAAM,MAAM,OAAuB,IAAI;AAEvC,EAAAC,WAAU,MAAM;AACd,QAAI,CAAC,qBAAsB;AAE3B,UAAM,QAAQ,qBAAqB,UAAU,OAAO,WAAW;AAC7D,UAAI,WAAW,SAAS;AACtB,cAAM,KAAK,IAAI;AACf,YAAI,MAAM,CAAC,SAAS,kBAAmB,OAAM,GAAG,kBAAkB;AAAA,MACpE,OAAO;AACL,YAAI,SAAS,kBAAmB,OAAM,SAAS,eAAe;AAAA,MAChE;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT,GAAG,CAAC,oBAAoB,CAAC;AAEzB,EAAAA,WAAU,MAAM;AACd,QAAI,CAAC,OAAQ;AACb,UAAM,UAAU,MAAM,OAAO,mBAAmB,CAAC,CAAC,SAAS,iBAAiB;AAC5E,aAAS,iBAAiB,oBAAoB,OAAO;AACrD,WAAO,MAAM,SAAS,oBAAoB,oBAAoB,OAAO;AAAA,EACvE,GAAG,CAAC,MAAM,CAAC;AAEX,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,OAAO,EAAE,UAAU,YAAY,OAAO,QAAQ,QAAQ,QAAQ,GAAG,MAAM,MAAM;AAAA,MAC7E;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;","names":["state","useEffect","useEffect"]}
|
package/dist/react/index.cjs
CHANGED
|
@@ -22,24 +22,39 @@ var react_exports = {};
|
|
|
22
22
|
__export(react_exports, {
|
|
23
23
|
FullscreenProvider: () => FullscreenProvider,
|
|
24
24
|
useFullscreen: () => useFullscreen,
|
|
25
|
-
useFullscreenCapability: () => useFullscreenCapability
|
|
25
|
+
useFullscreenCapability: () => useFullscreenCapability,
|
|
26
|
+
useFullscreenPlugin: () => useFullscreenPlugin
|
|
26
27
|
});
|
|
27
28
|
module.exports = __toCommonJS(react_exports);
|
|
28
29
|
|
|
29
30
|
// src/react/hooks/use-fullscreen.ts
|
|
30
31
|
var import_react = require("@embedpdf/core/react");
|
|
31
32
|
var import_plugin_fullscreen = require("@embedpdf/plugin-fullscreen");
|
|
32
|
-
var
|
|
33
|
+
var import_react2 = require("react");
|
|
34
|
+
var useFullscreenPlugin = () => (0, import_react.usePlugin)(import_plugin_fullscreen.FullscreenPlugin.id);
|
|
33
35
|
var useFullscreenCapability = () => (0, import_react.useCapability)(import_plugin_fullscreen.FullscreenPlugin.id);
|
|
36
|
+
var useFullscreen = () => {
|
|
37
|
+
const { provides } = useFullscreenCapability();
|
|
38
|
+
const [state, setState] = (0, import_react2.useState)(import_plugin_fullscreen.initialState);
|
|
39
|
+
(0, import_react2.useEffect)(() => {
|
|
40
|
+
return provides?.onStateChange((state2) => {
|
|
41
|
+
setState(state2);
|
|
42
|
+
});
|
|
43
|
+
}, [provides]);
|
|
44
|
+
return {
|
|
45
|
+
provides,
|
|
46
|
+
state
|
|
47
|
+
};
|
|
48
|
+
};
|
|
34
49
|
|
|
35
50
|
// src/react/components/fullscreen.tsx
|
|
36
|
-
var
|
|
51
|
+
var import_react3 = require("react");
|
|
37
52
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
38
53
|
function FullscreenProvider({ children, ...props }) {
|
|
39
54
|
const { provides: fullscreenCapability } = useFullscreenCapability();
|
|
40
|
-
const { plugin } =
|
|
41
|
-
const ref = (0,
|
|
42
|
-
(0,
|
|
55
|
+
const { plugin } = useFullscreenPlugin();
|
|
56
|
+
const ref = (0, import_react3.useRef)(null);
|
|
57
|
+
(0, import_react3.useEffect)(() => {
|
|
43
58
|
if (!fullscreenCapability) return;
|
|
44
59
|
const unsub = fullscreenCapability.onRequest(async (action) => {
|
|
45
60
|
if (action === "enter") {
|
|
@@ -51,7 +66,7 @@ function FullscreenProvider({ children, ...props }) {
|
|
|
51
66
|
});
|
|
52
67
|
return unsub;
|
|
53
68
|
}, [fullscreenCapability]);
|
|
54
|
-
(0,
|
|
69
|
+
(0, import_react3.useEffect)(() => {
|
|
55
70
|
if (!plugin) return;
|
|
56
71
|
const handler = () => plugin.setFullscreenState(!!document.fullscreenElement);
|
|
57
72
|
document.addEventListener("fullscreenchange", handler);
|
|
@@ -71,6 +86,7 @@ function FullscreenProvider({ children, ...props }) {
|
|
|
71
86
|
0 && (module.exports = {
|
|
72
87
|
FullscreenProvider,
|
|
73
88
|
useFullscreen,
|
|
74
|
-
useFullscreenCapability
|
|
89
|
+
useFullscreenCapability,
|
|
90
|
+
useFullscreenPlugin
|
|
75
91
|
});
|
|
76
92
|
//# sourceMappingURL=index.cjs.map
|
package/dist/react/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react/index.ts","../../src/react/hooks/use-fullscreen.ts","../../src/react/components/fullscreen.tsx"],"sourcesContent":["export * from './hooks';\nexport * from './components';\n","import { useCapability, usePlugin } from '@embedpdf/core/react';\nimport { FullscreenPlugin } from '@embedpdf/plugin-fullscreen';\n\nexport const
|
|
1
|
+
{"version":3,"sources":["../../src/react/index.ts","../../src/react/hooks/use-fullscreen.ts","../../src/react/components/fullscreen.tsx"],"sourcesContent":["export * from './hooks';\nexport * from './components';\n","import { useCapability, usePlugin } from '@embedpdf/core/react';\nimport { FullscreenPlugin, FullscreenState, initialState } from '@embedpdf/plugin-fullscreen';\nimport { useState, useEffect } from 'react';\n\nexport const useFullscreenPlugin = () => usePlugin<FullscreenPlugin>(FullscreenPlugin.id);\nexport const useFullscreenCapability = () => useCapability<FullscreenPlugin>(FullscreenPlugin.id);\n\nexport const useFullscreen = () => {\n const { provides } = useFullscreenCapability();\n const [state, setState] = useState<FullscreenState>(initialState);\n\n useEffect(() => {\n return provides?.onStateChange((state) => {\n setState(state);\n });\n }, [provides]);\n\n return {\n provides,\n state,\n };\n};\n","import { useEffect, useRef } from 'react';\n\nimport { useFullscreenPlugin, useFullscreenCapability } from '../hooks';\n\ntype FullscreenProviderProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> & {\n children: React.ReactNode;\n style?: React.CSSProperties;\n};\n\nexport function FullscreenProvider({ children, ...props }: FullscreenProviderProps) {\n const { provides: fullscreenCapability } = useFullscreenCapability();\n const { plugin } = useFullscreenPlugin();\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!fullscreenCapability) return;\n\n const unsub = fullscreenCapability.onRequest(async (action) => {\n if (action === 'enter') {\n const el = ref.current;\n if (el && !document.fullscreenElement) await el.requestFullscreen();\n } else {\n if (document.fullscreenElement) await document.exitFullscreen();\n }\n });\n\n return unsub;\n }, [fullscreenCapability]);\n\n useEffect(() => {\n if (!plugin) return;\n const handler = () => plugin.setFullscreenState(!!document.fullscreenElement);\n document.addEventListener('fullscreenchange', handler);\n return () => document.removeEventListener('fullscreenchange', handler);\n }, [plugin]);\n\n return (\n <div\n {...props}\n style={{ position: 'relative', width: '100%', height: '100%', ...props.style }}\n ref={ref}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAyC;AACzC,+BAAgE;AAChE,IAAAA,gBAAoC;AAE7B,IAAM,sBAAsB,UAAM,wBAA4B,0CAAiB,EAAE;AACjF,IAAM,0BAA0B,UAAM,4BAAgC,0CAAiB,EAAE;AAEzF,IAAM,gBAAgB,MAAM;AACjC,QAAM,EAAE,SAAS,IAAI,wBAAwB;AAC7C,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAA0B,qCAAY;AAEhE,+BAAU,MAAM;AACd,WAAO,UAAU,cAAc,CAACC,WAAU;AACxC,eAASA,MAAK;AAAA,IAChB,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AAEb,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;ACrBA,IAAAC,gBAAkC;AAqC9B;AA5BG,SAAS,mBAAmB,EAAE,UAAU,GAAG,MAAM,GAA4B;AAClF,QAAM,EAAE,UAAU,qBAAqB,IAAI,wBAAwB;AACnE,QAAM,EAAE,OAAO,IAAI,oBAAoB;AACvC,QAAM,UAAM,sBAAuB,IAAI;AAEvC,+BAAU,MAAM;AACd,QAAI,CAAC,qBAAsB;AAE3B,UAAM,QAAQ,qBAAqB,UAAU,OAAO,WAAW;AAC7D,UAAI,WAAW,SAAS;AACtB,cAAM,KAAK,IAAI;AACf,YAAI,MAAM,CAAC,SAAS,kBAAmB,OAAM,GAAG,kBAAkB;AAAA,MACpE,OAAO;AACL,YAAI,SAAS,kBAAmB,OAAM,SAAS,eAAe;AAAA,MAChE;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT,GAAG,CAAC,oBAAoB,CAAC;AAEzB,+BAAU,MAAM;AACd,QAAI,CAAC,OAAQ;AACb,UAAM,UAAU,MAAM,OAAO,mBAAmB,CAAC,CAAC,SAAS,iBAAiB;AAC5E,aAAS,iBAAiB,oBAAoB,OAAO;AACrD,WAAO,MAAM,SAAS,oBAAoB,oBAAoB,OAAO;AAAA,EACvE,GAAG,CAAC,MAAM,CAAC;AAEX,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,OAAO,EAAE,UAAU,YAAY,OAAO,QAAQ,QAAQ,QAAQ,GAAG,MAAM,MAAM;AAAA,MAC7E;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;","names":["import_react","state","import_react"]}
|
package/dist/react/index.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as _embedpdf_plugin_fullscreen from '@embedpdf/plugin-fullscreen';
|
|
2
|
-
import { FullscreenPlugin } from '@embedpdf/plugin-fullscreen';
|
|
2
|
+
import { FullscreenPlugin, FullscreenState } from '@embedpdf/plugin-fullscreen';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
|
|
5
|
-
declare const
|
|
5
|
+
declare const useFullscreenPlugin: () => {
|
|
6
6
|
plugin: FullscreenPlugin | null;
|
|
7
7
|
isLoading: boolean;
|
|
8
8
|
ready: Promise<void>;
|
|
@@ -12,6 +12,10 @@ declare const useFullscreenCapability: () => {
|
|
|
12
12
|
isLoading: boolean;
|
|
13
13
|
ready: Promise<void>;
|
|
14
14
|
};
|
|
15
|
+
declare const useFullscreen: () => {
|
|
16
|
+
provides: Readonly<_embedpdf_plugin_fullscreen.FullscreenCapability> | null;
|
|
17
|
+
state: FullscreenState;
|
|
18
|
+
};
|
|
15
19
|
|
|
16
20
|
type FullscreenProviderProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> & {
|
|
17
21
|
children: React.ReactNode;
|
|
@@ -19,4 +23,4 @@ type FullscreenProviderProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'style
|
|
|
19
23
|
};
|
|
20
24
|
declare function FullscreenProvider({ children, ...props }: FullscreenProviderProps): react_jsx_runtime.JSX.Element;
|
|
21
25
|
|
|
22
|
-
export { FullscreenProvider, useFullscreen, useFullscreenCapability };
|
|
26
|
+
export { FullscreenProvider, useFullscreen, useFullscreenCapability, useFullscreenPlugin };
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as _embedpdf_plugin_fullscreen from '@embedpdf/plugin-fullscreen';
|
|
2
|
-
import { FullscreenPlugin } from '@embedpdf/plugin-fullscreen';
|
|
2
|
+
import { FullscreenPlugin, FullscreenState } from '@embedpdf/plugin-fullscreen';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
|
|
5
|
-
declare const
|
|
5
|
+
declare const useFullscreenPlugin: () => {
|
|
6
6
|
plugin: FullscreenPlugin | null;
|
|
7
7
|
isLoading: boolean;
|
|
8
8
|
ready: Promise<void>;
|
|
@@ -12,6 +12,10 @@ declare const useFullscreenCapability: () => {
|
|
|
12
12
|
isLoading: boolean;
|
|
13
13
|
ready: Promise<void>;
|
|
14
14
|
};
|
|
15
|
+
declare const useFullscreen: () => {
|
|
16
|
+
provides: Readonly<_embedpdf_plugin_fullscreen.FullscreenCapability> | null;
|
|
17
|
+
state: FullscreenState;
|
|
18
|
+
};
|
|
15
19
|
|
|
16
20
|
type FullscreenProviderProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> & {
|
|
17
21
|
children: React.ReactNode;
|
|
@@ -19,4 +23,4 @@ type FullscreenProviderProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'style
|
|
|
19
23
|
};
|
|
20
24
|
declare function FullscreenProvider({ children, ...props }: FullscreenProviderProps): react_jsx_runtime.JSX.Element;
|
|
21
25
|
|
|
22
|
-
export { FullscreenProvider, useFullscreen, useFullscreenCapability };
|
|
26
|
+
export { FullscreenProvider, useFullscreen, useFullscreenCapability, useFullscreenPlugin };
|
package/dist/react/index.js
CHANGED
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
// src/react/hooks/use-fullscreen.ts
|
|
2
2
|
import { useCapability, usePlugin } from "@embedpdf/core/react";
|
|
3
|
-
import { FullscreenPlugin } from "@embedpdf/plugin-fullscreen";
|
|
4
|
-
|
|
3
|
+
import { FullscreenPlugin, initialState } from "@embedpdf/plugin-fullscreen";
|
|
4
|
+
import { useState, useEffect } from "react";
|
|
5
|
+
var useFullscreenPlugin = () => usePlugin(FullscreenPlugin.id);
|
|
5
6
|
var useFullscreenCapability = () => useCapability(FullscreenPlugin.id);
|
|
7
|
+
var useFullscreen = () => {
|
|
8
|
+
const { provides } = useFullscreenCapability();
|
|
9
|
+
const [state, setState] = useState(initialState);
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
return provides?.onStateChange((state2) => {
|
|
12
|
+
setState(state2);
|
|
13
|
+
});
|
|
14
|
+
}, [provides]);
|
|
15
|
+
return {
|
|
16
|
+
provides,
|
|
17
|
+
state
|
|
18
|
+
};
|
|
19
|
+
};
|
|
6
20
|
|
|
7
21
|
// src/react/components/fullscreen.tsx
|
|
8
|
-
import { useEffect, useRef } from "react";
|
|
22
|
+
import { useEffect as useEffect2, useRef } from "react";
|
|
9
23
|
import { jsx } from "react/jsx-runtime";
|
|
10
24
|
function FullscreenProvider({ children, ...props }) {
|
|
11
25
|
const { provides: fullscreenCapability } = useFullscreenCapability();
|
|
12
|
-
const { plugin } =
|
|
26
|
+
const { plugin } = useFullscreenPlugin();
|
|
13
27
|
const ref = useRef(null);
|
|
14
|
-
|
|
28
|
+
useEffect2(() => {
|
|
15
29
|
if (!fullscreenCapability) return;
|
|
16
30
|
const unsub = fullscreenCapability.onRequest(async (action) => {
|
|
17
31
|
if (action === "enter") {
|
|
@@ -23,7 +37,7 @@ function FullscreenProvider({ children, ...props }) {
|
|
|
23
37
|
});
|
|
24
38
|
return unsub;
|
|
25
39
|
}, [fullscreenCapability]);
|
|
26
|
-
|
|
40
|
+
useEffect2(() => {
|
|
27
41
|
if (!plugin) return;
|
|
28
42
|
const handler = () => plugin.setFullscreenState(!!document.fullscreenElement);
|
|
29
43
|
document.addEventListener("fullscreenchange", handler);
|
|
@@ -42,6 +56,7 @@ function FullscreenProvider({ children, ...props }) {
|
|
|
42
56
|
export {
|
|
43
57
|
FullscreenProvider,
|
|
44
58
|
useFullscreen,
|
|
45
|
-
useFullscreenCapability
|
|
59
|
+
useFullscreenCapability,
|
|
60
|
+
useFullscreenPlugin
|
|
46
61
|
};
|
|
47
62
|
//# sourceMappingURL=index.js.map
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react/hooks/use-fullscreen.ts","../../src/react/components/fullscreen.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/react';\nimport { FullscreenPlugin } from '@embedpdf/plugin-fullscreen';\n\nexport const
|
|
1
|
+
{"version":3,"sources":["../../src/react/hooks/use-fullscreen.ts","../../src/react/components/fullscreen.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/react';\nimport { FullscreenPlugin, FullscreenState, initialState } from '@embedpdf/plugin-fullscreen';\nimport { useState, useEffect } from 'react';\n\nexport const useFullscreenPlugin = () => usePlugin<FullscreenPlugin>(FullscreenPlugin.id);\nexport const useFullscreenCapability = () => useCapability<FullscreenPlugin>(FullscreenPlugin.id);\n\nexport const useFullscreen = () => {\n const { provides } = useFullscreenCapability();\n const [state, setState] = useState<FullscreenState>(initialState);\n\n useEffect(() => {\n return provides?.onStateChange((state) => {\n setState(state);\n });\n }, [provides]);\n\n return {\n provides,\n state,\n };\n};\n","import { useEffect, useRef } from 'react';\n\nimport { useFullscreenPlugin, useFullscreenCapability } from '../hooks';\n\ntype FullscreenProviderProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> & {\n children: React.ReactNode;\n style?: React.CSSProperties;\n};\n\nexport function FullscreenProvider({ children, ...props }: FullscreenProviderProps) {\n const { provides: fullscreenCapability } = useFullscreenCapability();\n const { plugin } = useFullscreenPlugin();\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!fullscreenCapability) return;\n\n const unsub = fullscreenCapability.onRequest(async (action) => {\n if (action === 'enter') {\n const el = ref.current;\n if (el && !document.fullscreenElement) await el.requestFullscreen();\n } else {\n if (document.fullscreenElement) await document.exitFullscreen();\n }\n });\n\n return unsub;\n }, [fullscreenCapability]);\n\n useEffect(() => {\n if (!plugin) return;\n const handler = () => plugin.setFullscreenState(!!document.fullscreenElement);\n document.addEventListener('fullscreenchange', handler);\n return () => document.removeEventListener('fullscreenchange', handler);\n }, [plugin]);\n\n return (\n <div\n {...props}\n style={{ position: 'relative', width: '100%', height: '100%', ...props.style }}\n ref={ref}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";AAAA,SAAS,eAAe,iBAAiB;AACzC,SAAS,kBAAmC,oBAAoB;AAChE,SAAS,UAAU,iBAAiB;AAE7B,IAAM,sBAAsB,MAAM,UAA4B,iBAAiB,EAAE;AACjF,IAAM,0BAA0B,MAAM,cAAgC,iBAAiB,EAAE;AAEzF,IAAM,gBAAgB,MAAM;AACjC,QAAM,EAAE,SAAS,IAAI,wBAAwB;AAC7C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA0B,YAAY;AAEhE,YAAU,MAAM;AACd,WAAO,UAAU,cAAc,CAACA,WAAU;AACxC,eAASA,MAAK;AAAA,IAChB,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AAEb,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;;;ACrBA,SAAS,aAAAC,YAAW,cAAc;AAqC9B;AA5BG,SAAS,mBAAmB,EAAE,UAAU,GAAG,MAAM,GAA4B;AAClF,QAAM,EAAE,UAAU,qBAAqB,IAAI,wBAAwB;AACnE,QAAM,EAAE,OAAO,IAAI,oBAAoB;AACvC,QAAM,MAAM,OAAuB,IAAI;AAEvC,EAAAC,WAAU,MAAM;AACd,QAAI,CAAC,qBAAsB;AAE3B,UAAM,QAAQ,qBAAqB,UAAU,OAAO,WAAW;AAC7D,UAAI,WAAW,SAAS;AACtB,cAAM,KAAK,IAAI;AACf,YAAI,MAAM,CAAC,SAAS,kBAAmB,OAAM,GAAG,kBAAkB;AAAA,MACpE,OAAO;AACL,YAAI,SAAS,kBAAmB,OAAM,SAAS,eAAe;AAAA,MAChE;AAAA,IACF,CAAC;AAED,WAAO;AAAA,EACT,GAAG,CAAC,oBAAoB,CAAC;AAEzB,EAAAA,WAAU,MAAM;AACd,QAAI,CAAC,OAAQ;AACb,UAAM,UAAU,MAAM,OAAO,mBAAmB,CAAC,CAAC,SAAS,iBAAiB;AAC5E,aAAS,iBAAiB,oBAAoB,OAAO;AACrD,WAAO,MAAM,SAAS,oBAAoB,oBAAoB,OAAO;AAAA,EACvE,GAAG,CAAC,MAAM,CAAC;AAEX,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,OAAO,EAAE,UAAU,YAAY,OAAO,QAAQ,QAAQ,QAAQ,GAAG,MAAM,MAAM;AAAA,MAC7E;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;","names":["state","useEffect","useEffect"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@embedpdf/plugin-fullscreen",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -27,14 +27,14 @@
|
|
|
27
27
|
"@types/react": "^18.2.0",
|
|
28
28
|
"tsup": "^8.0.0",
|
|
29
29
|
"typescript": "^5.0.0",
|
|
30
|
-
"@embedpdf/
|
|
31
|
-
"@embedpdf/
|
|
30
|
+
"@embedpdf/models": "1.0.2",
|
|
31
|
+
"@embedpdf/plugin-loader": "1.0.2"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"react": ">=16.8.0",
|
|
35
35
|
"react-dom": ">=16.8.0",
|
|
36
36
|
"preact": "^10.26.4",
|
|
37
|
-
"@embedpdf/core": "1.0.
|
|
37
|
+
"@embedpdf/core": "1.0.2"
|
|
38
38
|
},
|
|
39
39
|
"files": [
|
|
40
40
|
"dist",
|