@embedpdf/plugin-render 1.0.18 → 1.0.20
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 +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6 -40
- package/dist/index.js.map +1 -1
- package/dist/lib/render-plugin.d.ts +1 -3
- package/dist/lib/types.d.ts +3 -15
- package/dist/preact/index.cjs +1 -1
- package/dist/preact/index.cjs.map +1 -1
- package/dist/preact/index.js +5 -2
- package/dist/preact/index.js.map +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.js +5 -2
- package/dist/react/index.js.map +1 -1
- package/dist/vue/components/render-layer.vue.d.ts +0 -1
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.cjs.map +1 -1
- package/dist/vue/index.js +26 -6
- package/dist/vue/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),r=class extends e.BasePlugin{constructor(r,t){super(r,t),this.refreshPages$=e.createEmitter(),this.coreStore.onAction(e.REFRESH_PAGES,(e=>{this.refreshPages$.emit(e.payload)}))}async initialize(e){}buildCapability(){return{renderPage:this.renderPage.bind(this),renderPageRect:this.renderPageRect.bind(this)}}onRefreshPages(e){return this.refreshPages$.on(e)}renderPage({pageIndex:e,options:r}){const t=this.coreState.core;if(!t.document)throw new Error("document does not open");const n=t.document.pages.find((r=>r.index===e));if(!n)throw new Error("page does not exist");return this.engine.renderPage(t.document,n,r)}renderPageRect({pageIndex:e,rect:r,options:t}){const n=this.coreState.core;if(!n.document)throw new Error("document does not open");const o=n.document.pages.find((r=>r.index===e));if(!o)throw new Error("page does not exist");return this.engine.renderPageRect(n.document,o,r,t)}};r.id="render";let t=r;const n="render",o={manifest:{id:n,name:"Render Plugin",version:"1.0.0",provides:["render"],requires:[],optional:[],defaultConfig:{enabled:!0}},create:e=>new t(n,e),reducer:()=>{},initialState:{}};exports.RenderPlugin=t,exports.RenderPluginPackage=o;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/lib/render-plugin.ts","../src/lib/manifest.ts","../src/lib/index.ts"],"sourcesContent":["import {\n BasePlugin,\n createEmitter,\n PluginRegistry,\n REFRESH_PAGES,\n Unsubscribe,\n} from '@embedpdf/core';\nimport {\n RenderCapability,\n RenderPageOptions,\n RenderPageRectOptions,\n RenderPluginConfig,\n} from './types';\
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/lib/render-plugin.ts","../src/lib/manifest.ts","../src/lib/index.ts"],"sourcesContent":["import {\n BasePlugin,\n createEmitter,\n PluginRegistry,\n REFRESH_PAGES,\n Unsubscribe,\n} from '@embedpdf/core';\nimport {\n RenderCapability,\n RenderPageOptions,\n RenderPageRectOptions,\n RenderPluginConfig,\n} from './types';\n\nexport class RenderPlugin extends BasePlugin<RenderPluginConfig, RenderCapability> {\n static readonly id = 'render' as const;\n\n private readonly refreshPages$ = createEmitter<number[]>();\n\n constructor(id: string, registry: PluginRegistry) {\n super(id, registry);\n\n this.coreStore.onAction(REFRESH_PAGES, (action) => {\n this.refreshPages$.emit(action.payload);\n });\n }\n\n async initialize(_config: RenderPluginConfig): Promise<void> {}\n\n protected buildCapability(): RenderCapability {\n return {\n renderPage: this.renderPage.bind(this),\n renderPageRect: this.renderPageRect.bind(this),\n };\n }\n\n public onRefreshPages(fn: (pages: number[]) => void): Unsubscribe {\n return this.refreshPages$.on(fn);\n }\n\n private renderPage({ pageIndex, options }: RenderPageOptions) {\n const coreState = this.coreState.core;\n\n if (!coreState.document) {\n throw new Error('document does not open');\n }\n\n const page = coreState.document.pages.find((page) => page.index === pageIndex);\n if (!page) {\n throw new Error('page does not exist');\n }\n\n return this.engine.renderPage(coreState.document, page, options);\n }\n\n private renderPageRect({ pageIndex, rect, options }: RenderPageRectOptions) {\n const coreState = this.coreState.core;\n\n if (!coreState.document) {\n throw new Error('document does not open');\n }\n\n const page = coreState.document.pages.find((page) => page.index === pageIndex);\n if (!page) {\n throw new Error('page does not exist');\n }\n\n return this.engine.renderPageRect(coreState.document, page, rect, options);\n }\n}\n","import { PluginManifest } from '@embedpdf/core';\nimport { RenderPluginConfig } from './types';\n\nexport const RENDER_PLUGIN_ID = 'render';\n\nexport const manifest: PluginManifest<RenderPluginConfig> = {\n id: RENDER_PLUGIN_ID,\n name: 'Render Plugin',\n version: '1.0.0',\n provides: ['render'],\n requires: [],\n optional: [],\n defaultConfig: {\n enabled: true,\n },\n};\n","import { PluginPackage } from '@embedpdf/core';\nimport { RenderPluginConfig } from './types';\nimport { RenderPlugin } from './render-plugin';\nimport { manifest, RENDER_PLUGIN_ID } from './manifest';\n\nexport const RenderPluginPackage: PluginPackage<RenderPlugin, RenderPluginConfig> = {\n manifest,\n create: (registry) => new RenderPlugin(RENDER_PLUGIN_ID, registry),\n reducer: () => {},\n initialState: {},\n};\n\nexport * from './render-plugin';\nexport * from './types';\n"],"names":["_RenderPlugin","BasePlugin","constructor","id","registry","super","this","refreshPages$","createEmitter","coreStore","onAction","REFRESH_PAGES","action","emit","payload","initialize","_config","buildCapability","renderPage","bind","renderPageRect","onRefreshPages","fn","on","pageIndex","options","coreState","core","document","Error","page","pages","find","index","engine","rect","RenderPlugin","RENDER_PLUGIN_ID","RenderPluginPackage","manifest","name","version","provides","requires","optional","defaultConfig","enabled","create","reducer","initialState"],"mappings":"kHAcaA,EAAN,cAA2BC,EAAAA,WAKhC,WAAAC,CAAYC,EAAYC,GACtBC,MAAMF,EAAIC,GAHKE,KAAAC,cAAgBC,kBAK/BF,KAAKG,UAAUC,SAASC,EAAeA,eAACC,IACjCN,KAAAC,cAAcM,KAAKD,EAAOE,QAAO,GACvC,CAGH,gBAAMC,CAAWC,GAA4C,CAEnD,eAAAC,GACD,MAAA,CACLC,WAAYZ,KAAKY,WAAWC,KAAKb,MACjCc,eAAgBd,KAAKc,eAAeD,KAAKb,MAC3C,CAGK,cAAAe,CAAeC,GACb,OAAAhB,KAAKC,cAAcgB,GAAGD,EAAE,CAGzB,UAAAJ,EAAWM,UAAEA,EAAWC,QAAAA,IACxB,MAAAC,EAAYpB,KAAKoB,UAAUC,KAE7B,IAACD,EAAUE,SACP,MAAA,IAAIC,MAAM,0BAGZ,MAAAC,EAAOJ,EAAUE,SAASG,MAAMC,MAAMF,GAASA,EAAKG,QAAUT,IACpE,IAAKM,EACG,MAAA,IAAID,MAAM,uBAGlB,OAAOvB,KAAK4B,OAAOhB,WAAWQ,EAAUE,SAAUE,EAAML,EAAO,CAGzD,cAAAL,EAAeI,UAAEA,EAAWW,KAAAA,EAAAV,QAAMA,IAClC,MAAAC,EAAYpB,KAAKoB,UAAUC,KAE7B,IAACD,EAAUE,SACP,MAAA,IAAIC,MAAM,0BAGZ,MAAAC,EAAOJ,EAAUE,SAASG,MAAMC,MAAMF,GAASA,EAAKG,QAAUT,IACpE,IAAKM,EACG,MAAA,IAAID,MAAM,uBAGlB,OAAOvB,KAAK4B,OAAOd,eAAeM,EAAUE,SAAUE,EAAMK,EAAMV,EAAO,GApD3EzB,EAAgBG,GAAK,SADhB,IAAMiC,EAANpC,ECXA,MAAMqC,EAAmB,SCEnBC,EAAuE,CAClFC,SDD0D,CAC1DpC,GAAIkC,EACJG,KAAM,gBACNC,QAAS,QACTC,SAAU,CAAC,UACXC,SAAU,GACVC,SAAU,GACVC,cAAe,CACbC,SAAS,ICNXC,OAAS3C,GAAa,IAAIgC,EAAaC,EAAkBjC,GACzD4C,QAAS,OACTC,aAAc,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { BasePlugin, createEmitter, REFRESH_PAGES } from "@embedpdf/core";
|
|
2
|
-
import { Rotation } from "@embedpdf/models";
|
|
3
2
|
const _RenderPlugin = class _RenderPlugin extends BasePlugin {
|
|
4
|
-
constructor(id, registry
|
|
3
|
+
constructor(id, registry) {
|
|
5
4
|
super(id, registry);
|
|
6
5
|
this.refreshPages$ = createEmitter();
|
|
7
|
-
this.engine = engine;
|
|
8
6
|
this.coreStore.onAction(REFRESH_PAGES, (action) => {
|
|
9
7
|
this.refreshPages$.emit(action.payload);
|
|
10
8
|
});
|
|
@@ -20,14 +18,7 @@ const _RenderPlugin = class _RenderPlugin extends BasePlugin {
|
|
|
20
18
|
onRefreshPages(fn) {
|
|
21
19
|
return this.refreshPages$.on(fn);
|
|
22
20
|
}
|
|
23
|
-
renderPage({
|
|
24
|
-
pageIndex,
|
|
25
|
-
scaleFactor = 1,
|
|
26
|
-
dpr = 1,
|
|
27
|
-
rotation = Rotation.Degree0,
|
|
28
|
-
options = { withAnnotations: false },
|
|
29
|
-
imageType = "image/webp"
|
|
30
|
-
}) {
|
|
21
|
+
renderPage({ pageIndex, options }) {
|
|
31
22
|
const coreState = this.coreState.core;
|
|
32
23
|
if (!coreState.document) {
|
|
33
24
|
throw new Error("document does not open");
|
|
@@ -36,25 +27,9 @@ const _RenderPlugin = class _RenderPlugin extends BasePlugin {
|
|
|
36
27
|
if (!page) {
|
|
37
28
|
throw new Error("page does not exist");
|
|
38
29
|
}
|
|
39
|
-
return this.engine.renderPage(
|
|
40
|
-
coreState.document,
|
|
41
|
-
page,
|
|
42
|
-
scaleFactor,
|
|
43
|
-
rotation,
|
|
44
|
-
dpr,
|
|
45
|
-
options,
|
|
46
|
-
imageType
|
|
47
|
-
);
|
|
30
|
+
return this.engine.renderPage(coreState.document, page, options);
|
|
48
31
|
}
|
|
49
|
-
renderPageRect({
|
|
50
|
-
pageIndex,
|
|
51
|
-
scaleFactor = 1,
|
|
52
|
-
dpr = 1,
|
|
53
|
-
rect,
|
|
54
|
-
rotation = Rotation.Degree0,
|
|
55
|
-
options = { withAnnotations: false },
|
|
56
|
-
imageType = "image/webp"
|
|
57
|
-
}) {
|
|
32
|
+
renderPageRect({ pageIndex, rect, options }) {
|
|
58
33
|
const coreState = this.coreState.core;
|
|
59
34
|
if (!coreState.document) {
|
|
60
35
|
throw new Error("document does not open");
|
|
@@ -63,16 +38,7 @@ const _RenderPlugin = class _RenderPlugin extends BasePlugin {
|
|
|
63
38
|
if (!page) {
|
|
64
39
|
throw new Error("page does not exist");
|
|
65
40
|
}
|
|
66
|
-
return this.engine.renderPageRect(
|
|
67
|
-
coreState.document,
|
|
68
|
-
page,
|
|
69
|
-
scaleFactor,
|
|
70
|
-
rotation,
|
|
71
|
-
dpr,
|
|
72
|
-
rect,
|
|
73
|
-
options,
|
|
74
|
-
imageType
|
|
75
|
-
);
|
|
41
|
+
return this.engine.renderPageRect(coreState.document, page, rect, options);
|
|
76
42
|
}
|
|
77
43
|
};
|
|
78
44
|
_RenderPlugin.id = "render";
|
|
@@ -91,7 +57,7 @@ const manifest = {
|
|
|
91
57
|
};
|
|
92
58
|
const RenderPluginPackage = {
|
|
93
59
|
manifest,
|
|
94
|
-
create: (registry
|
|
60
|
+
create: (registry) => new RenderPlugin(RENDER_PLUGIN_ID, registry),
|
|
95
61
|
reducer: () => {
|
|
96
62
|
},
|
|
97
63
|
initialState: {}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/lib/render-plugin.ts","../src/lib/manifest.ts","../src/lib/index.ts"],"sourcesContent":["import {\n BasePlugin,\n createEmitter,\n PluginRegistry,\n REFRESH_PAGES,\n Unsubscribe,\n} from '@embedpdf/core';\nimport {\n RenderCapability,\n RenderPageOptions,\n RenderPageRectOptions,\n RenderPluginConfig,\n} from './types';\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/lib/render-plugin.ts","../src/lib/manifest.ts","../src/lib/index.ts"],"sourcesContent":["import {\n BasePlugin,\n createEmitter,\n PluginRegistry,\n REFRESH_PAGES,\n Unsubscribe,\n} from '@embedpdf/core';\nimport {\n RenderCapability,\n RenderPageOptions,\n RenderPageRectOptions,\n RenderPluginConfig,\n} from './types';\n\nexport class RenderPlugin extends BasePlugin<RenderPluginConfig, RenderCapability> {\n static readonly id = 'render' as const;\n\n private readonly refreshPages$ = createEmitter<number[]>();\n\n constructor(id: string, registry: PluginRegistry) {\n super(id, registry);\n\n this.coreStore.onAction(REFRESH_PAGES, (action) => {\n this.refreshPages$.emit(action.payload);\n });\n }\n\n async initialize(_config: RenderPluginConfig): Promise<void> {}\n\n protected buildCapability(): RenderCapability {\n return {\n renderPage: this.renderPage.bind(this),\n renderPageRect: this.renderPageRect.bind(this),\n };\n }\n\n public onRefreshPages(fn: (pages: number[]) => void): Unsubscribe {\n return this.refreshPages$.on(fn);\n }\n\n private renderPage({ pageIndex, options }: RenderPageOptions) {\n const coreState = this.coreState.core;\n\n if (!coreState.document) {\n throw new Error('document does not open');\n }\n\n const page = coreState.document.pages.find((page) => page.index === pageIndex);\n if (!page) {\n throw new Error('page does not exist');\n }\n\n return this.engine.renderPage(coreState.document, page, options);\n }\n\n private renderPageRect({ pageIndex, rect, options }: RenderPageRectOptions) {\n const coreState = this.coreState.core;\n\n if (!coreState.document) {\n throw new Error('document does not open');\n }\n\n const page = coreState.document.pages.find((page) => page.index === pageIndex);\n if (!page) {\n throw new Error('page does not exist');\n }\n\n return this.engine.renderPageRect(coreState.document, page, rect, options);\n }\n}\n","import { PluginManifest } from '@embedpdf/core';\nimport { RenderPluginConfig } from './types';\n\nexport const RENDER_PLUGIN_ID = 'render';\n\nexport const manifest: PluginManifest<RenderPluginConfig> = {\n id: RENDER_PLUGIN_ID,\n name: 'Render Plugin',\n version: '1.0.0',\n provides: ['render'],\n requires: [],\n optional: [],\n defaultConfig: {\n enabled: true,\n },\n};\n","import { PluginPackage } from '@embedpdf/core';\nimport { RenderPluginConfig } from './types';\nimport { RenderPlugin } from './render-plugin';\nimport { manifest, RENDER_PLUGIN_ID } from './manifest';\n\nexport const RenderPluginPackage: PluginPackage<RenderPlugin, RenderPluginConfig> = {\n manifest,\n create: (registry) => new RenderPlugin(RENDER_PLUGIN_ID, registry),\n reducer: () => {},\n initialState: {},\n};\n\nexport * from './render-plugin';\nexport * from './types';\n"],"names":["page"],"mappings":";AAcO,MAAM,gBAAN,MAAM,sBAAqB,WAAiD;AAAA,EAKjF,YAAY,IAAY,UAA0B;AAChD,UAAM,IAAI,QAAQ;AAHpB,SAAiB,gBAAgB,cAAwB;AAKvD,SAAK,UAAU,SAAS,eAAe,CAAC,WAAW;AAC5C,WAAA,cAAc,KAAK,OAAO,OAAO;AAAA,IAAA,CACvC;AAAA,EAAA;AAAA,EAGH,MAAM,WAAW,SAA4C;AAAA,EAAA;AAAA,EAEnD,kBAAoC;AACrC,WAAA;AAAA,MACL,YAAY,KAAK,WAAW,KAAK,IAAI;AAAA,MACrC,gBAAgB,KAAK,eAAe,KAAK,IAAI;AAAA,IAC/C;AAAA,EAAA;AAAA,EAGK,eAAe,IAA4C;AACzD,WAAA,KAAK,cAAc,GAAG,EAAE;AAAA,EAAA;AAAA,EAGzB,WAAW,EAAE,WAAW,WAA8B;AACtD,UAAA,YAAY,KAAK,UAAU;AAE7B,QAAA,CAAC,UAAU,UAAU;AACjB,YAAA,IAAI,MAAM,wBAAwB;AAAA,IAAA;AAGpC,UAAA,OAAO,UAAU,SAAS,MAAM,KAAK,CAACA,UAASA,MAAK,UAAU,SAAS;AAC7E,QAAI,CAAC,MAAM;AACH,YAAA,IAAI,MAAM,qBAAqB;AAAA,IAAA;AAGvC,WAAO,KAAK,OAAO,WAAW,UAAU,UAAU,MAAM,OAAO;AAAA,EAAA;AAAA,EAGzD,eAAe,EAAE,WAAW,MAAM,WAAkC;AACpE,UAAA,YAAY,KAAK,UAAU;AAE7B,QAAA,CAAC,UAAU,UAAU;AACjB,YAAA,IAAI,MAAM,wBAAwB;AAAA,IAAA;AAGpC,UAAA,OAAO,UAAU,SAAS,MAAM,KAAK,CAACA,UAASA,MAAK,UAAU,SAAS;AAC7E,QAAI,CAAC,MAAM;AACH,YAAA,IAAI,MAAM,qBAAqB;AAAA,IAAA;AAGvC,WAAO,KAAK,OAAO,eAAe,UAAU,UAAU,MAAM,MAAM,OAAO;AAAA,EAAA;AAE7E;AAtDE,cAAgB,KAAK;AADhB,IAAM,eAAN;ACXA,MAAM,mBAAmB;AAEzB,MAAM,WAA+C;AAAA,EAC1D,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,SAAS;AAAA,EACT,UAAU,CAAC,QAAQ;AAAA,EACnB,UAAU,CAAC;AAAA,EACX,UAAU,CAAC;AAAA,EACX,eAAe;AAAA,IACb,SAAS;AAAA,EAAA;AAEb;ACVO,MAAM,sBAAuE;AAAA,EAClF;AAAA,EACA,QAAQ,CAAC,aAAa,IAAI,aAAa,kBAAkB,QAAQ;AAAA,EACjE,SAAS,MAAM;AAAA,EAAC;AAAA,EAChB,cAAc,CAAA;AAChB;"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { BasePlugin, PluginRegistry, Unsubscribe } from '@embedpdf/core';
|
|
2
2
|
import { RenderCapability, RenderPluginConfig } from './types';
|
|
3
|
-
import { PdfEngine } from '@embedpdf/models';
|
|
4
3
|
export declare class RenderPlugin extends BasePlugin<RenderPluginConfig, RenderCapability> {
|
|
5
4
|
static readonly id: "render";
|
|
6
|
-
private engine;
|
|
7
5
|
private readonly refreshPages$;
|
|
8
|
-
constructor(id: string, registry: PluginRegistry
|
|
6
|
+
constructor(id: string, registry: PluginRegistry);
|
|
9
7
|
initialize(_config: RenderPluginConfig): Promise<void>;
|
|
10
8
|
protected buildCapability(): RenderCapability;
|
|
11
9
|
onRefreshPages(fn: (pages: number[]) => void): Unsubscribe;
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -1,27 +1,15 @@
|
|
|
1
1
|
import { BasePluginConfig } from '@embedpdf/core';
|
|
2
|
-
import {
|
|
2
|
+
import { PdfErrorReason, PdfRenderPageOptions, Rect, Task } from '@embedpdf/models';
|
|
3
3
|
export interface RenderPluginConfig extends BasePluginConfig {
|
|
4
4
|
}
|
|
5
5
|
export interface RenderPageRectOptions {
|
|
6
6
|
pageIndex: number;
|
|
7
|
-
scaleFactor?: number;
|
|
8
|
-
rotation?: Rotation;
|
|
9
|
-
dpr?: number;
|
|
10
7
|
rect: Rect;
|
|
11
|
-
options
|
|
12
|
-
withAnnotations: boolean;
|
|
13
|
-
};
|
|
14
|
-
imageType?: ImageConversionTypes;
|
|
8
|
+
options: PdfRenderPageOptions;
|
|
15
9
|
}
|
|
16
10
|
export interface RenderPageOptions {
|
|
17
11
|
pageIndex: number;
|
|
18
|
-
|
|
19
|
-
dpr?: number;
|
|
20
|
-
rotation?: Rotation;
|
|
21
|
-
options?: {
|
|
22
|
-
withAnnotations: boolean;
|
|
23
|
-
};
|
|
24
|
-
imageType?: ImageConversionTypes;
|
|
12
|
+
options: PdfRenderPageOptions;
|
|
25
13
|
}
|
|
26
14
|
export interface RenderCapability {
|
|
27
15
|
renderPage: (options: RenderPageOptions) => Task<Blob, PdfErrorReason>;
|
package/dist/preact/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("preact/jsx-runtime"),r=require("preact"),t=require("preact/hooks"),n=require("@embedpdf/models"),u=require("@embedpdf/core/preact"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("preact/jsx-runtime"),r=require("preact"),t=require("preact/hooks"),n=require("@embedpdf/models"),u=require("@embedpdf/core/preact"),i=require("@embedpdf/plugin-render"),c=()=>u.usePlugin(i.RenderPlugin.id),s=()=>u.useCapability(i.RenderPlugin.id);exports.RenderLayer=function({pageIndex:u,scaleFactor:i=1,dpr:d,style:o,...a}){const{provides:l}=s(),{plugin:p}=c(),[g,f]=t.useState(null),R=t.useRef(null),[b,x]=t.useState(0);return t.useEffect((()=>{if(p)return p.onRefreshPages((e=>{e.includes(u)&&x((e=>e+1))}))}),[p]),t.useEffect((()=>{if(l){const e=l.renderPage({pageIndex:u,options:{scaleFactor:i,dpr:d||window.devicePixelRatio}});return e.wait((e=>{const r=URL.createObjectURL(e);f(r),R.current=r}),n.ignore),()=>{R.current?(URL.revokeObjectURL(R.current),R.current=null):e.abort({code:n.PdfErrorCode.Cancelled,message:"canceled render task"})}}}),[u,i,d,l,b]),e.jsx(r.Fragment,{children:g&&e.jsx("img",{src:g,onLoad:()=>{R.current&&(URL.revokeObjectURL(R.current),R.current=null)},...a,style:{width:"100%",height:"100%",...o||{}}})})},exports.useRenderCapability=s,exports.useRenderPlugin=c;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-render.ts","../../src/shared/components/render-layer.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { RenderPlugin } from '@embedpdf/plugin-render';\n\nexport const useRenderPlugin = () => usePlugin<RenderPlugin>(RenderPlugin.id);\nexport const useRenderCapability = () => useCapability<RenderPlugin>(RenderPlugin.id);\n","import { Fragment, useEffect, useRef, useState } from '@framework';\nimport type { CSSProperties, HTMLAttributes } from '@framework';\n\nimport { ignore, PdfErrorCode } from '@embedpdf/models';\n\nimport { useRenderCapability, useRenderPlugin } from '../hooks/use-render';\n\ntype RenderLayerProps = Omit<HTMLAttributes<HTMLImageElement>, 'style'> & {\n pageIndex: number;\n scaleFactor?: number;\n dpr?: number;\n style?: CSSProperties;\n};\n\nexport function RenderLayer({\n pageIndex,\n scaleFactor = 1,\n dpr
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-render.ts","../../src/shared/components/render-layer.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { RenderPlugin } from '@embedpdf/plugin-render';\n\nexport const useRenderPlugin = () => usePlugin<RenderPlugin>(RenderPlugin.id);\nexport const useRenderCapability = () => useCapability<RenderPlugin>(RenderPlugin.id);\n","import { Fragment, useEffect, useRef, useState } from '@framework';\nimport type { CSSProperties, HTMLAttributes } from '@framework';\n\nimport { ignore, PdfErrorCode } from '@embedpdf/models';\n\nimport { useRenderCapability, useRenderPlugin } from '../hooks/use-render';\n\ntype RenderLayerProps = Omit<HTMLAttributes<HTMLImageElement>, 'style'> & {\n pageIndex: number;\n scaleFactor?: number;\n dpr?: number;\n style?: CSSProperties;\n};\n\nexport function RenderLayer({\n pageIndex,\n scaleFactor = 1,\n dpr,\n style,\n ...props\n}: RenderLayerProps) {\n const { provides: renderProvides } = useRenderCapability();\n const { plugin: renderPlugin } = useRenderPlugin();\n\n const [imageUrl, setImageUrl] = useState<string | null>(null);\n const urlRef = useRef<string | null>(null);\n const [refreshTick, setRefreshTick] = useState(0);\n\n useEffect(() => {\n if (!renderPlugin) return;\n return renderPlugin.onRefreshPages((pages) => {\n if (pages.includes(pageIndex)) {\n setRefreshTick((tick) => tick + 1);\n }\n });\n }, [renderPlugin]);\n\n useEffect(() => {\n if (renderProvides) {\n const task = renderProvides.renderPage({\n pageIndex,\n options: { scaleFactor, dpr: dpr || window.devicePixelRatio },\n });\n task.wait((blob) => {\n const url = URL.createObjectURL(blob);\n setImageUrl(url);\n urlRef.current = url;\n }, ignore);\n\n return () => {\n if (urlRef.current) {\n URL.revokeObjectURL(urlRef.current);\n urlRef.current = null;\n } else {\n task.abort({\n code: PdfErrorCode.Cancelled,\n message: 'canceled render task',\n });\n }\n };\n }\n }, [pageIndex, scaleFactor, dpr, renderProvides, refreshTick]);\n\n const handleImageLoad = () => {\n if (urlRef.current) {\n URL.revokeObjectURL(urlRef.current);\n urlRef.current = null;\n }\n };\n\n return (\n <Fragment>\n {imageUrl && (\n <img\n src={imageUrl}\n onLoad={handleImageLoad}\n {...props}\n style={{\n width: '100%',\n height: '100%',\n ...(style || {}),\n }}\n />\n )}\n </Fragment>\n );\n}\n"],"names":["useRenderPlugin","usePlugin","RenderPlugin","id","useRenderCapability","useCapability","pageIndex","scaleFactor","dpr","style","props","provides","renderProvides","plugin","renderPlugin","imageUrl","setImageUrl","useState","urlRef","useRef","refreshTick","setRefreshTick","useEffect","onRefreshPages","pages","includes","tick","task","renderPage","options","window","devicePixelRatio","wait","blob","url","URL","createObjectURL","current","ignore","revokeObjectURL","abort","code","PdfErrorCode","Cancelled","message","jsx","Fragment","children","jsxRuntime","src","onLoad","width","height"],"mappings":"0QAGaA,EAAkB,IAAMC,YAAwBC,EAAAA,aAAaC,IAC7DC,EAAsB,IAAMC,gBAA4BH,EAAAA,aAAaC,wBCU3E,UAAqBG,UAC1BA,EAAAC,YACAA,EAAc,EAAAC,IACdA,EAAAC,MACAA,KACGC,IAEH,MAAQC,SAAUC,GAAmBR,KAC7BS,OAAQC,GAAiBd,KAE1Be,EAAUC,GAAeC,EAAAA,SAAwB,MAClDC,EAASC,SAAsB,OAC9BC,EAAaC,GAAkBJ,EAAAA,SAAS,GA6C7C,OA3CFK,EAAAA,WAAU,KACR,GAAKR,EACE,OAAAA,EAAaS,gBAAgBC,IAC9BA,EAAMC,SAASnB,IACFe,GAACK,GAASA,EAAO,GAAC,GAEpC,GACA,CAACZ,IAEJQ,EAAAA,WAAU,KACR,GAAIV,EAAgB,CACZ,MAAAe,EAAOf,EAAegB,WAAW,CACrCtB,YACAuB,QAAS,CAAEtB,cAAaC,IAAKA,GAAOsB,OAAOC,oBAQ7C,OANKJ,EAAAK,MAAMC,IACH,MAAAC,EAAMC,IAAIC,gBAAgBH,GAChCjB,EAAYkB,GACZhB,EAAOmB,QAAUH,CAAA,GAChBI,UAEI,KACDpB,EAAOmB,SACLF,IAAAI,gBAAgBrB,EAAOmB,SAC3BnB,EAAOmB,QAAU,MAEjBV,EAAKa,MAAM,CACTC,KAAMC,EAAaA,aAAAC,UACnBC,QAAS,wBACV,CAEL,IAED,CAACtC,EAAWC,EAAaC,EAAKI,EAAgBQ,MAU/CyB,IAACC,YACEC,SACChC,GAAAiC,EAAAH,IAAC,MAAA,CACCI,IAAKlC,EACLmC,OAZgB,KAClBhC,EAAOmB,UACLF,IAAAI,gBAAgBrB,EAAOmB,SAC3BnB,EAAOmB,QAAU,KAAA,KAUT3B,EACJD,MAAO,CACL0C,MAAO,OACPC,OAAQ,UACJ3C,GAAS,CAAA,MAMzB"}
|
package/dist/preact/index.js
CHANGED
|
@@ -9,7 +9,7 @@ const useRenderCapability = () => useCapability(RenderPlugin.id);
|
|
|
9
9
|
function RenderLayer({
|
|
10
10
|
pageIndex,
|
|
11
11
|
scaleFactor = 1,
|
|
12
|
-
dpr
|
|
12
|
+
dpr,
|
|
13
13
|
style,
|
|
14
14
|
...props
|
|
15
15
|
}) {
|
|
@@ -28,7 +28,10 @@ function RenderLayer({
|
|
|
28
28
|
}, [renderPlugin]);
|
|
29
29
|
useEffect(() => {
|
|
30
30
|
if (renderProvides) {
|
|
31
|
-
const task = renderProvides.renderPage({
|
|
31
|
+
const task = renderProvides.renderPage({
|
|
32
|
+
pageIndex,
|
|
33
|
+
options: { scaleFactor, dpr: dpr || window.devicePixelRatio }
|
|
34
|
+
});
|
|
32
35
|
task.wait((blob) => {
|
|
33
36
|
const url = URL.createObjectURL(blob);
|
|
34
37
|
setImageUrl(url);
|
package/dist/preact/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/shared/hooks/use-render.ts","../../src/shared/components/render-layer.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { RenderPlugin } from '@embedpdf/plugin-render';\n\nexport const useRenderPlugin = () => usePlugin<RenderPlugin>(RenderPlugin.id);\nexport const useRenderCapability = () => useCapability<RenderPlugin>(RenderPlugin.id);\n","import { Fragment, useEffect, useRef, useState } from '@framework';\nimport type { CSSProperties, HTMLAttributes } from '@framework';\n\nimport { ignore, PdfErrorCode } from '@embedpdf/models';\n\nimport { useRenderCapability, useRenderPlugin } from '../hooks/use-render';\n\ntype RenderLayerProps = Omit<HTMLAttributes<HTMLImageElement>, 'style'> & {\n pageIndex: number;\n scaleFactor?: number;\n dpr?: number;\n style?: CSSProperties;\n};\n\nexport function RenderLayer({\n pageIndex,\n scaleFactor = 1,\n dpr
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/shared/hooks/use-render.ts","../../src/shared/components/render-layer.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { RenderPlugin } from '@embedpdf/plugin-render';\n\nexport const useRenderPlugin = () => usePlugin<RenderPlugin>(RenderPlugin.id);\nexport const useRenderCapability = () => useCapability<RenderPlugin>(RenderPlugin.id);\n","import { Fragment, useEffect, useRef, useState } from '@framework';\nimport type { CSSProperties, HTMLAttributes } from '@framework';\n\nimport { ignore, PdfErrorCode } from '@embedpdf/models';\n\nimport { useRenderCapability, useRenderPlugin } from '../hooks/use-render';\n\ntype RenderLayerProps = Omit<HTMLAttributes<HTMLImageElement>, 'style'> & {\n pageIndex: number;\n scaleFactor?: number;\n dpr?: number;\n style?: CSSProperties;\n};\n\nexport function RenderLayer({\n pageIndex,\n scaleFactor = 1,\n dpr,\n style,\n ...props\n}: RenderLayerProps) {\n const { provides: renderProvides } = useRenderCapability();\n const { plugin: renderPlugin } = useRenderPlugin();\n\n const [imageUrl, setImageUrl] = useState<string | null>(null);\n const urlRef = useRef<string | null>(null);\n const [refreshTick, setRefreshTick] = useState(0);\n\n useEffect(() => {\n if (!renderPlugin) return;\n return renderPlugin.onRefreshPages((pages) => {\n if (pages.includes(pageIndex)) {\n setRefreshTick((tick) => tick + 1);\n }\n });\n }, [renderPlugin]);\n\n useEffect(() => {\n if (renderProvides) {\n const task = renderProvides.renderPage({\n pageIndex,\n options: { scaleFactor, dpr: dpr || window.devicePixelRatio },\n });\n task.wait((blob) => {\n const url = URL.createObjectURL(blob);\n setImageUrl(url);\n urlRef.current = url;\n }, ignore);\n\n return () => {\n if (urlRef.current) {\n URL.revokeObjectURL(urlRef.current);\n urlRef.current = null;\n } else {\n task.abort({\n code: PdfErrorCode.Cancelled,\n message: 'canceled render task',\n });\n }\n };\n }\n }, [pageIndex, scaleFactor, dpr, renderProvides, refreshTick]);\n\n const handleImageLoad = () => {\n if (urlRef.current) {\n URL.revokeObjectURL(urlRef.current);\n urlRef.current = null;\n }\n };\n\n return (\n <Fragment>\n {imageUrl && (\n <img\n src={imageUrl}\n onLoad={handleImageLoad}\n {...props}\n style={{\n width: '100%',\n height: '100%',\n ...(style || {}),\n }}\n />\n )}\n </Fragment>\n );\n}\n"],"names":[],"mappings":";;;;;;AAGO,MAAM,kBAAkB,MAAM,UAAwB,aAAa,EAAE;AACrE,MAAM,sBAAsB,MAAM,cAA4B,aAAa,EAAE;ACU7E,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAqB;AACnB,QAAM,EAAE,UAAU,eAAe,IAAI,oBAAoB;AACzD,QAAM,EAAE,QAAQ,aAAa,IAAI,gBAAgB;AAEjD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAwB,IAAI;AACtD,QAAA,SAAS,OAAsB,IAAI;AACzC,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,CAAC;AAEhD,YAAU,MAAM;AACd,QAAI,CAAC,aAAc;AACZ,WAAA,aAAa,eAAe,CAAC,UAAU;AACxC,UAAA,MAAM,SAAS,SAAS,GAAG;AACd,uBAAA,CAAC,SAAS,OAAO,CAAC;AAAA,MAAA;AAAA,IACnC,CACD;AAAA,EAAA,GACA,CAAC,YAAY,CAAC;AAEjB,YAAU,MAAM;AACd,QAAI,gBAAgB;AACZ,YAAA,OAAO,eAAe,WAAW;AAAA,QACrC;AAAA,QACA,SAAS,EAAE,aAAa,KAAK,OAAO,OAAO,iBAAiB;AAAA,MAAA,CAC7D;AACI,WAAA,KAAK,CAAC,SAAS;AACZ,cAAA,MAAM,IAAI,gBAAgB,IAAI;AACpC,oBAAY,GAAG;AACf,eAAO,UAAU;AAAA,SAChB,MAAM;AAET,aAAO,MAAM;AACX,YAAI,OAAO,SAAS;AACd,cAAA,gBAAgB,OAAO,OAAO;AAClC,iBAAO,UAAU;AAAA,QAAA,OACZ;AACL,eAAK,MAAM;AAAA,YACT,MAAM,aAAa;AAAA,YACnB,SAAS;AAAA,UAAA,CACV;AAAA,QAAA;AAAA,MAEL;AAAA,IAAA;AAAA,EACF,GACC,CAAC,WAAW,aAAa,KAAK,gBAAgB,WAAW,CAAC;AAE7D,QAAM,kBAAkB,MAAM;AAC5B,QAAI,OAAO,SAAS;AACd,UAAA,gBAAgB,OAAO,OAAO;AAClC,aAAO,UAAU;AAAA,IAAA;AAAA,EAErB;AAGE,SAAA,oBAAC,YACE,UACC,YAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,QAAQ;AAAA,MACP,GAAG;AAAA,MACJ,OAAO;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,GAAI,SAAS,CAAA;AAAA,MAAC;AAAA,IAChB;AAAA,EAAA,GAGN;AAEJ;"}
|
package/dist/react/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("react"),t=require("@embedpdf/models"),n=require("@embedpdf/core/react"),u=require("@embedpdf/plugin-render"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("react"),t=require("@embedpdf/models"),n=require("@embedpdf/core/react"),u=require("@embedpdf/plugin-render"),i=()=>n.usePlugin(u.RenderPlugin.id),c=()=>n.useCapability(u.RenderPlugin.id);exports.RenderLayer=function({pageIndex:n,scaleFactor:u=1,dpr:s,style:d,...o}){const{provides:a}=c(),{plugin:l}=i(),[p,g]=r.useState(null),f=r.useRef(null),[R,b]=r.useState(0);return r.useEffect((()=>{if(l)return l.onRefreshPages((e=>{e.includes(n)&&b((e=>e+1))}))}),[l]),r.useEffect((()=>{if(a){const e=a.renderPage({pageIndex:n,options:{scaleFactor:u,dpr:s||window.devicePixelRatio}});return e.wait((e=>{const r=URL.createObjectURL(e);g(r),f.current=r}),t.ignore),()=>{f.current?(URL.revokeObjectURL(f.current),f.current=null):e.abort({code:t.PdfErrorCode.Cancelled,message:"canceled render task"})}}}),[n,u,s,a,R]),e.jsx(r.Fragment,{children:p&&e.jsx("img",{src:p,onLoad:()=>{f.current&&(URL.revokeObjectURL(f.current),f.current=null)},...o,style:{width:"100%",height:"100%",...d||{}}})})},exports.useRenderCapability=c,exports.useRenderPlugin=i;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/react/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-render.ts","../../src/shared/components/render-layer.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { RenderPlugin } from '@embedpdf/plugin-render';\n\nexport const useRenderPlugin = () => usePlugin<RenderPlugin>(RenderPlugin.id);\nexport const useRenderCapability = () => useCapability<RenderPlugin>(RenderPlugin.id);\n","import { Fragment, useEffect, useRef, useState } from '@framework';\nimport type { CSSProperties, HTMLAttributes } from '@framework';\n\nimport { ignore, PdfErrorCode } from '@embedpdf/models';\n\nimport { useRenderCapability, useRenderPlugin } from '../hooks/use-render';\n\ntype RenderLayerProps = Omit<HTMLAttributes<HTMLImageElement>, 'style'> & {\n pageIndex: number;\n scaleFactor?: number;\n dpr?: number;\n style?: CSSProperties;\n};\n\nexport function RenderLayer({\n pageIndex,\n scaleFactor = 1,\n dpr
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-render.ts","../../src/shared/components/render-layer.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { RenderPlugin } from '@embedpdf/plugin-render';\n\nexport const useRenderPlugin = () => usePlugin<RenderPlugin>(RenderPlugin.id);\nexport const useRenderCapability = () => useCapability<RenderPlugin>(RenderPlugin.id);\n","import { Fragment, useEffect, useRef, useState } from '@framework';\nimport type { CSSProperties, HTMLAttributes } from '@framework';\n\nimport { ignore, PdfErrorCode } from '@embedpdf/models';\n\nimport { useRenderCapability, useRenderPlugin } from '../hooks/use-render';\n\ntype RenderLayerProps = Omit<HTMLAttributes<HTMLImageElement>, 'style'> & {\n pageIndex: number;\n scaleFactor?: number;\n dpr?: number;\n style?: CSSProperties;\n};\n\nexport function RenderLayer({\n pageIndex,\n scaleFactor = 1,\n dpr,\n style,\n ...props\n}: RenderLayerProps) {\n const { provides: renderProvides } = useRenderCapability();\n const { plugin: renderPlugin } = useRenderPlugin();\n\n const [imageUrl, setImageUrl] = useState<string | null>(null);\n const urlRef = useRef<string | null>(null);\n const [refreshTick, setRefreshTick] = useState(0);\n\n useEffect(() => {\n if (!renderPlugin) return;\n return renderPlugin.onRefreshPages((pages) => {\n if (pages.includes(pageIndex)) {\n setRefreshTick((tick) => tick + 1);\n }\n });\n }, [renderPlugin]);\n\n useEffect(() => {\n if (renderProvides) {\n const task = renderProvides.renderPage({\n pageIndex,\n options: { scaleFactor, dpr: dpr || window.devicePixelRatio },\n });\n task.wait((blob) => {\n const url = URL.createObjectURL(blob);\n setImageUrl(url);\n urlRef.current = url;\n }, ignore);\n\n return () => {\n if (urlRef.current) {\n URL.revokeObjectURL(urlRef.current);\n urlRef.current = null;\n } else {\n task.abort({\n code: PdfErrorCode.Cancelled,\n message: 'canceled render task',\n });\n }\n };\n }\n }, [pageIndex, scaleFactor, dpr, renderProvides, refreshTick]);\n\n const handleImageLoad = () => {\n if (urlRef.current) {\n URL.revokeObjectURL(urlRef.current);\n urlRef.current = null;\n }\n };\n\n return (\n <Fragment>\n {imageUrl && (\n <img\n src={imageUrl}\n onLoad={handleImageLoad}\n {...props}\n style={{\n width: '100%',\n height: '100%',\n ...(style || {}),\n }}\n />\n )}\n </Fragment>\n );\n}\n"],"names":["useRenderPlugin","usePlugin","RenderPlugin","id","useRenderCapability","useCapability","pageIndex","scaleFactor","dpr","style","props","provides","renderProvides","plugin","renderPlugin","imageUrl","setImageUrl","useState","urlRef","useRef","refreshTick","setRefreshTick","useEffect","onRefreshPages","pages","includes","tick","task","renderPage","options","window","devicePixelRatio","wait","blob","url","URL","createObjectURL","current","ignore","revokeObjectURL","abort","code","PdfErrorCode","Cancelled","message","jsx","Fragment","children","jsxRuntime","src","onLoad","width","height"],"mappings":"6OAGaA,EAAkB,IAAMC,YAAwBC,EAAAA,aAAaC,IAC7DC,EAAsB,IAAMC,gBAA4BH,EAAAA,aAAaC,wBCU3E,UAAqBG,UAC1BA,EAAAC,YACAA,EAAc,EAAAC,IACdA,EAAAC,MACAA,KACGC,IAEH,MAAQC,SAAUC,GAAmBR,KAC7BS,OAAQC,GAAiBd,KAE1Be,EAAUC,GAAeC,EAAAA,SAAwB,MAClDC,EAASC,SAAsB,OAC9BC,EAAaC,GAAkBJ,EAAAA,SAAS,GA6C7C,OA3CFK,EAAAA,WAAU,KACR,GAAKR,EACE,OAAAA,EAAaS,gBAAgBC,IAC9BA,EAAMC,SAASnB,IACFe,GAACK,GAASA,EAAO,GAAC,GAEpC,GACA,CAACZ,IAEJQ,EAAAA,WAAU,KACR,GAAIV,EAAgB,CACZ,MAAAe,EAAOf,EAAegB,WAAW,CACrCtB,YACAuB,QAAS,CAAEtB,cAAaC,IAAKA,GAAOsB,OAAOC,oBAQ7C,OANKJ,EAAAK,MAAMC,IACH,MAAAC,EAAMC,IAAIC,gBAAgBH,GAChCjB,EAAYkB,GACZhB,EAAOmB,QAAUH,CAAA,GAChBI,UAEI,KACDpB,EAAOmB,SACLF,IAAAI,gBAAgBrB,EAAOmB,SAC3BnB,EAAOmB,QAAU,MAEjBV,EAAKa,MAAM,CACTC,KAAMC,EAAaA,aAAAC,UACnBC,QAAS,wBACV,CAEL,IAED,CAACtC,EAAWC,EAAaC,EAAKI,EAAgBQ,MAU/CyB,IAACC,YACEC,SACChC,GAAAiC,EAAAH,IAAC,MAAA,CACCI,IAAKlC,EACLmC,OAZgB,KAClBhC,EAAOmB,UACLF,IAAAI,gBAAgBrB,EAAOmB,SAC3BnB,EAAOmB,QAAU,KAAA,KAUT3B,EACJD,MAAO,CACL0C,MAAO,OACPC,OAAQ,UACJ3C,GAAS,CAAA,MAMzB"}
|
package/dist/react/index.js
CHANGED
|
@@ -8,7 +8,7 @@ const useRenderCapability = () => useCapability(RenderPlugin.id);
|
|
|
8
8
|
function RenderLayer({
|
|
9
9
|
pageIndex,
|
|
10
10
|
scaleFactor = 1,
|
|
11
|
-
dpr
|
|
11
|
+
dpr,
|
|
12
12
|
style,
|
|
13
13
|
...props
|
|
14
14
|
}) {
|
|
@@ -27,7 +27,10 @@ function RenderLayer({
|
|
|
27
27
|
}, [renderPlugin]);
|
|
28
28
|
useEffect(() => {
|
|
29
29
|
if (renderProvides) {
|
|
30
|
-
const task = renderProvides.renderPage({
|
|
30
|
+
const task = renderProvides.renderPage({
|
|
31
|
+
pageIndex,
|
|
32
|
+
options: { scaleFactor, dpr: dpr || window.devicePixelRatio }
|
|
33
|
+
});
|
|
31
34
|
task.wait((blob) => {
|
|
32
35
|
const url = URL.createObjectURL(blob);
|
|
33
36
|
setImageUrl(url);
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/shared/hooks/use-render.ts","../../src/shared/components/render-layer.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { RenderPlugin } from '@embedpdf/plugin-render';\n\nexport const useRenderPlugin = () => usePlugin<RenderPlugin>(RenderPlugin.id);\nexport const useRenderCapability = () => useCapability<RenderPlugin>(RenderPlugin.id);\n","import { Fragment, useEffect, useRef, useState } from '@framework';\nimport type { CSSProperties, HTMLAttributes } from '@framework';\n\nimport { ignore, PdfErrorCode } from '@embedpdf/models';\n\nimport { useRenderCapability, useRenderPlugin } from '../hooks/use-render';\n\ntype RenderLayerProps = Omit<HTMLAttributes<HTMLImageElement>, 'style'> & {\n pageIndex: number;\n scaleFactor?: number;\n dpr?: number;\n style?: CSSProperties;\n};\n\nexport function RenderLayer({\n pageIndex,\n scaleFactor = 1,\n dpr
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/shared/hooks/use-render.ts","../../src/shared/components/render-layer.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/@framework';\nimport { RenderPlugin } from '@embedpdf/plugin-render';\n\nexport const useRenderPlugin = () => usePlugin<RenderPlugin>(RenderPlugin.id);\nexport const useRenderCapability = () => useCapability<RenderPlugin>(RenderPlugin.id);\n","import { Fragment, useEffect, useRef, useState } from '@framework';\nimport type { CSSProperties, HTMLAttributes } from '@framework';\n\nimport { ignore, PdfErrorCode } from '@embedpdf/models';\n\nimport { useRenderCapability, useRenderPlugin } from '../hooks/use-render';\n\ntype RenderLayerProps = Omit<HTMLAttributes<HTMLImageElement>, 'style'> & {\n pageIndex: number;\n scaleFactor?: number;\n dpr?: number;\n style?: CSSProperties;\n};\n\nexport function RenderLayer({\n pageIndex,\n scaleFactor = 1,\n dpr,\n style,\n ...props\n}: RenderLayerProps) {\n const { provides: renderProvides } = useRenderCapability();\n const { plugin: renderPlugin } = useRenderPlugin();\n\n const [imageUrl, setImageUrl] = useState<string | null>(null);\n const urlRef = useRef<string | null>(null);\n const [refreshTick, setRefreshTick] = useState(0);\n\n useEffect(() => {\n if (!renderPlugin) return;\n return renderPlugin.onRefreshPages((pages) => {\n if (pages.includes(pageIndex)) {\n setRefreshTick((tick) => tick + 1);\n }\n });\n }, [renderPlugin]);\n\n useEffect(() => {\n if (renderProvides) {\n const task = renderProvides.renderPage({\n pageIndex,\n options: { scaleFactor, dpr: dpr || window.devicePixelRatio },\n });\n task.wait((blob) => {\n const url = URL.createObjectURL(blob);\n setImageUrl(url);\n urlRef.current = url;\n }, ignore);\n\n return () => {\n if (urlRef.current) {\n URL.revokeObjectURL(urlRef.current);\n urlRef.current = null;\n } else {\n task.abort({\n code: PdfErrorCode.Cancelled,\n message: 'canceled render task',\n });\n }\n };\n }\n }, [pageIndex, scaleFactor, dpr, renderProvides, refreshTick]);\n\n const handleImageLoad = () => {\n if (urlRef.current) {\n URL.revokeObjectURL(urlRef.current);\n urlRef.current = null;\n }\n };\n\n return (\n <Fragment>\n {imageUrl && (\n <img\n src={imageUrl}\n onLoad={handleImageLoad}\n {...props}\n style={{\n width: '100%',\n height: '100%',\n ...(style || {}),\n }}\n />\n )}\n </Fragment>\n );\n}\n"],"names":[],"mappings":";;;;;AAGO,MAAM,kBAAkB,MAAM,UAAwB,aAAa,EAAE;AACrE,MAAM,sBAAsB,MAAM,cAA4B,aAAa,EAAE;ACU7E,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAqB;AACnB,QAAM,EAAE,UAAU,eAAe,IAAI,oBAAoB;AACzD,QAAM,EAAE,QAAQ,aAAa,IAAI,gBAAgB;AAEjD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAwB,IAAI;AACtD,QAAA,SAAS,OAAsB,IAAI;AACzC,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,CAAC;AAEhD,YAAU,MAAM;AACd,QAAI,CAAC,aAAc;AACZ,WAAA,aAAa,eAAe,CAAC,UAAU;AACxC,UAAA,MAAM,SAAS,SAAS,GAAG;AACd,uBAAA,CAAC,SAAS,OAAO,CAAC;AAAA,MAAA;AAAA,IACnC,CACD;AAAA,EAAA,GACA,CAAC,YAAY,CAAC;AAEjB,YAAU,MAAM;AACd,QAAI,gBAAgB;AACZ,YAAA,OAAO,eAAe,WAAW;AAAA,QACrC;AAAA,QACA,SAAS,EAAE,aAAa,KAAK,OAAO,OAAO,iBAAiB;AAAA,MAAA,CAC7D;AACI,WAAA,KAAK,CAAC,SAAS;AACZ,cAAA,MAAM,IAAI,gBAAgB,IAAI;AACpC,oBAAY,GAAG;AACf,eAAO,UAAU;AAAA,SAChB,MAAM;AAET,aAAO,MAAM;AACX,YAAI,OAAO,SAAS;AACd,cAAA,gBAAgB,OAAO,OAAO;AAClC,iBAAO,UAAU;AAAA,QAAA,OACZ;AACL,eAAK,MAAM;AAAA,YACT,MAAM,aAAa;AAAA,YACnB,SAAS;AAAA,UAAA,CACV;AAAA,QAAA;AAAA,MAEL;AAAA,IAAA;AAAA,EACF,GACC,CAAC,WAAW,aAAa,KAAK,gBAAgB,WAAW,CAAC;AAE7D,QAAM,kBAAkB,MAAM;AAC5B,QAAI,OAAO,SAAS;AACd,UAAA,gBAAgB,OAAO,OAAO;AAClC,aAAO,UAAU;AAAA,IAAA;AAAA,EAErB;AAGE,SAAA,oBAAC,YACE,UACC,YAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,QAAQ;AAAA,MACP,GAAG;AAAA,MACJ,OAAO;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,GAAI,SAAS,CAAA;AAAA,MAAC;AAAA,IAChB;AAAA,EAAA,GAGN;AAEJ;"}
|
|
@@ -5,6 +5,5 @@ interface Props {
|
|
|
5
5
|
}
|
|
6
6
|
declare const _default: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
7
7
|
scaleFactor: number;
|
|
8
|
-
dpr: number;
|
|
9
8
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
10
9
|
export default _default;
|
package/dist/vue/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),r=require("@embedpdf/models"),n=require("@embedpdf/core/vue"),l=require("@embedpdf/plugin-render"),t=()=>n.useCapability(l.RenderPlugin.id),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),r=require("@embedpdf/models"),n=require("@embedpdf/core/vue"),l=require("@embedpdf/plugin-render"),a=()=>n.usePlugin(l.RenderPlugin.id),t=()=>n.useCapability(l.RenderPlugin.id),d=["src"],o=e.defineComponent({__name:"render-layer",props:{pageIndex:{},scaleFactor:{default:1},dpr:{}},setup(n){const l=n,{provides:o}=t(),{plugin:u}=a(),i=e.ref(null),c=e.ref(0);let s=null,p=null;function g(){p&&!s&&p.abort({code:r.PdfErrorCode.Cancelled,message:"canceled render task"})}function m(){s&&(URL.revokeObjectURL(s),s=null)}return e.watch(u,((e,r,n)=>{if(e){n(e.onRefreshPages((e=>{e.includes(l.pageIndex)&&c.value++})))}}),{immediate:!0}),e.watch((()=>[l.pageIndex,l.scaleFactor,l.dpr,o.value,c.value]),(function(){if(g(),m(),i.value=null,p=null,!o.value)return;const e=o.value.renderPage({pageIndex:l.pageIndex,options:{scaleFactor:l.scaleFactor,dpr:l.dpr||window.devicePixelRatio}});p=e,e.wait((e=>{s=URL.createObjectURL(e),i.value=s,p=null}),r.ignore)}),{immediate:!0}),e.onBeforeUnmount((()=>{g(),m()})),(r,n)=>i.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:i.value,style:{width:"100%",height:"100%"},onLoad:m},null,40,d)):e.createCommentVNode("",!0)}});exports.RenderLayer=o,exports.useRenderCapability=t,exports.useRenderPlugin=a;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/vue/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../src/vue/hooks/use-render.ts","../../src/vue/components/render-layer.vue"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { RenderPlugin } from '@embedpdf/plugin-render';\n\nexport const useRenderPlugin = () => usePlugin<RenderPlugin>(RenderPlugin.id);\nexport const useRenderCapability = () => useCapability<RenderPlugin>(RenderPlugin.id);\n","<script setup lang=\"ts\">\nimport { ref, watch, onBeforeUnmount } from 'vue';\nimport { ignore, PdfErrorCode, PdfErrorReason, Task } from '@embedpdf/models';\n\nimport { useRenderCapability } from '../hooks';\n\ninterface Props {\n pageIndex: number;\n scaleFactor?: number;\n dpr?: number;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n scaleFactor: 1,\n
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../src/vue/hooks/use-render.ts","../../src/vue/components/render-layer.vue"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { RenderPlugin } from '@embedpdf/plugin-render';\n\nexport const useRenderPlugin = () => usePlugin<RenderPlugin>(RenderPlugin.id);\nexport const useRenderCapability = () => useCapability<RenderPlugin>(RenderPlugin.id);\n","<script setup lang=\"ts\">\nimport { ref, watch, onBeforeUnmount } from 'vue';\nimport { ignore, PdfErrorCode, PdfErrorReason, Task } from '@embedpdf/models';\n\nimport { useRenderCapability, useRenderPlugin } from '../hooks';\n\ninterface Props {\n pageIndex: number;\n scaleFactor?: number;\n dpr?: number;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n scaleFactor: 1,\n});\n\nconst { provides: renderProvides } = useRenderCapability();\nconst { plugin: renderPlugin } = useRenderPlugin();\n\nconst imageUrl = ref<string | null>(null);\nconst refreshTick = ref(0);\n\nlet currentBlobUrl: string | null = null;\nlet currentTask: Task<Blob, PdfErrorReason> | null = null;\n\n/* ------------------------------------------ */\n/* Helper function to abort current task */\n/* ------------------------------------------ */\nfunction abortCurrentTask() {\n if (currentTask && !currentBlobUrl) {\n currentTask.abort({\n code: PdfErrorCode.Cancelled,\n message: 'canceled render task',\n });\n }\n}\n\n/* ------------------------------------------ */\n/* render whenever pageIndex/scale/dpr/tick change */\n/* ------------------------------------------ */\nfunction revoke() {\n if (currentBlobUrl) {\n URL.revokeObjectURL(currentBlobUrl);\n currentBlobUrl = null;\n }\n}\n\nfunction startRender() {\n abortCurrentTask();\n revoke();\n imageUrl.value = null;\n currentTask = null;\n\n if (!renderProvides.value) return;\n\n const task = renderProvides.value.renderPage({\n pageIndex: props.pageIndex,\n options: {\n scaleFactor: props.scaleFactor,\n dpr: props.dpr || window.devicePixelRatio,\n },\n });\n\n currentTask = task;\n\n task.wait((blob) => {\n currentBlobUrl = URL.createObjectURL(blob);\n imageUrl.value = currentBlobUrl;\n currentTask = null;\n }, ignore);\n}\n\n// Watch for external refresh events\nwatch(\n renderPlugin,\n (pluginInstance, _, onCleanup) => {\n if (pluginInstance) {\n const unsubscribe = pluginInstance.onRefreshPages((pages: number[]) => {\n if (pages.includes(props.pageIndex)) {\n refreshTick.value++;\n }\n });\n onCleanup(unsubscribe);\n }\n },\n { immediate: true },\n);\n\n// Watch for changes that require a re-render\nwatch(\n () => [props.pageIndex, props.scaleFactor, props.dpr, renderProvides.value, refreshTick.value],\n startRender,\n { immediate: true },\n);\n\n/* ------------------------------------------ */\nonBeforeUnmount(() => {\n abortCurrentTask();\n revoke();\n});\n</script>\n\n<template>\n <img v-if=\"imageUrl\" :src=\"imageUrl\" :style=\"{ width: '100%', height: '100%' }\" @load=\"revoke\" />\n</template>\n"],"names":["useRenderPlugin","usePlugin","RenderPlugin","id","useRenderCapability","useCapability","props","__props","provides","renderProvides","plugin","renderPlugin","imageUrl","ref","refreshTick","currentBlobUrl","currentTask","abortCurrentTask","abort","code","PdfErrorCode","Cancelled","message","revoke","URL","revokeObjectURL","vue$1","watch","pluginInstance","_","onCleanup","onRefreshPages","pages","includes","pageIndex","value","immediate","scaleFactor","dpr","task","renderPage","options","window","devicePixelRatio","wait","blob","createObjectURL","ignore","onBeforeUnmount","_createElementBlock","src","style","width","height","onLoad"],"mappings":"0MAGaA,EAAkB,IAAMC,YAAwBC,EAAAA,aAAaC,IAC7DC,EAAsB,IAAMC,gBAA4BH,EAAAA,aAAaC,sHCQlF,MAAMG,EAAQC,GAINC,SAAUC,GAAmBL,KAC7BM,OAAQC,GAAiBX,IAE3BY,EAAWC,MAAmB,MAC9BC,EAAcD,MAAI,GAExB,IAAIE,EAAgC,KAChCC,EAAiD,KAKrD,SAASC,IACHD,IAAgBD,GAClBC,EAAYE,MAAM,CAChBC,KAAMC,EAAaA,aAAAC,UACnBC,QAAS,wBAEb,CAMF,SAASC,IACHR,IACFS,IAAIC,gBAAgBV,GACHA,EAAA,KACnB,QA6BFW,EAAAC,MACEhB,GACA,CAACiB,EAAgBC,EAAGC,KAClB,GAAIF,EAAgB,CAMlBE,EALoBF,EAAeG,gBAAgBC,IAC7CA,EAAMC,SAAS3B,EAAM4B,YACXpB,EAAAqB,OAAA,IAGK,IAGzB,CAAEC,WAAW,IAIfV,EAAAC,OACE,IAAM,CAACrB,EAAM4B,UAAW5B,EAAM+B,YAAa/B,EAAMgC,IAAK7B,EAAe0B,MAAOrB,EAAYqB,SA3C1F,WAMM,GALalB,IACVM,IACPX,EAASuB,MAAQ,KACHnB,EAAA,MAETP,EAAe0B,MAAO,OAErB,MAAAI,EAAO9B,EAAe0B,MAAMK,WAAW,CAC3CN,UAAW5B,EAAM4B,UACjBO,QAAS,CACPJ,YAAa/B,EAAM+B,YACnBC,IAAKhC,EAAMgC,KAAOI,OAAOC,oBAIf3B,EAAAuB,EAETA,EAAAK,MAAMC,IACQ9B,EAAAS,IAAIsB,gBAAgBD,GACrCjC,EAASuB,MAAQpB,EACHC,EAAA,IAAA,GACb+B,SAAM,GAuBT,CAAEX,WAAW,IAIfY,EAAAA,iBAAgB,KACG/B,IACVM,GAAA,WAKIX,EAAQuB,qBAAnBc,EAAAA,mBAAiG,MAAA,OAA3EC,IAAKtC,EAAQuB,MAAGgB,MAAO,CAAiCC,MAAA,OAAAC,OAAA,QAAGC,OAAM/B"}
|
package/dist/vue/index.js
CHANGED
|
@@ -10,12 +10,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
10
10
|
props: {
|
|
11
11
|
pageIndex: {},
|
|
12
12
|
scaleFactor: { default: 1 },
|
|
13
|
-
dpr: {
|
|
13
|
+
dpr: {}
|
|
14
14
|
},
|
|
15
15
|
setup(__props) {
|
|
16
16
|
const props = __props;
|
|
17
17
|
const { provides: renderProvides } = useRenderCapability();
|
|
18
|
+
const { plugin: renderPlugin } = useRenderPlugin();
|
|
18
19
|
const imageUrl = ref(null);
|
|
20
|
+
const refreshTick = ref(0);
|
|
19
21
|
let currentBlobUrl = null;
|
|
20
22
|
let currentTask = null;
|
|
21
23
|
function abortCurrentTask() {
|
|
@@ -40,8 +42,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
40
42
|
if (!renderProvides.value) return;
|
|
41
43
|
const task = renderProvides.value.renderPage({
|
|
42
44
|
pageIndex: props.pageIndex,
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
options: {
|
|
46
|
+
scaleFactor: props.scaleFactor,
|
|
47
|
+
dpr: props.dpr || window.devicePixelRatio
|
|
48
|
+
}
|
|
45
49
|
});
|
|
46
50
|
currentTask = task;
|
|
47
51
|
task.wait((blob) => {
|
|
@@ -50,9 +54,25 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
50
54
|
currentTask = null;
|
|
51
55
|
}, ignore);
|
|
52
56
|
}
|
|
53
|
-
watch(
|
|
54
|
-
|
|
55
|
-
|
|
57
|
+
watch(
|
|
58
|
+
renderPlugin,
|
|
59
|
+
(pluginInstance, _, onCleanup) => {
|
|
60
|
+
if (pluginInstance) {
|
|
61
|
+
const unsubscribe = pluginInstance.onRefreshPages((pages) => {
|
|
62
|
+
if (pages.includes(props.pageIndex)) {
|
|
63
|
+
refreshTick.value++;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
onCleanup(unsubscribe);
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
{ immediate: true }
|
|
70
|
+
);
|
|
71
|
+
watch(
|
|
72
|
+
() => [props.pageIndex, props.scaleFactor, props.dpr, renderProvides.value, refreshTick.value],
|
|
73
|
+
startRender,
|
|
74
|
+
{ immediate: true }
|
|
75
|
+
);
|
|
56
76
|
onBeforeUnmount(() => {
|
|
57
77
|
abortCurrentTask();
|
|
58
78
|
revoke();
|
package/dist/vue/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/vue/hooks/use-render.ts","../../src/vue/components/render-layer.vue"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { RenderPlugin } from '@embedpdf/plugin-render';\n\nexport const useRenderPlugin = () => usePlugin<RenderPlugin>(RenderPlugin.id);\nexport const useRenderCapability = () => useCapability<RenderPlugin>(RenderPlugin.id);\n","<script setup lang=\"ts\">\nimport { ref, watch, onBeforeUnmount } from 'vue';\nimport { ignore, PdfErrorCode, PdfErrorReason, Task } from '@embedpdf/models';\n\nimport { useRenderCapability } from '../hooks';\n\ninterface Props {\n pageIndex: number;\n scaleFactor?: number;\n dpr?: number;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n scaleFactor: 1,\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/vue/hooks/use-render.ts","../../src/vue/components/render-layer.vue"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { RenderPlugin } from '@embedpdf/plugin-render';\n\nexport const useRenderPlugin = () => usePlugin<RenderPlugin>(RenderPlugin.id);\nexport const useRenderCapability = () => useCapability<RenderPlugin>(RenderPlugin.id);\n","<script setup lang=\"ts\">\nimport { ref, watch, onBeforeUnmount } from 'vue';\nimport { ignore, PdfErrorCode, PdfErrorReason, Task } from '@embedpdf/models';\n\nimport { useRenderCapability, useRenderPlugin } from '../hooks';\n\ninterface Props {\n pageIndex: number;\n scaleFactor?: number;\n dpr?: number;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n scaleFactor: 1,\n});\n\nconst { provides: renderProvides } = useRenderCapability();\nconst { plugin: renderPlugin } = useRenderPlugin();\n\nconst imageUrl = ref<string | null>(null);\nconst refreshTick = ref(0);\n\nlet currentBlobUrl: string | null = null;\nlet currentTask: Task<Blob, PdfErrorReason> | null = null;\n\n/* ------------------------------------------ */\n/* Helper function to abort current task */\n/* ------------------------------------------ */\nfunction abortCurrentTask() {\n if (currentTask && !currentBlobUrl) {\n currentTask.abort({\n code: PdfErrorCode.Cancelled,\n message: 'canceled render task',\n });\n }\n}\n\n/* ------------------------------------------ */\n/* render whenever pageIndex/scale/dpr/tick change */\n/* ------------------------------------------ */\nfunction revoke() {\n if (currentBlobUrl) {\n URL.revokeObjectURL(currentBlobUrl);\n currentBlobUrl = null;\n }\n}\n\nfunction startRender() {\n abortCurrentTask();\n revoke();\n imageUrl.value = null;\n currentTask = null;\n\n if (!renderProvides.value) return;\n\n const task = renderProvides.value.renderPage({\n pageIndex: props.pageIndex,\n options: {\n scaleFactor: props.scaleFactor,\n dpr: props.dpr || window.devicePixelRatio,\n },\n });\n\n currentTask = task;\n\n task.wait((blob) => {\n currentBlobUrl = URL.createObjectURL(blob);\n imageUrl.value = currentBlobUrl;\n currentTask = null;\n }, ignore);\n}\n\n// Watch for external refresh events\nwatch(\n renderPlugin,\n (pluginInstance, _, onCleanup) => {\n if (pluginInstance) {\n const unsubscribe = pluginInstance.onRefreshPages((pages: number[]) => {\n if (pages.includes(props.pageIndex)) {\n refreshTick.value++;\n }\n });\n onCleanup(unsubscribe);\n }\n },\n { immediate: true },\n);\n\n// Watch for changes that require a re-render\nwatch(\n () => [props.pageIndex, props.scaleFactor, props.dpr, renderProvides.value, refreshTick.value],\n startRender,\n { immediate: true },\n);\n\n/* ------------------------------------------ */\nonBeforeUnmount(() => {\n abortCurrentTask();\n revoke();\n});\n</script>\n\n<template>\n <img v-if=\"imageUrl\" :src=\"imageUrl\" :style=\"{ width: '100%', height: '100%' }\" @load=\"revoke\" />\n</template>\n"],"names":["_createElementBlock"],"mappings":";;;;AAGO,MAAM,kBAAkB,MAAM,UAAwB,aAAa,EAAE;AACrE,MAAM,sBAAsB,MAAM,cAA4B,aAAa,EAAE;;;;;;;;;;ACQpF,UAAM,QAAQ;AAId,UAAM,EAAE,UAAU,eAAe,IAAI,oBAAoB;AACzD,UAAM,EAAE,QAAQ,aAAa,IAAI,gBAAgB;AAE3C,UAAA,WAAW,IAAmB,IAAI;AAClC,UAAA,cAAc,IAAI,CAAC;AAEzB,QAAI,iBAAgC;AACpC,QAAI,cAAiD;AAKrD,aAAS,mBAAmB;AACtB,UAAA,eAAe,CAAC,gBAAgB;AAClC,oBAAY,MAAM;AAAA,UAChB,MAAM,aAAa;AAAA,UACnB,SAAS;AAAA,QAAA,CACV;AAAA,MAAA;AAAA,IACH;AAMF,aAAS,SAAS;AAChB,UAAI,gBAAgB;AAClB,YAAI,gBAAgB,cAAc;AACjB,yBAAA;AAAA,MAAA;AAAA,IACnB;AAGF,aAAS,cAAc;AACJ,uBAAA;AACV,aAAA;AACP,eAAS,QAAQ;AACH,oBAAA;AAEV,UAAA,CAAC,eAAe,MAAO;AAErB,YAAA,OAAO,eAAe,MAAM,WAAW;AAAA,QAC3C,WAAW,MAAM;AAAA,QACjB,SAAS;AAAA,UACP,aAAa,MAAM;AAAA,UACnB,KAAK,MAAM,OAAO,OAAO;AAAA,QAAA;AAAA,MAC3B,CACD;AAEa,oBAAA;AAET,WAAA,KAAK,CAAC,SAAS;AACD,yBAAA,IAAI,gBAAgB,IAAI;AACzC,iBAAS,QAAQ;AACH,sBAAA;AAAA,SACb,MAAM;AAAA,IAAA;AAIX;AAAA,MACE;AAAA,MACA,CAAC,gBAAgB,GAAG,cAAc;AAChC,YAAI,gBAAgB;AAClB,gBAAM,cAAc,eAAe,eAAe,CAAC,UAAoB;AACrE,gBAAI,MAAM,SAAS,MAAM,SAAS,GAAG;AACvB,0BAAA;AAAA,YAAA;AAAA,UACd,CACD;AACD,oBAAU,WAAW;AAAA,QAAA;AAAA,MAEzB;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IACpB;AAGA;AAAA,MACE,MAAM,CAAC,MAAM,WAAW,MAAM,aAAa,MAAM,KAAK,eAAe,OAAO,YAAY,KAAK;AAAA,MAC7F;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IACpB;AAGA,oBAAgB,MAAM;AACH,uBAAA;AACV,aAAA;AAAA,IAAA,CACR;;aAIY,SAAQ,sBAAnBA,mBAAiG,OAAA;AAAA;QAA3E,KAAK,SAAQ;AAAA,QAAG,OAAO,EAAiC,OAAA,QAAA,QAAA,OAAA;AAAA,QAAG,QAAM;AAAA,MAAA;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@embedpdf/plugin-render",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.20",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -28,20 +28,20 @@
|
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@embedpdf/models": "1.0.
|
|
31
|
+
"@embedpdf/models": "1.0.20"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/react": "^18.2.0",
|
|
35
35
|
"typescript": "^5.0.0",
|
|
36
36
|
"@embedpdf/build": "1.0.0",
|
|
37
|
-
"@embedpdf/core": "1.0.
|
|
37
|
+
"@embedpdf/core": "1.0.20"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"preact": "^10.26.4",
|
|
41
41
|
"react": ">=16.8.0",
|
|
42
42
|
"react-dom": ">=16.8.0",
|
|
43
43
|
"vue": ">=3.2.0",
|
|
44
|
-
"@embedpdf/core": "1.0.
|
|
44
|
+
"@embedpdf/core": "1.0.20"
|
|
45
45
|
},
|
|
46
46
|
"files": [
|
|
47
47
|
"dist",
|