@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.
Files changed (39) hide show
  1. package/dist/index.cjs +2 -131
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.ts +1 -47
  4. package/dist/index.js +11 -21
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/actions.d.ts +8 -0
  7. package/dist/lib/fullscreen-plugin.d.ts +17 -0
  8. package/dist/lib/index.d.ts +11 -0
  9. package/dist/lib/manifest.d.ts +4 -0
  10. package/dist/lib/reducer.d.ts +5 -0
  11. package/dist/lib/types.d.ts +14 -0
  12. package/dist/preact/adapter.d.ts +4 -0
  13. package/dist/preact/core.d.ts +1 -0
  14. package/dist/preact/index.cjs +2 -92
  15. package/dist/preact/index.cjs.map +1 -1
  16. package/dist/preact/index.d.ts +1 -26
  17. package/dist/preact/index.js +10 -14
  18. package/dist/preact/index.js.map +1 -1
  19. package/dist/react/adapter.d.ts +2 -0
  20. package/dist/react/core.d.ts +1 -0
  21. package/dist/react/index.cjs +2 -92
  22. package/dist/react/index.cjs.map +1 -1
  23. package/dist/react/index.d.ts +1 -26
  24. package/dist/react/index.js +10 -14
  25. package/dist/react/index.js.map +1 -1
  26. package/dist/shared-preact/components/fullscreen.d.ts +7 -0
  27. package/dist/shared-preact/components/index.d.ts +1 -0
  28. package/dist/shared-preact/hooks/index.d.ts +1 -0
  29. package/dist/shared-preact/hooks/use-fullscreen.d.ts +15 -0
  30. package/dist/shared-preact/index.d.ts +2 -0
  31. package/dist/shared-react/components/fullscreen.d.ts +7 -0
  32. package/dist/shared-react/components/index.d.ts +1 -0
  33. package/dist/shared-react/hooks/index.d.ts +1 -0
  34. package/dist/shared-react/hooks/use-fullscreen.d.ts +15 -0
  35. package/dist/shared-react/index.d.ts +2 -0
  36. package/package.json +14 -12
  37. package/dist/index.d.cts +0 -47
  38. package/dist/preact/index.d.cts +0 -26
  39. package/dist/react/index.d.cts +0 -26
package/dist/index.cjs CHANGED
@@ -1,131 +1,2 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
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
@@ -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, 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":[]}
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
- 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 };
1
+ export * from './lib';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- // src/lib/manifest.ts
2
- var FULLSCREEN_PLUGIN_ID = "fullscreen";
3
- var manifest = {
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
- FullscreenPlugin.id = "fullscreen";
68
-
69
- // src/lib/reducer.ts
70
- var initialState = {
60
+ _FullscreenPlugin.id = "fullscreen";
61
+ let FullscreenPlugin = _FullscreenPlugin;
62
+ const initialState = {
71
63
  isFullscreen: false
72
64
  };
73
- var reducer = (state, action) => {
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/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":[]}
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,4 @@
1
+ import { PluginManifest } from '@embedpdf/core';
2
+ import { FullscreenPluginConfig } from './types';
3
+ export declare const FULLSCREEN_PLUGIN_ID = "fullscreen";
4
+ export declare const manifest: PluginManifest<FullscreenPluginConfig>;
@@ -0,0 +1,5 @@
1
+ import { Reducer } from '@embedpdf/core';
2
+ import { FullscreenState } from './types';
3
+ import { FullscreenAction } from './actions';
4
+ export declare const initialState: FullscreenState;
5
+ export declare const reducer: Reducer<FullscreenState, FullscreenAction>;
@@ -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';
@@ -1,92 +1,2 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
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,"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"]}
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"}
@@ -1,26 +1 @@
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 };
1
+ export * from '../shared-preact';
@@ -1,14 +1,14 @@
1
- // src/preact/hooks/use-fullscreen.ts
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
- var useFullscreenPlugin = () => usePlugin(FullscreenPlugin.id);
6
- var useFullscreenCapability = () => useCapability(FullscreenPlugin.id);
7
- var useFullscreen = () => {
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?.onStateChange((state2) => {
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
- useEffect2(() => {
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
- useEffect2(() => {
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
@@ -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, 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"]}
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,2 @@
1
+ export { useEffect, useRef, useCallback, useState } from 'react';
2
+ export type { ReactNode, HTMLAttributes, CSSProperties } from 'react';
@@ -0,0 +1 @@
1
+ export * from '@embedpdf/core/react';
@@ -1,92 +1,2 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
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
@@ -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, 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"]}
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"}
@@ -1,26 +1 @@
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 };
1
+ export * from '../shared-react';
@@ -1,14 +1,14 @@
1
- // src/react/hooks/use-fullscreen.ts
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
- var useFullscreenPlugin = () => usePlugin(FullscreenPlugin.id);
6
- var useFullscreenCapability = () => useCapability(FullscreenPlugin.id);
7
- var useFullscreen = () => {
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?.onStateChange((state2) => {
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
- useEffect2(() => {
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
- useEffect2(() => {
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
@@ -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, 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"]}
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,2 @@
1
+ export * from './hooks';
2
+ export * from './components';
@@ -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
+ };
@@ -0,0 +1,2 @@
1
+ export * from './hooks';
2
+ export * from './components';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@embedpdf/plugin-fullscreen",
3
- "version": "1.0.11",
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/plugin-loader": "1.0.11",
31
- "@embedpdf/models": "1.0.11"
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.11"
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": "PROJECT_CWD=$(pwd) pnpm -w p:build",
57
- "build:watch": "PROJECT_CWD=$(pwd) pnpm -w p:build:watch",
58
- "clean": "PROJECT_CWD=$(pwd) pnpm -w p:clean",
59
- "lint": "PROJECT_CWD=$(pwd) pnpm -w p:lint",
60
- "lint:fix": "PROJECT_CWD=$(pwd) pnpm -w p:lint:fix",
61
- "typecheck": "PROJECT_CWD=$(pwd) pnpm -w p:typecheck"
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 };
@@ -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 };
@@ -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 };