@embedpdf/plugin-fullscreen 1.0.11 → 1.0.12
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 +2 -131
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -47
- package/dist/index.js +11 -21
- package/dist/index.js.map +1 -1
- package/dist/lib/actions.d.ts +8 -0
- package/dist/lib/fullscreen-plugin.d.ts +17 -0
- package/dist/lib/index.d.ts +11 -0
- package/dist/lib/manifest.d.ts +4 -0
- package/dist/lib/reducer.d.ts +5 -0
- package/dist/lib/types.d.ts +14 -0
- package/dist/preact/adapter.d.ts +4 -0
- package/dist/preact/core.d.ts +1 -0
- package/dist/preact/index.cjs +2 -92
- package/dist/preact/index.cjs.map +1 -1
- package/dist/preact/index.d.ts +1 -26
- package/dist/preact/index.js +10 -14
- package/dist/preact/index.js.map +1 -1
- package/dist/react/adapter.d.ts +2 -0
- package/dist/react/core.d.ts +1 -0
- package/dist/react/index.cjs +2 -92
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.ts +1 -26
- package/dist/react/index.js +10 -14
- package/dist/react/index.js.map +1 -1
- package/dist/shared-preact/components/fullscreen.d.ts +7 -0
- package/dist/shared-preact/components/index.d.ts +1 -0
- package/dist/shared-preact/hooks/index.d.ts +1 -0
- package/dist/shared-preact/hooks/use-fullscreen.d.ts +15 -0
- package/dist/shared-preact/index.d.ts +2 -0
- package/dist/shared-react/components/fullscreen.d.ts +7 -0
- package/dist/shared-react/components/index.d.ts +1 -0
- package/dist/shared-react/hooks/index.d.ts +1 -0
- package/dist/shared-react/hooks/use-fullscreen.d.ts +15 -0
- package/dist/shared-react/index.d.ts +2 -0
- package/package.json +14 -12
- package/dist/index.d.cts +0 -47
- package/dist/preact/index.d.cts +0 -26
- package/dist/react/index.d.cts +0 -26
package/dist/index.cjs
CHANGED
|
@@ -1,131 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/index.ts
|
|
21
|
-
var index_exports = {};
|
|
22
|
-
__export(index_exports, {
|
|
23
|
-
FULLSCREEN_PLUGIN_ID: () => FULLSCREEN_PLUGIN_ID,
|
|
24
|
-
FullscreenPlugin: () => FullscreenPlugin,
|
|
25
|
-
FullscreenPluginPackage: () => FullscreenPluginPackage,
|
|
26
|
-
SET_FULLSCREEN: () => SET_FULLSCREEN,
|
|
27
|
-
initialState: () => initialState,
|
|
28
|
-
manifest: () => manifest,
|
|
29
|
-
setFullscreen: () => setFullscreen
|
|
30
|
-
});
|
|
31
|
-
module.exports = __toCommonJS(index_exports);
|
|
32
|
-
|
|
33
|
-
// src/lib/manifest.ts
|
|
34
|
-
var FULLSCREEN_PLUGIN_ID = "fullscreen";
|
|
35
|
-
var manifest = {
|
|
36
|
-
id: FULLSCREEN_PLUGIN_ID,
|
|
37
|
-
name: "Fullscreen Plugin",
|
|
38
|
-
version: "1.0.0",
|
|
39
|
-
provides: ["fullscreen"],
|
|
40
|
-
requires: [],
|
|
41
|
-
optional: [],
|
|
42
|
-
defaultConfig: {
|
|
43
|
-
enabled: true
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
// src/lib/fullscreen-plugin.ts
|
|
48
|
-
var import_core = require("@embedpdf/core");
|
|
49
|
-
|
|
50
|
-
// src/lib/actions.ts
|
|
51
|
-
var SET_FULLSCREEN = "SET_FULLSCREEN";
|
|
52
|
-
function setFullscreen(payload) {
|
|
53
|
-
return { type: SET_FULLSCREEN, payload };
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// src/lib/fullscreen-plugin.ts
|
|
57
|
-
var FullscreenPlugin = class extends import_core.BasePlugin {
|
|
58
|
-
constructor(id, registry) {
|
|
59
|
-
super(id, registry);
|
|
60
|
-
this.onStateChange$ = (0, import_core.createBehaviorEmitter)();
|
|
61
|
-
this.fullscreenRequest$ = (0, import_core.createEmitter)();
|
|
62
|
-
}
|
|
63
|
-
async initialize(_) {
|
|
64
|
-
}
|
|
65
|
-
buildCapability() {
|
|
66
|
-
return {
|
|
67
|
-
isFullscreen: () => this.state.isFullscreen,
|
|
68
|
-
enableFullscreen: () => this.enableFullscreen(),
|
|
69
|
-
exitFullscreen: () => this.exitFullscreen(),
|
|
70
|
-
toggleFullscreen: () => this.toggleFullscreen(),
|
|
71
|
-
onRequest: this.fullscreenRequest$.on,
|
|
72
|
-
onStateChange: this.onStateChange$.on
|
|
73
|
-
};
|
|
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
|
-
}
|
|
91
|
-
setFullscreenState(isFullscreen) {
|
|
92
|
-
this.dispatch(setFullscreen(isFullscreen));
|
|
93
|
-
}
|
|
94
|
-
async destroy() {
|
|
95
|
-
this.fullscreenRequest$.clear();
|
|
96
|
-
super.destroy();
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
FullscreenPlugin.id = "fullscreen";
|
|
100
|
-
|
|
101
|
-
// src/lib/reducer.ts
|
|
102
|
-
var initialState = {
|
|
103
|
-
isFullscreen: false
|
|
104
|
-
};
|
|
105
|
-
var reducer = (state, action) => {
|
|
106
|
-
switch (action.type) {
|
|
107
|
-
case SET_FULLSCREEN:
|
|
108
|
-
return { ...state, isFullscreen: action.payload };
|
|
109
|
-
default:
|
|
110
|
-
return state;
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
// src/lib/index.ts
|
|
115
|
-
var FullscreenPluginPackage = {
|
|
116
|
-
manifest,
|
|
117
|
-
create: (registry) => new FullscreenPlugin(FULLSCREEN_PLUGIN_ID, registry),
|
|
118
|
-
reducer,
|
|
119
|
-
initialState
|
|
120
|
-
};
|
|
121
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
122
|
-
0 && (module.exports = {
|
|
123
|
-
FULLSCREEN_PLUGIN_ID,
|
|
124
|
-
FullscreenPlugin,
|
|
125
|
-
FullscreenPluginPackage,
|
|
126
|
-
SET_FULLSCREEN,
|
|
127
|
-
initialState,
|
|
128
|
-
manifest,
|
|
129
|
-
setFullscreen
|
|
130
|
-
});
|
|
131
|
-
//# sourceMappingURL=index.cjs.map
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),t="fullscreen",s={id:t,name:"Fullscreen Plugin",version:"1.0.0",provides:["fullscreen"],requires:[],optional:[],defaultConfig:{enabled:!0}},l="SET_FULLSCREEN";function n(e){return{type:l,payload:e}}const r=class extends e.BasePlugin{constructor(t,s){super(t,s),this.onStateChange$=e.createBehaviorEmitter(),this.fullscreenRequest$=e.createEmitter()}async initialize(e){}buildCapability(){return{isFullscreen:()=>this.state.isFullscreen,enableFullscreen:()=>this.enableFullscreen(),exitFullscreen:()=>this.exitFullscreen(),toggleFullscreen:()=>this.toggleFullscreen(),onRequest:this.fullscreenRequest$.on,onStateChange:this.onStateChange$.on}}toggleFullscreen(){this.state.isFullscreen?this.exitFullscreen():this.enableFullscreen()}enableFullscreen(){this.fullscreenRequest$.emit("enter")}exitFullscreen(){this.fullscreenRequest$.emit("exit")}onStoreUpdated(e,t){this.onStateChange$.emit(t)}setFullscreenState(e){this.dispatch(n(e))}async destroy(){this.fullscreenRequest$.clear(),super.destroy()}};r.id="fullscreen";let i=r;const u={isFullscreen:!1},c={manifest:s,create:e=>new i(t,e),reducer:(e,t)=>t.type===l?{...e,isFullscreen:t.payload}:e,initialState:u};exports.FULLSCREEN_PLUGIN_ID=t,exports.FullscreenPlugin=i,exports.FullscreenPluginPackage=c,exports.SET_FULLSCREEN=l,exports.initialState=u,exports.manifest=s,exports.setFullscreen=n;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/lib/manifest.ts","../src/lib/actions.ts","../src/lib/fullscreen-plugin.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 { 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 { 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 { 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"],"names":["FULLSCREEN_PLUGIN_ID","manifest","id","name","version","provides","requires","optional","defaultConfig","enabled","SET_FULLSCREEN","setFullscreen","payload","type","_FullscreenPlugin","BasePlugin","constructor","registry","super","this","onStateChange$","createBehaviorEmitter","fullscreenRequest$","createEmitter","initialize","_","buildCapability","isFullscreen","state","enableFullscreen","exitFullscreen","toggleFullscreen","onRequest","on","onStateChange","emit","onStoreUpdated","newState","setFullscreenState","dispatch","destroy","clear","FullscreenPlugin","initialState","FullscreenPluginPackage","create","reducer","action"],"mappings":"kHAGaA,EAAuB,aAEvBC,EAAmD,CAC9DC,GAAIF,EACJG,KAAM,oBACNC,QAAS,QACTC,SAAU,CAAC,cACXC,SAAU,GACVC,SAAU,GACVC,cAAe,CACbC,SAAS,ICXAC,EAAiB,iBASvB,SAASC,EAAcC,GACrB,MAAA,CAAEC,KAAMH,EAAgBE,UACjC,CCTO,MAAME,EAAN,cAA+BC,EAAAA,WAWpC,WAAAC,CAAYd,EAAYe,GACtBC,MAAMhB,EAAIe,GAJKE,KAAAC,eAAiBC,0BACjBF,KAAAG,mBAAqBC,iBAAgC,CAMtE,gBAAMC,CAAWC,GAA0C,CAEjD,eAAAC,GACD,MAAA,CACLC,aAAc,IAAMR,KAAKS,MAAMD,aAC/BE,iBAAkB,IAAMV,KAAKU,mBAC7BC,eAAgB,IAAMX,KAAKW,iBAC3BC,iBAAkB,IAAMZ,KAAKY,mBAC7BC,UAAWb,KAAKG,mBAAmBW,GACnCC,cAAef,KAAKC,eAAea,GACrC,CAGM,gBAAAF,GACFZ,KAAKS,MAAMD,aACbR,KAAKW,iBAELX,KAAKU,kBACP,CAGM,gBAAAA,GACDV,KAAAG,mBAAmBa,KAAK,QAAO,CAG9B,cAAAL,GACDX,KAAAG,mBAAmBa,KAAK,OAAM,CAG5B,cAAAC,CAAeX,EAAoBY,GACrClB,KAAAC,eAAee,KAAKE,EAAQ,CAG5B,kBAAAC,CAAmBX,GACnBR,KAAAoB,SAAS5B,EAAcgB,GAAa,CAG3C,aAAMa,GACJrB,KAAKG,mBAAmBmB,QACxBvB,MAAMsB,SAAQ,GAhDhB1B,EAAgBZ,GAAK,aANhB,IAAMwC,EAAN5B,ECAA,MAAM6B,EAAgC,CAC3ChB,cAAc,GCGHiB,EAKT,CACF3C,WACA4C,OAAS5B,GAAa,IAAIyB,EAAiB1C,EAAsBiB,GACjE6B,QDRiE,CAAClB,EAAOmB,IACjEA,EAAOlC,OACRH,EACI,IAAKkB,EAAOD,aAAcoB,EAAOnC,SAEjCgB,ECIXe"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,47 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
interface FullscreenState {
|
|
4
|
-
isFullscreen: boolean;
|
|
5
|
-
}
|
|
6
|
-
interface FullscreenPluginConfig extends BasePluginConfig {
|
|
7
|
-
}
|
|
8
|
-
interface FullscreenCapability {
|
|
9
|
-
isFullscreen: () => boolean;
|
|
10
|
-
enableFullscreen: () => void;
|
|
11
|
-
exitFullscreen: () => void;
|
|
12
|
-
toggleFullscreen: () => void;
|
|
13
|
-
onRequest: EventHook<'enter' | 'exit'>;
|
|
14
|
-
onStateChange: EventHook<FullscreenState>;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
declare const SET_FULLSCREEN = "SET_FULLSCREEN";
|
|
18
|
-
interface SetFullscreenAction extends Action {
|
|
19
|
-
type: typeof SET_FULLSCREEN;
|
|
20
|
-
payload: boolean;
|
|
21
|
-
}
|
|
22
|
-
type FullscreenAction = SetFullscreenAction;
|
|
23
|
-
declare function setFullscreen(payload: boolean): SetFullscreenAction;
|
|
24
|
-
|
|
25
|
-
declare class FullscreenPlugin extends BasePlugin<FullscreenPluginConfig, FullscreenCapability, FullscreenState, FullscreenAction> {
|
|
26
|
-
static readonly id: "fullscreen";
|
|
27
|
-
private readonly onStateChange$;
|
|
28
|
-
private readonly fullscreenRequest$;
|
|
29
|
-
constructor(id: string, registry: PluginRegistry);
|
|
30
|
-
initialize(_: FullscreenPluginConfig): Promise<void>;
|
|
31
|
-
protected buildCapability(): FullscreenCapability;
|
|
32
|
-
private toggleFullscreen;
|
|
33
|
-
private enableFullscreen;
|
|
34
|
-
private exitFullscreen;
|
|
35
|
-
onStoreUpdated(_: FullscreenState, newState: FullscreenState): void;
|
|
36
|
-
setFullscreenState(isFullscreen: boolean): void;
|
|
37
|
-
destroy(): Promise<void>;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
declare const initialState: FullscreenState;
|
|
41
|
-
|
|
42
|
-
declare const FULLSCREEN_PLUGIN_ID = "fullscreen";
|
|
43
|
-
declare const manifest: PluginManifest<FullscreenPluginConfig>;
|
|
44
|
-
|
|
45
|
-
declare const FullscreenPluginPackage: PluginPackage<FullscreenPlugin, FullscreenPluginConfig, FullscreenState, FullscreenAction>;
|
|
46
|
-
|
|
47
|
-
export { FULLSCREEN_PLUGIN_ID, type FullscreenAction, type FullscreenCapability, FullscreenPlugin, type FullscreenPluginConfig, FullscreenPluginPackage, type FullscreenState, SET_FULLSCREEN, type SetFullscreenAction, initialState, manifest, setFullscreen };
|
|
1
|
+
export * from './lib';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { BasePlugin, createBehaviorEmitter, createEmitter } from "@embedpdf/core";
|
|
2
|
+
const FULLSCREEN_PLUGIN_ID = "fullscreen";
|
|
3
|
+
const manifest = {
|
|
4
4
|
id: FULLSCREEN_PLUGIN_ID,
|
|
5
5
|
name: "Fullscreen Plugin",
|
|
6
6
|
version: "1.0.0",
|
|
@@ -11,18 +11,11 @@ var manifest = {
|
|
|
11
11
|
enabled: true
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
|
-
|
|
15
|
-
// src/lib/fullscreen-plugin.ts
|
|
16
|
-
import { BasePlugin, createBehaviorEmitter, createEmitter } from "@embedpdf/core";
|
|
17
|
-
|
|
18
|
-
// src/lib/actions.ts
|
|
19
|
-
var SET_FULLSCREEN = "SET_FULLSCREEN";
|
|
14
|
+
const SET_FULLSCREEN = "SET_FULLSCREEN";
|
|
20
15
|
function setFullscreen(payload) {
|
|
21
16
|
return { type: SET_FULLSCREEN, payload };
|
|
22
17
|
}
|
|
23
|
-
|
|
24
|
-
// src/lib/fullscreen-plugin.ts
|
|
25
|
-
var FullscreenPlugin = class extends BasePlugin {
|
|
18
|
+
const _FullscreenPlugin = class _FullscreenPlugin extends BasePlugin {
|
|
26
19
|
constructor(id, registry) {
|
|
27
20
|
super(id, registry);
|
|
28
21
|
this.onStateChange$ = createBehaviorEmitter();
|
|
@@ -64,13 +57,12 @@ var FullscreenPlugin = class extends BasePlugin {
|
|
|
64
57
|
super.destroy();
|
|
65
58
|
}
|
|
66
59
|
};
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
var initialState = {
|
|
60
|
+
_FullscreenPlugin.id = "fullscreen";
|
|
61
|
+
let FullscreenPlugin = _FullscreenPlugin;
|
|
62
|
+
const initialState = {
|
|
71
63
|
isFullscreen: false
|
|
72
64
|
};
|
|
73
|
-
|
|
65
|
+
const reducer = (state, action) => {
|
|
74
66
|
switch (action.type) {
|
|
75
67
|
case SET_FULLSCREEN:
|
|
76
68
|
return { ...state, isFullscreen: action.payload };
|
|
@@ -78,9 +70,7 @@ var reducer = (state, action) => {
|
|
|
78
70
|
return state;
|
|
79
71
|
}
|
|
80
72
|
};
|
|
81
|
-
|
|
82
|
-
// src/lib/index.ts
|
|
83
|
-
var FullscreenPluginPackage = {
|
|
73
|
+
const FullscreenPluginPackage = {
|
|
84
74
|
manifest,
|
|
85
75
|
create: (registry) => new FullscreenPlugin(FULLSCREEN_PLUGIN_ID, registry),
|
|
86
76
|
reducer,
|
|
@@ -95,4 +85,4 @@ export {
|
|
|
95
85
|
manifest,
|
|
96
86
|
setFullscreen
|
|
97
87
|
};
|
|
98
|
-
//# sourceMappingURL=index.js.map
|
|
88
|
+
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/manifest.ts","../src/lib/
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/lib/manifest.ts","../src/lib/actions.ts","../src/lib/fullscreen-plugin.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 { 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 { 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 { 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"],"names":[],"mappings":";AAGO,MAAM,uBAAuB;AAE7B,MAAM,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,EAAA;AAEb;ACbO,MAAM,iBAAiB;AASvB,SAAS,cAAc,SAAuC;AAC5D,SAAA,EAAE,MAAM,gBAAgB,QAAQ;AACzC;ACTO,MAAM,oBAAN,MAAM,0BAAyB,WAKpC;AAAA,EAMA,YAAY,IAAY,UAA0B;AAChD,UAAM,IAAI,QAAQ;AAJpB,SAAiB,iBAAiB,sBAAuC;AACzE,SAAiB,qBAAqB,cAAgC;AAAA,EAAA;AAAA,EAMtE,MAAM,WAAW,GAA0C;AAAA,EAAA;AAAA,EAEjD,kBAAwC;AACzC,WAAA;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,EAAA;AAAA,EAGM,mBAAyB;AAC3B,QAAA,KAAK,MAAM,cAAc;AAC3B,WAAK,eAAe;AAAA,IAAA,OACf;AACL,WAAK,iBAAiB;AAAA,IAAA;AAAA,EACxB;AAAA,EAGM,mBAAyB;AAC1B,SAAA,mBAAmB,KAAK,OAAO;AAAA,EAAA;AAAA,EAG9B,iBAAuB;AACxB,SAAA,mBAAmB,KAAK,MAAM;AAAA,EAAA;AAAA,EAG5B,eAAe,GAAoB,UAAiC;AACtE,SAAA,eAAe,KAAK,QAAQ;AAAA,EAAA;AAAA,EAG5B,mBAAmB,cAA6B;AAChD,SAAA,SAAS,cAAc,YAAY,CAAC;AAAA,EAAA;AAAA,EAG3C,MAAM,UAAyB;AAC7B,SAAK,mBAAmB,MAAM;AAC9B,UAAM,QAAQ;AAAA,EAAA;AAElB;AAlDE,kBAAgB,KAAK;AANhB,IAAM,mBAAN;ACAA,MAAM,eAAgC;AAAA,EAC3C,cAAc;AAChB;AAEa,MAAA,UAAsD,CAAC,OAAO,WAAW;AACpF,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK;AACH,aAAO,EAAE,GAAG,OAAO,cAAc,OAAO,QAAQ;AAAA,IAClD;AACS,aAAA;AAAA,EAAA;AAEb;ACPO,MAAM,0BAKT;AAAA,EACF;AAAA,EACA,QAAQ,CAAC,aAAa,IAAI,iBAAiB,sBAAsB,QAAQ;AAAA,EACzE;AAAA,EACA;AACF;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Action } from '@embedpdf/core';
|
|
2
|
+
export declare const SET_FULLSCREEN = "SET_FULLSCREEN";
|
|
3
|
+
export interface SetFullscreenAction extends Action {
|
|
4
|
+
type: typeof SET_FULLSCREEN;
|
|
5
|
+
payload: boolean;
|
|
6
|
+
}
|
|
7
|
+
export type FullscreenAction = SetFullscreenAction;
|
|
8
|
+
export declare function setFullscreen(payload: boolean): SetFullscreenAction;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BasePlugin, PluginRegistry } from '@embedpdf/core';
|
|
2
|
+
import { FullscreenCapability, FullscreenPluginConfig, FullscreenState } from './types';
|
|
3
|
+
import { FullscreenAction } from './actions';
|
|
4
|
+
export declare class FullscreenPlugin extends BasePlugin<FullscreenPluginConfig, FullscreenCapability, FullscreenState, FullscreenAction> {
|
|
5
|
+
static readonly id: "fullscreen";
|
|
6
|
+
private readonly onStateChange$;
|
|
7
|
+
private readonly fullscreenRequest$;
|
|
8
|
+
constructor(id: string, registry: PluginRegistry);
|
|
9
|
+
initialize(_: FullscreenPluginConfig): Promise<void>;
|
|
10
|
+
protected buildCapability(): FullscreenCapability;
|
|
11
|
+
private toggleFullscreen;
|
|
12
|
+
private enableFullscreen;
|
|
13
|
+
private exitFullscreen;
|
|
14
|
+
onStoreUpdated(_: FullscreenState, newState: FullscreenState): void;
|
|
15
|
+
setFullscreenState(isFullscreen: boolean): void;
|
|
16
|
+
destroy(): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PluginPackage } from '@embedpdf/core';
|
|
2
|
+
import { FullscreenPluginConfig, FullscreenState } from './types';
|
|
3
|
+
import { FullscreenPlugin } from './fullscreen-plugin';
|
|
4
|
+
import { initialState } from './reducer';
|
|
5
|
+
import { FullscreenAction } from './actions';
|
|
6
|
+
export declare const FullscreenPluginPackage: PluginPackage<FullscreenPlugin, FullscreenPluginConfig, FullscreenState, FullscreenAction>;
|
|
7
|
+
export * from './fullscreen-plugin';
|
|
8
|
+
export * from './types';
|
|
9
|
+
export * from './manifest';
|
|
10
|
+
export * from './actions';
|
|
11
|
+
export { initialState };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BasePluginConfig, EventHook } from '@embedpdf/core';
|
|
2
|
+
export interface FullscreenState {
|
|
3
|
+
isFullscreen: boolean;
|
|
4
|
+
}
|
|
5
|
+
export interface FullscreenPluginConfig extends BasePluginConfig {
|
|
6
|
+
}
|
|
7
|
+
export interface FullscreenCapability {
|
|
8
|
+
isFullscreen: () => boolean;
|
|
9
|
+
enableFullscreen: () => void;
|
|
10
|
+
exitFullscreen: () => void;
|
|
11
|
+
toggleFullscreen: () => void;
|
|
12
|
+
onRequest: EventHook<'enter' | 'exit'>;
|
|
13
|
+
onStateChange: EventHook<FullscreenState>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { useEffect, useRef, useState, useCallback } from 'preact/hooks';
|
|
2
|
+
export type { ComponentChildren as ReactNode } from 'preact';
|
|
3
|
+
export type CSSProperties = import('preact').JSX.CSSProperties;
|
|
4
|
+
export type HTMLAttributes<T = any> = import('preact').JSX.HTMLAttributes<T extends EventTarget ? T : never>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@embedpdf/core/preact';
|
package/dist/preact/index.cjs
CHANGED
|
@@ -1,92 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/preact/index.ts
|
|
21
|
-
var preact_exports = {};
|
|
22
|
-
__export(preact_exports, {
|
|
23
|
-
FullscreenProvider: () => FullscreenProvider,
|
|
24
|
-
useFullscreen: () => useFullscreen,
|
|
25
|
-
useFullscreenCapability: () => useFullscreenCapability,
|
|
26
|
-
useFullscreenPlugin: () => useFullscreenPlugin
|
|
27
|
-
});
|
|
28
|
-
module.exports = __toCommonJS(preact_exports);
|
|
29
|
-
|
|
30
|
-
// src/preact/hooks/use-fullscreen.ts
|
|
31
|
-
var import_preact = require("@embedpdf/core/preact");
|
|
32
|
-
var import_plugin_fullscreen = require("@embedpdf/plugin-fullscreen");
|
|
33
|
-
var import_hooks = require("preact/hooks");
|
|
34
|
-
var useFullscreenPlugin = () => (0, import_preact.usePlugin)(import_plugin_fullscreen.FullscreenPlugin.id);
|
|
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
|
-
};
|
|
49
|
-
|
|
50
|
-
// src/preact/components/fullscreen.tsx
|
|
51
|
-
var import_hooks2 = require("preact/hooks");
|
|
52
|
-
var import_jsx_runtime = require("preact/jsx-runtime");
|
|
53
|
-
function FullscreenProvider({ children, ...props }) {
|
|
54
|
-
const { provides: fullscreenCapability } = useFullscreenCapability();
|
|
55
|
-
const { plugin } = useFullscreenPlugin();
|
|
56
|
-
const ref = (0, import_hooks2.useRef)(null);
|
|
57
|
-
(0, import_hooks2.useEffect)(() => {
|
|
58
|
-
if (!fullscreenCapability) return;
|
|
59
|
-
const unsub = fullscreenCapability.onRequest(async (action) => {
|
|
60
|
-
if (action === "enter") {
|
|
61
|
-
const el = ref.current;
|
|
62
|
-
if (el && !document.fullscreenElement) await el.requestFullscreen();
|
|
63
|
-
} else {
|
|
64
|
-
if (document.fullscreenElement) await document.exitFullscreen();
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
return unsub;
|
|
68
|
-
}, [fullscreenCapability]);
|
|
69
|
-
(0, import_hooks2.useEffect)(() => {
|
|
70
|
-
if (!plugin) return;
|
|
71
|
-
const handler = () => plugin.setFullscreenState(!!document.fullscreenElement);
|
|
72
|
-
document.addEventListener("fullscreenchange", handler);
|
|
73
|
-
return () => document.removeEventListener("fullscreenchange", handler);
|
|
74
|
-
}, [plugin]);
|
|
75
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
76
|
-
"div",
|
|
77
|
-
{
|
|
78
|
-
...props,
|
|
79
|
-
style: { position: "relative", width: "100%", height: "100%", ...props.style },
|
|
80
|
-
ref,
|
|
81
|
-
children
|
|
82
|
-
}
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
86
|
-
0 && (module.exports = {
|
|
87
|
-
FullscreenProvider,
|
|
88
|
-
useFullscreen,
|
|
89
|
-
useFullscreenCapability,
|
|
90
|
-
useFullscreenPlugin
|
|
91
|
-
});
|
|
92
|
-
//# sourceMappingURL=index.cjs.map
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core/preact"),t=require("@embedpdf/plugin-fullscreen"),r=require("preact/hooks"),n=require("preact/jsx-runtime"),u=()=>e.usePlugin(t.FullscreenPlugin.id),l=()=>e.useCapability(t.FullscreenPlugin.id);exports.FullscreenProvider=function({children:e,...t}){const{provides:s}=l(),{plugin:i}=u(),c=r.useRef(null);return r.useEffect((()=>{if(!s)return;return s.onRequest((async e=>{if("enter"===e){const e=c.current;e&&!document.fullscreenElement&&await e.requestFullscreen()}else document.fullscreenElement&&await document.exitFullscreen()}))}),[s]),r.useEffect((()=>{if(!i)return;const e=()=>i.setFullscreenState(!!document.fullscreenElement);return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)}),[i]),n.jsx("div",{...t,style:{position:"relative",width:"100%",height:"100%",...t.style},ref:c,children:e})},exports.useFullscreen=()=>{const{provides:e}=l(),[n,u]=r.useState(t.initialState);return r.useEffect((()=>null==e?void 0:e.onStateChange((e=>{u(e)}))),[e]),{provides:e,state:n}},exports.useFullscreenCapability=l,exports.useFullscreenPlugin=u;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-fullscreen.ts","../../src/shared/components/fullscreen.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { FullscreenPlugin, FullscreenState, initialState } from '@embedpdf/plugin-fullscreen';\nimport { useState, useEffect } from '@framework';\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, HTMLAttributes, CSSProperties, ReactNode } from '@framework';\n\nimport { useFullscreenPlugin, useFullscreenCapability } from '../hooks';\n\ntype FullscreenProviderProps = Omit<HTMLAttributes<HTMLDivElement>, 'style'> & {\n children: ReactNode;\n style?: 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"],"names":["useFullscreenPlugin","usePlugin","FullscreenPlugin","id","useFullscreenCapability","useCapability","children","props","provides","fullscreenCapability","plugin","ref","useRef","useEffect","onRequest","async","action","el","current","document","fullscreenElement","requestFullscreen","exitFullscreen","handler","setFullscreenState","addEventListener","removeEventListener","jsxRuntime","jsx","style","position","width","height","state","setState","useState","initialState","onStateChange"],"mappings":"4NAIaA,EAAsB,IAAMC,YAA4BC,EAAAA,iBAAiBC,IACzEC,EAA0B,IAAMC,gBAAgCH,EAAAA,iBAAiBC,+BCIvF,UAA4BG,SAAEA,KAAaC,IAChD,MAAQC,SAAUC,GAAyBL,KACrCM,OAAEA,GAAWV,IACbW,EAAMC,SAAuB,MAyBjC,OAvBFC,EAAAA,WAAU,KACR,IAAKJ,EAAsB,OAWpB,OATOA,EAAqBK,WAAUC,MAAOC,IAClD,GAAe,UAAXA,EAAoB,CACtB,MAAMC,EAAKN,EAAIO,QACXD,IAAOE,SAASC,yBAAyBH,EAAGI,mBAAkB,MAE9DF,SAASC,yBAAyBD,SAASG,gBAAe,GAI3D,GACN,CAACb,IAEJI,EAAAA,WAAU,KACR,IAAKH,EAAQ,OACb,MAAMa,EAAU,IAAMb,EAAOc,qBAAqBL,SAASC,mBAE3D,OADSD,SAAAM,iBAAiB,mBAAoBF,GACvC,IAAMJ,SAASO,oBAAoB,mBAAoBH,EAAO,GACpE,CAACb,IAGFiB,EAAAC,IAAC,MAAA,IACKrB,EACJsB,MAAO,CAAEC,SAAU,WAAYC,MAAO,OAAQC,OAAQ,UAAWzB,EAAMsB,OACvElB,MAECL,YAGP,wBDtC6B,KACrB,MAAAE,SAAEA,GAAaJ,KACd6B,EAAOC,GAAYC,EAAAA,SAA0BC,EAAAA,cAQ7C,OANPvB,EAAAA,WAAU,IACD,MAAAL,OAAA,EAAAA,EAAU6B,eAAeJ,IAC9BC,EAASD,EAAK,KAEf,CAACzB,IAEG,CACLA,WACAyB,QACF"}
|
package/dist/preact/index.d.ts
CHANGED
|
@@ -1,26 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { FullscreenPlugin, FullscreenState } from '@embedpdf/plugin-fullscreen';
|
|
3
|
-
import { JSX, ComponentChildren } from 'preact';
|
|
4
|
-
|
|
5
|
-
declare const useFullscreenPlugin: () => {
|
|
6
|
-
plugin: FullscreenPlugin | null;
|
|
7
|
-
isLoading: boolean;
|
|
8
|
-
ready: Promise<void>;
|
|
9
|
-
};
|
|
10
|
-
declare const useFullscreenCapability: () => {
|
|
11
|
-
provides: Readonly<_embedpdf_plugin_fullscreen.FullscreenCapability> | null;
|
|
12
|
-
isLoading: boolean;
|
|
13
|
-
ready: Promise<void>;
|
|
14
|
-
};
|
|
15
|
-
declare const useFullscreen: () => {
|
|
16
|
-
provides: Readonly<_embedpdf_plugin_fullscreen.FullscreenCapability> | null;
|
|
17
|
-
state: FullscreenState;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
type FullscreenProviderProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, 'style'> & {
|
|
21
|
-
children: ComponentChildren;
|
|
22
|
-
style?: JSX.CSSProperties;
|
|
23
|
-
};
|
|
24
|
-
declare function FullscreenProvider({ children, ...props }: FullscreenProviderProps): JSX.Element;
|
|
25
|
-
|
|
26
|
-
export { FullscreenProvider, useFullscreen, useFullscreenCapability, useFullscreenPlugin };
|
|
1
|
+
export * from '../shared-preact';
|
package/dist/preact/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
import { useCapability, usePlugin } from "@embedpdf/core/preact";
|
|
1
|
+
import { usePlugin, useCapability } from "@embedpdf/core/preact";
|
|
3
2
|
import { FullscreenPlugin, initialState } from "@embedpdf/plugin-fullscreen";
|
|
4
|
-
import { useState, useEffect } from "preact/hooks";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
import { useState, useEffect, useRef } from "preact/hooks";
|
|
4
|
+
import { jsx } from "preact/jsx-runtime";
|
|
5
|
+
const useFullscreenPlugin = () => usePlugin(FullscreenPlugin.id);
|
|
6
|
+
const useFullscreenCapability = () => useCapability(FullscreenPlugin.id);
|
|
7
|
+
const useFullscreen = () => {
|
|
8
8
|
const { provides } = useFullscreenCapability();
|
|
9
9
|
const [state, setState] = useState(initialState);
|
|
10
10
|
useEffect(() => {
|
|
11
|
-
return provides
|
|
11
|
+
return provides == null ? void 0 : provides.onStateChange((state2) => {
|
|
12
12
|
setState(state2);
|
|
13
13
|
});
|
|
14
14
|
}, [provides]);
|
|
@@ -17,15 +17,11 @@ var useFullscreen = () => {
|
|
|
17
17
|
state
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
|
-
|
|
21
|
-
// src/preact/components/fullscreen.tsx
|
|
22
|
-
import { useEffect as useEffect2, useRef } from "preact/hooks";
|
|
23
|
-
import { jsx } from "preact/jsx-runtime";
|
|
24
20
|
function FullscreenProvider({ children, ...props }) {
|
|
25
21
|
const { provides: fullscreenCapability } = useFullscreenCapability();
|
|
26
22
|
const { plugin } = useFullscreenPlugin();
|
|
27
23
|
const ref = useRef(null);
|
|
28
|
-
|
|
24
|
+
useEffect(() => {
|
|
29
25
|
if (!fullscreenCapability) return;
|
|
30
26
|
const unsub = fullscreenCapability.onRequest(async (action) => {
|
|
31
27
|
if (action === "enter") {
|
|
@@ -37,7 +33,7 @@ function FullscreenProvider({ children, ...props }) {
|
|
|
37
33
|
});
|
|
38
34
|
return unsub;
|
|
39
35
|
}, [fullscreenCapability]);
|
|
40
|
-
|
|
36
|
+
useEffect(() => {
|
|
41
37
|
if (!plugin) return;
|
|
42
38
|
const handler = () => plugin.setFullscreenState(!!document.fullscreenElement);
|
|
43
39
|
document.addEventListener("fullscreenchange", handler);
|
|
@@ -59,4 +55,4 @@ export {
|
|
|
59
55
|
useFullscreenCapability,
|
|
60
56
|
useFullscreenPlugin
|
|
61
57
|
};
|
|
62
|
-
//# sourceMappingURL=index.js.map
|
|
58
|
+
//# sourceMappingURL=index.js.map
|
package/dist/preact/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/shared/hooks/use-fullscreen.ts","../../src/shared/components/fullscreen.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { FullscreenPlugin, FullscreenState, initialState } from '@embedpdf/plugin-fullscreen';\nimport { useState, useEffect } from '@framework';\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, HTMLAttributes, CSSProperties, ReactNode } from '@framework';\n\nimport { useFullscreenPlugin, useFullscreenCapability } from '../hooks';\n\ntype FullscreenProviderProps = Omit<HTMLAttributes<HTMLDivElement>, 'style'> & {\n children: ReactNode;\n style?: 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"],"names":["state"],"mappings":";;;;AAIO,MAAM,sBAAsB,MAAM,UAA4B,iBAAiB,EAAE;AACjF,MAAM,0BAA0B,MAAM,cAAgC,iBAAiB,EAAE;AAEzF,MAAM,gBAAgB,MAAM;AAC3B,QAAA,EAAE,SAAS,IAAI,wBAAwB;AAC7C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA0B,YAAY;AAEhE,YAAU,MAAM;AACP,WAAA,qCAAU,cAAc,CAACA,WAAU;AACxC,eAASA,MAAK;AAAA,IAAA;AAAA,EACf,GACA,CAAC,QAAQ,CAAC;AAEN,SAAA;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;ACZO,SAAS,mBAAmB,EAAE,UAAU,GAAG,SAAkC;AAClF,QAAM,EAAE,UAAU,qBAAqB,IAAI,wBAAwB;AAC7D,QAAA,EAAE,OAAO,IAAI,oBAAoB;AACjC,QAAA,MAAM,OAAuB,IAAI;AAEvC,YAAU,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,MAAA,OAC7D;AACL,YAAI,SAAS,kBAAyB,OAAA,SAAS,eAAe;AAAA,MAAA;AAAA,IAChE,CACD;AAEM,WAAA;AAAA,EAAA,GACN,CAAC,oBAAoB,CAAC;AAEzB,YAAU,MAAM;AACd,QAAI,CAAC,OAAQ;AACb,UAAM,UAAU,MAAM,OAAO,mBAAmB,CAAC,CAAC,SAAS,iBAAiB;AACnE,aAAA,iBAAiB,oBAAoB,OAAO;AACrD,WAAO,MAAM,SAAS,oBAAoB,oBAAoB,OAAO;AAAA,EAAA,GACpE,CAAC,MAAM,CAAC;AAGT,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,OAAO,EAAE,UAAU,YAAY,OAAO,QAAQ,QAAQ,QAAQ,GAAG,MAAM,MAAM;AAAA,MAC7E;AAAA,MAEC;AAAA,IAAA;AAAA,EACH;AAEJ;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@embedpdf/core/react';
|
package/dist/react/index.cjs
CHANGED
|
@@ -1,92 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/react/index.ts
|
|
21
|
-
var react_exports = {};
|
|
22
|
-
__export(react_exports, {
|
|
23
|
-
FullscreenProvider: () => FullscreenProvider,
|
|
24
|
-
useFullscreen: () => useFullscreen,
|
|
25
|
-
useFullscreenCapability: () => useFullscreenCapability,
|
|
26
|
-
useFullscreenPlugin: () => useFullscreenPlugin
|
|
27
|
-
});
|
|
28
|
-
module.exports = __toCommonJS(react_exports);
|
|
29
|
-
|
|
30
|
-
// src/react/hooks/use-fullscreen.ts
|
|
31
|
-
var import_react = require("@embedpdf/core/react");
|
|
32
|
-
var import_plugin_fullscreen = require("@embedpdf/plugin-fullscreen");
|
|
33
|
-
var import_react2 = require("react");
|
|
34
|
-
var useFullscreenPlugin = () => (0, import_react.usePlugin)(import_plugin_fullscreen.FullscreenPlugin.id);
|
|
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
|
-
};
|
|
49
|
-
|
|
50
|
-
// src/react/components/fullscreen.tsx
|
|
51
|
-
var import_react3 = require("react");
|
|
52
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
53
|
-
function FullscreenProvider({ children, ...props }) {
|
|
54
|
-
const { provides: fullscreenCapability } = useFullscreenCapability();
|
|
55
|
-
const { plugin } = useFullscreenPlugin();
|
|
56
|
-
const ref = (0, import_react3.useRef)(null);
|
|
57
|
-
(0, import_react3.useEffect)(() => {
|
|
58
|
-
if (!fullscreenCapability) return;
|
|
59
|
-
const unsub = fullscreenCapability.onRequest(async (action) => {
|
|
60
|
-
if (action === "enter") {
|
|
61
|
-
const el = ref.current;
|
|
62
|
-
if (el && !document.fullscreenElement) await el.requestFullscreen();
|
|
63
|
-
} else {
|
|
64
|
-
if (document.fullscreenElement) await document.exitFullscreen();
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
return unsub;
|
|
68
|
-
}, [fullscreenCapability]);
|
|
69
|
-
(0, import_react3.useEffect)(() => {
|
|
70
|
-
if (!plugin) return;
|
|
71
|
-
const handler = () => plugin.setFullscreenState(!!document.fullscreenElement);
|
|
72
|
-
document.addEventListener("fullscreenchange", handler);
|
|
73
|
-
return () => document.removeEventListener("fullscreenchange", handler);
|
|
74
|
-
}, [plugin]);
|
|
75
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
76
|
-
"div",
|
|
77
|
-
{
|
|
78
|
-
...props,
|
|
79
|
-
style: { position: "relative", width: "100%", height: "100%", ...props.style },
|
|
80
|
-
ref,
|
|
81
|
-
children
|
|
82
|
-
}
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
86
|
-
0 && (module.exports = {
|
|
87
|
-
FullscreenProvider,
|
|
88
|
-
useFullscreen,
|
|
89
|
-
useFullscreenCapability,
|
|
90
|
-
useFullscreenPlugin
|
|
91
|
-
});
|
|
92
|
-
//# sourceMappingURL=index.cjs.map
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core/react"),t=require("@embedpdf/plugin-fullscreen"),r=require("react"),n=require("react/jsx-runtime"),u=()=>e.usePlugin(t.FullscreenPlugin.id),l=()=>e.useCapability(t.FullscreenPlugin.id);exports.FullscreenProvider=function({children:e,...t}){const{provides:s}=l(),{plugin:i}=u(),c=r.useRef(null);return r.useEffect((()=>{if(!s)return;return s.onRequest((async e=>{if("enter"===e){const e=c.current;e&&!document.fullscreenElement&&await e.requestFullscreen()}else document.fullscreenElement&&await document.exitFullscreen()}))}),[s]),r.useEffect((()=>{if(!i)return;const e=()=>i.setFullscreenState(!!document.fullscreenElement);return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)}),[i]),n.jsx("div",{...t,style:{position:"relative",width:"100%",height:"100%",...t.style},ref:c,children:e})},exports.useFullscreen=()=>{const{provides:e}=l(),[n,u]=r.useState(t.initialState);return r.useEffect((()=>null==e?void 0:e.onStateChange((e=>{u(e)}))),[e]),{provides:e,state:n}},exports.useFullscreenCapability=l,exports.useFullscreenPlugin=u;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
package/dist/react/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-fullscreen.ts","../../src/shared/components/fullscreen.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { FullscreenPlugin, FullscreenState, initialState } from '@embedpdf/plugin-fullscreen';\nimport { useState, useEffect } from '@framework';\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, HTMLAttributes, CSSProperties, ReactNode } from '@framework';\n\nimport { useFullscreenPlugin, useFullscreenCapability } from '../hooks';\n\ntype FullscreenProviderProps = Omit<HTMLAttributes<HTMLDivElement>, 'style'> & {\n children: ReactNode;\n style?: 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"],"names":["useFullscreenPlugin","usePlugin","FullscreenPlugin","id","useFullscreenCapability","useCapability","children","props","provides","fullscreenCapability","plugin","ref","useRef","useEffect","onRequest","async","action","el","current","document","fullscreenElement","requestFullscreen","exitFullscreen","handler","setFullscreenState","addEventListener","removeEventListener","jsxRuntime","jsx","style","position","width","height","state","setState","useState","initialState","onStateChange"],"mappings":"mNAIaA,EAAsB,IAAMC,YAA4BC,EAAAA,iBAAiBC,IACzEC,EAA0B,IAAMC,gBAAgCH,EAAAA,iBAAiBC,+BCIvF,UAA4BG,SAAEA,KAAaC,IAChD,MAAQC,SAAUC,GAAyBL,KACrCM,OAAEA,GAAWV,IACbW,EAAMC,SAAuB,MAyBjC,OAvBFC,EAAAA,WAAU,KACR,IAAKJ,EAAsB,OAWpB,OATOA,EAAqBK,WAAUC,MAAOC,IAClD,GAAe,UAAXA,EAAoB,CACtB,MAAMC,EAAKN,EAAIO,QACXD,IAAOE,SAASC,yBAAyBH,EAAGI,mBAAkB,MAE9DF,SAASC,yBAAyBD,SAASG,gBAAe,GAI3D,GACN,CAACb,IAEJI,EAAAA,WAAU,KACR,IAAKH,EAAQ,OACb,MAAMa,EAAU,IAAMb,EAAOc,qBAAqBL,SAASC,mBAE3D,OADSD,SAAAM,iBAAiB,mBAAoBF,GACvC,IAAMJ,SAASO,oBAAoB,mBAAoBH,EAAO,GACpE,CAACb,IAGFiB,EAAAC,IAAC,MAAA,IACKrB,EACJsB,MAAO,CAAEC,SAAU,WAAYC,MAAO,OAAQC,OAAQ,UAAWzB,EAAMsB,OACvElB,MAECL,YAGP,wBDtC6B,KACrB,MAAAE,SAAEA,GAAaJ,KACd6B,EAAOC,GAAYC,EAAAA,SAA0BC,EAAAA,cAQ7C,OANPvB,EAAAA,WAAU,IACD,MAAAL,OAAA,EAAAA,EAAU6B,eAAeJ,IAC9BC,EAASD,EAAK,KAEf,CAACzB,IAEG,CACLA,WACAyB,QACF"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,26 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { FullscreenPlugin, FullscreenState } from '@embedpdf/plugin-fullscreen';
|
|
3
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
|
|
5
|
-
declare const useFullscreenPlugin: () => {
|
|
6
|
-
plugin: FullscreenPlugin | null;
|
|
7
|
-
isLoading: boolean;
|
|
8
|
-
ready: Promise<void>;
|
|
9
|
-
};
|
|
10
|
-
declare const useFullscreenCapability: () => {
|
|
11
|
-
provides: Readonly<_embedpdf_plugin_fullscreen.FullscreenCapability> | null;
|
|
12
|
-
isLoading: boolean;
|
|
13
|
-
ready: Promise<void>;
|
|
14
|
-
};
|
|
15
|
-
declare const useFullscreen: () => {
|
|
16
|
-
provides: Readonly<_embedpdf_plugin_fullscreen.FullscreenCapability> | null;
|
|
17
|
-
state: FullscreenState;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
type FullscreenProviderProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> & {
|
|
21
|
-
children: React.ReactNode;
|
|
22
|
-
style?: React.CSSProperties;
|
|
23
|
-
};
|
|
24
|
-
declare function FullscreenProvider({ children, ...props }: FullscreenProviderProps): react_jsx_runtime.JSX.Element;
|
|
25
|
-
|
|
26
|
-
export { FullscreenProvider, useFullscreen, useFullscreenCapability, useFullscreenPlugin };
|
|
1
|
+
export * from '../shared-react';
|
package/dist/react/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
import { useCapability, usePlugin } from "@embedpdf/core/react";
|
|
1
|
+
import { usePlugin, useCapability } from "@embedpdf/core/react";
|
|
3
2
|
import { FullscreenPlugin, initialState } from "@embedpdf/plugin-fullscreen";
|
|
4
|
-
import { useState, useEffect } from "react";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
import { useState, useEffect, useRef } from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
const useFullscreenPlugin = () => usePlugin(FullscreenPlugin.id);
|
|
6
|
+
const useFullscreenCapability = () => useCapability(FullscreenPlugin.id);
|
|
7
|
+
const useFullscreen = () => {
|
|
8
8
|
const { provides } = useFullscreenCapability();
|
|
9
9
|
const [state, setState] = useState(initialState);
|
|
10
10
|
useEffect(() => {
|
|
11
|
-
return provides
|
|
11
|
+
return provides == null ? void 0 : provides.onStateChange((state2) => {
|
|
12
12
|
setState(state2);
|
|
13
13
|
});
|
|
14
14
|
}, [provides]);
|
|
@@ -17,15 +17,11 @@ var useFullscreen = () => {
|
|
|
17
17
|
state
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
|
-
|
|
21
|
-
// src/react/components/fullscreen.tsx
|
|
22
|
-
import { useEffect as useEffect2, useRef } from "react";
|
|
23
|
-
import { jsx } from "react/jsx-runtime";
|
|
24
20
|
function FullscreenProvider({ children, ...props }) {
|
|
25
21
|
const { provides: fullscreenCapability } = useFullscreenCapability();
|
|
26
22
|
const { plugin } = useFullscreenPlugin();
|
|
27
23
|
const ref = useRef(null);
|
|
28
|
-
|
|
24
|
+
useEffect(() => {
|
|
29
25
|
if (!fullscreenCapability) return;
|
|
30
26
|
const unsub = fullscreenCapability.onRequest(async (action) => {
|
|
31
27
|
if (action === "enter") {
|
|
@@ -37,7 +33,7 @@ function FullscreenProvider({ children, ...props }) {
|
|
|
37
33
|
});
|
|
38
34
|
return unsub;
|
|
39
35
|
}, [fullscreenCapability]);
|
|
40
|
-
|
|
36
|
+
useEffect(() => {
|
|
41
37
|
if (!plugin) return;
|
|
42
38
|
const handler = () => plugin.setFullscreenState(!!document.fullscreenElement);
|
|
43
39
|
document.addEventListener("fullscreenchange", handler);
|
|
@@ -59,4 +55,4 @@ export {
|
|
|
59
55
|
useFullscreenCapability,
|
|
60
56
|
useFullscreenPlugin
|
|
61
57
|
};
|
|
62
|
-
//# sourceMappingURL=index.js.map
|
|
58
|
+
//# sourceMappingURL=index.js.map
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/shared/hooks/use-fullscreen.ts","../../src/shared/components/fullscreen.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { FullscreenPlugin, FullscreenState, initialState } from '@embedpdf/plugin-fullscreen';\nimport { useState, useEffect } from '@framework';\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, HTMLAttributes, CSSProperties, ReactNode } from '@framework';\n\nimport { useFullscreenPlugin, useFullscreenCapability } from '../hooks';\n\ntype FullscreenProviderProps = Omit<HTMLAttributes<HTMLDivElement>, 'style'> & {\n children: ReactNode;\n style?: 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"],"names":["state"],"mappings":";;;;AAIO,MAAM,sBAAsB,MAAM,UAA4B,iBAAiB,EAAE;AACjF,MAAM,0BAA0B,MAAM,cAAgC,iBAAiB,EAAE;AAEzF,MAAM,gBAAgB,MAAM;AAC3B,QAAA,EAAE,SAAS,IAAI,wBAAwB;AAC7C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAA0B,YAAY;AAEhE,YAAU,MAAM;AACP,WAAA,qCAAU,cAAc,CAACA,WAAU;AACxC,eAASA,MAAK;AAAA,IAAA;AAAA,EACf,GACA,CAAC,QAAQ,CAAC;AAEN,SAAA;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;ACZO,SAAS,mBAAmB,EAAE,UAAU,GAAG,SAAkC;AAClF,QAAM,EAAE,UAAU,qBAAqB,IAAI,wBAAwB;AAC7D,QAAA,EAAE,OAAO,IAAI,oBAAoB;AACjC,QAAA,MAAM,OAAuB,IAAI;AAEvC,YAAU,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,MAAA,OAC7D;AACL,YAAI,SAAS,kBAAyB,OAAA,SAAS,eAAe;AAAA,MAAA;AAAA,IAChE,CACD;AAEM,WAAA;AAAA,EAAA,GACN,CAAC,oBAAoB,CAAC;AAEzB,YAAU,MAAM;AACd,QAAI,CAAC,OAAQ;AACb,UAAM,UAAU,MAAM,OAAO,mBAAmB,CAAC,CAAC,SAAS,iBAAiB;AACnE,aAAA,iBAAiB,oBAAoB,OAAO;AACrD,WAAO,MAAM,SAAS,oBAAoB,oBAAoB,OAAO;AAAA,EAAA,GACpE,CAAC,MAAM,CAAC;AAGT,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,OAAO,EAAE,UAAU,YAAY,OAAO,QAAQ,QAAQ,QAAQ,GAAG,MAAM,MAAM;AAAA,MAC7E;AAAA,MAEC;AAAA,IAAA;AAAA,EACH;AAEJ;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { HTMLAttributes, CSSProperties, ReactNode } from '../../preact/adapter.ts';
|
|
2
|
+
type FullscreenProviderProps = Omit<HTMLAttributes<HTMLDivElement>, 'style'> & {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
style?: CSSProperties;
|
|
5
|
+
};
|
|
6
|
+
export declare function FullscreenProvider({ children, ...props }: FullscreenProviderProps): import("preact").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './fullscreen';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './use-fullscreen';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FullscreenPlugin, FullscreenState } from '../../lib/index.ts';
|
|
2
|
+
export declare const useFullscreenPlugin: () => {
|
|
3
|
+
plugin: FullscreenPlugin | null;
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
ready: Promise<void>;
|
|
6
|
+
};
|
|
7
|
+
export declare const useFullscreenCapability: () => {
|
|
8
|
+
provides: Readonly<import('../../lib/index.ts').FullscreenCapability> | null;
|
|
9
|
+
isLoading: boolean;
|
|
10
|
+
ready: Promise<void>;
|
|
11
|
+
};
|
|
12
|
+
export declare const useFullscreen: () => {
|
|
13
|
+
provides: Readonly<import('../../lib/index.ts').FullscreenCapability> | null;
|
|
14
|
+
state: FullscreenState;
|
|
15
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { HTMLAttributes, CSSProperties, ReactNode } from '../../react/adapter.ts';
|
|
2
|
+
type FullscreenProviderProps = Omit<HTMLAttributes<HTMLDivElement>, 'style'> & {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
style?: CSSProperties;
|
|
5
|
+
};
|
|
6
|
+
export declare function FullscreenProvider({ children, ...props }: FullscreenProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './fullscreen';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './use-fullscreen';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FullscreenPlugin, FullscreenState } from '../../lib/index.ts';
|
|
2
|
+
export declare const useFullscreenPlugin: () => {
|
|
3
|
+
plugin: FullscreenPlugin | null;
|
|
4
|
+
isLoading: boolean;
|
|
5
|
+
ready: Promise<void>;
|
|
6
|
+
};
|
|
7
|
+
export declare const useFullscreenCapability: () => {
|
|
8
|
+
provides: Readonly<import('../../lib/index.ts').FullscreenCapability> | null;
|
|
9
|
+
isLoading: boolean;
|
|
10
|
+
ready: Promise<void>;
|
|
11
|
+
};
|
|
12
|
+
export declare const useFullscreen: () => {
|
|
13
|
+
provides: Readonly<import('../../lib/index.ts').FullscreenCapability> | null;
|
|
14
|
+
state: FullscreenState;
|
|
15
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@embedpdf/plugin-fullscreen",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -22,19 +22,20 @@
|
|
|
22
22
|
"require": "./dist/react/index.cjs"
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
|
-
"dependencies": {
|
|
25
|
+
"dependencies": {
|
|
26
|
+
"@embedpdf/models": "1.0.12"
|
|
27
|
+
},
|
|
26
28
|
"devDependencies": {
|
|
27
29
|
"@types/react": "^18.2.0",
|
|
28
|
-
"tsup": "^8.0.0",
|
|
29
30
|
"typescript": "^5.0.0",
|
|
30
|
-
"@embedpdf/
|
|
31
|
-
"@embedpdf/
|
|
31
|
+
"@embedpdf/core": "1.0.12",
|
|
32
|
+
"@embedpdf/build": "1.0.0"
|
|
32
33
|
},
|
|
33
34
|
"peerDependencies": {
|
|
34
35
|
"react": ">=16.8.0",
|
|
35
36
|
"react-dom": ">=16.8.0",
|
|
36
37
|
"preact": "^10.26.4",
|
|
37
|
-
"@embedpdf/core": "1.0.
|
|
38
|
+
"@embedpdf/core": "1.0.12"
|
|
38
39
|
},
|
|
39
40
|
"files": [
|
|
40
41
|
"dist",
|
|
@@ -53,11 +54,12 @@
|
|
|
53
54
|
"access": "public"
|
|
54
55
|
},
|
|
55
56
|
"scripts": {
|
|
56
|
-
"build": "
|
|
57
|
-
"build:
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
57
|
+
"build:base": "vite build --mode base",
|
|
58
|
+
"build:react": "vite build --mode react",
|
|
59
|
+
"build:preact": "vite build --mode preact",
|
|
60
|
+
"build": "pnpm run clean && concurrently -c auto -n base,react,preact \"vite build --mode base\" \"vite build --mode react\" \"vite build --mode preact\"",
|
|
61
|
+
"clean": "rimraf dist",
|
|
62
|
+
"lint": "eslint src --color",
|
|
63
|
+
"lint:fix": "eslint src --color --fix"
|
|
62
64
|
}
|
|
63
65
|
}
|
package/dist/index.d.cts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { BasePluginConfig, EventHook, Action, BasePlugin, PluginRegistry, PluginManifest, PluginPackage } from '@embedpdf/core';
|
|
2
|
-
|
|
3
|
-
interface FullscreenState {
|
|
4
|
-
isFullscreen: boolean;
|
|
5
|
-
}
|
|
6
|
-
interface FullscreenPluginConfig extends BasePluginConfig {
|
|
7
|
-
}
|
|
8
|
-
interface FullscreenCapability {
|
|
9
|
-
isFullscreen: () => boolean;
|
|
10
|
-
enableFullscreen: () => void;
|
|
11
|
-
exitFullscreen: () => void;
|
|
12
|
-
toggleFullscreen: () => void;
|
|
13
|
-
onRequest: EventHook<'enter' | 'exit'>;
|
|
14
|
-
onStateChange: EventHook<FullscreenState>;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
declare const SET_FULLSCREEN = "SET_FULLSCREEN";
|
|
18
|
-
interface SetFullscreenAction extends Action {
|
|
19
|
-
type: typeof SET_FULLSCREEN;
|
|
20
|
-
payload: boolean;
|
|
21
|
-
}
|
|
22
|
-
type FullscreenAction = SetFullscreenAction;
|
|
23
|
-
declare function setFullscreen(payload: boolean): SetFullscreenAction;
|
|
24
|
-
|
|
25
|
-
declare class FullscreenPlugin extends BasePlugin<FullscreenPluginConfig, FullscreenCapability, FullscreenState, FullscreenAction> {
|
|
26
|
-
static readonly id: "fullscreen";
|
|
27
|
-
private readonly onStateChange$;
|
|
28
|
-
private readonly fullscreenRequest$;
|
|
29
|
-
constructor(id: string, registry: PluginRegistry);
|
|
30
|
-
initialize(_: FullscreenPluginConfig): Promise<void>;
|
|
31
|
-
protected buildCapability(): FullscreenCapability;
|
|
32
|
-
private toggleFullscreen;
|
|
33
|
-
private enableFullscreen;
|
|
34
|
-
private exitFullscreen;
|
|
35
|
-
onStoreUpdated(_: FullscreenState, newState: FullscreenState): void;
|
|
36
|
-
setFullscreenState(isFullscreen: boolean): void;
|
|
37
|
-
destroy(): Promise<void>;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
declare const initialState: FullscreenState;
|
|
41
|
-
|
|
42
|
-
declare const FULLSCREEN_PLUGIN_ID = "fullscreen";
|
|
43
|
-
declare const manifest: PluginManifest<FullscreenPluginConfig>;
|
|
44
|
-
|
|
45
|
-
declare const FullscreenPluginPackage: PluginPackage<FullscreenPlugin, FullscreenPluginConfig, FullscreenState, FullscreenAction>;
|
|
46
|
-
|
|
47
|
-
export { FULLSCREEN_PLUGIN_ID, type FullscreenAction, type FullscreenCapability, FullscreenPlugin, type FullscreenPluginConfig, FullscreenPluginPackage, type FullscreenState, SET_FULLSCREEN, type SetFullscreenAction, initialState, manifest, setFullscreen };
|
package/dist/preact/index.d.cts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import * as _embedpdf_plugin_fullscreen from '@embedpdf/plugin-fullscreen';
|
|
2
|
-
import { FullscreenPlugin, FullscreenState } from '@embedpdf/plugin-fullscreen';
|
|
3
|
-
import { JSX, ComponentChildren } from 'preact';
|
|
4
|
-
|
|
5
|
-
declare const useFullscreenPlugin: () => {
|
|
6
|
-
plugin: FullscreenPlugin | null;
|
|
7
|
-
isLoading: boolean;
|
|
8
|
-
ready: Promise<void>;
|
|
9
|
-
};
|
|
10
|
-
declare const useFullscreenCapability: () => {
|
|
11
|
-
provides: Readonly<_embedpdf_plugin_fullscreen.FullscreenCapability> | null;
|
|
12
|
-
isLoading: boolean;
|
|
13
|
-
ready: Promise<void>;
|
|
14
|
-
};
|
|
15
|
-
declare const useFullscreen: () => {
|
|
16
|
-
provides: Readonly<_embedpdf_plugin_fullscreen.FullscreenCapability> | null;
|
|
17
|
-
state: FullscreenState;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
type FullscreenProviderProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, 'style'> & {
|
|
21
|
-
children: ComponentChildren;
|
|
22
|
-
style?: JSX.CSSProperties;
|
|
23
|
-
};
|
|
24
|
-
declare function FullscreenProvider({ children, ...props }: FullscreenProviderProps): JSX.Element;
|
|
25
|
-
|
|
26
|
-
export { FullscreenProvider, useFullscreen, useFullscreenCapability, useFullscreenPlugin };
|
package/dist/react/index.d.cts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import * as _embedpdf_plugin_fullscreen from '@embedpdf/plugin-fullscreen';
|
|
2
|
-
import { FullscreenPlugin, FullscreenState } from '@embedpdf/plugin-fullscreen';
|
|
3
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
-
|
|
5
|
-
declare const useFullscreenPlugin: () => {
|
|
6
|
-
plugin: FullscreenPlugin | null;
|
|
7
|
-
isLoading: boolean;
|
|
8
|
-
ready: Promise<void>;
|
|
9
|
-
};
|
|
10
|
-
declare const useFullscreenCapability: () => {
|
|
11
|
-
provides: Readonly<_embedpdf_plugin_fullscreen.FullscreenCapability> | null;
|
|
12
|
-
isLoading: boolean;
|
|
13
|
-
ready: Promise<void>;
|
|
14
|
-
};
|
|
15
|
-
declare const useFullscreen: () => {
|
|
16
|
-
provides: Readonly<_embedpdf_plugin_fullscreen.FullscreenCapability> | null;
|
|
17
|
-
state: FullscreenState;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
type FullscreenProviderProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'style'> & {
|
|
21
|
-
children: React.ReactNode;
|
|
22
|
-
style?: React.CSSProperties;
|
|
23
|
-
};
|
|
24
|
-
declare function FullscreenProvider({ children, ...props }: FullscreenProviderProps): react_jsx_runtime.JSX.Element;
|
|
25
|
-
|
|
26
|
-
export { FullscreenProvider, useFullscreen, useFullscreenCapability, useFullscreenPlugin };
|