@embedpdf-editor/vue3-chapter-viewer 0.3.0 → 0.3.1
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/README.md +212 -215
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +70 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +967 -937
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
- package/src/vite.ts +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -60,6 +60,11 @@ declare interface BookmarkMarkerUiConfig_2 {
|
|
|
60
60
|
iconSize?: number;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
export declare function buildChapterViewerCatalog(nodes: ChapterTreeInput[]): {
|
|
64
|
+
tree: ChapterTreeNode_2[];
|
|
65
|
+
manifest: ChapterManifest;
|
|
66
|
+
};
|
|
67
|
+
|
|
63
68
|
export declare function buildParagraphBookmarkAnchor(chapterId: string, localPageIndex: number, rectsPdfCoord: Rect[], virtualPage?: {
|
|
64
69
|
globalPageIndex: number;
|
|
65
70
|
globalPageNumber: number;
|
|
@@ -134,6 +139,8 @@ export declare interface ChapterDescriptor {
|
|
|
134
139
|
ownedGlobalPages?: number[];
|
|
135
140
|
}
|
|
136
141
|
|
|
142
|
+
export declare function chapterDescriptorFromTreeNode(node: ChapterTreeInput): ChapterDescriptor;
|
|
143
|
+
|
|
137
144
|
/**
|
|
138
145
|
* 章节级加载状态。区别于 `@embedpdf/core` 的 DocumentState:
|
|
139
146
|
* - `idle` = manifest 已注册但尚未触发 open
|
|
@@ -280,7 +287,9 @@ export declare type ChapterSource = {
|
|
|
280
287
|
url: string;
|
|
281
288
|
} | {
|
|
282
289
|
buffer: ArrayBuffer;
|
|
283
|
-
}
|
|
290
|
+
}
|
|
291
|
+
/** 按章预处理:拉取、解密、转换后返回 url 或 buffer */
|
|
292
|
+
| {
|
|
284
293
|
load: () => Promise<ChapterPdfPayload>;
|
|
285
294
|
};
|
|
286
295
|
|
|
@@ -294,8 +303,31 @@ declare interface ChapterStatusEvent {
|
|
|
294
303
|
};
|
|
295
304
|
}
|
|
296
305
|
|
|
306
|
+
/**
|
|
307
|
+
* 业务目录树输入:父节点页范围可覆盖子节点;flatten 后每条对应一个可加载的 PDF 章节。
|
|
308
|
+
* 父节点若仅作分组、无独立 PDF,请勿放入 manifest(不要 flatten 该节点)。
|
|
309
|
+
*/
|
|
310
|
+
export declare type ChapterTreeInput = {
|
|
311
|
+
chapterId: string;
|
|
312
|
+
title: string;
|
|
313
|
+
startPage: number;
|
|
314
|
+
endPage: number;
|
|
315
|
+
source?: ChapterSource;
|
|
316
|
+
encrypted?: boolean;
|
|
317
|
+
children?: ChapterTreeInput[];
|
|
318
|
+
};
|
|
319
|
+
|
|
297
320
|
export { ChapterTreeNode }
|
|
298
321
|
|
|
322
|
+
/** 侧栏目录树节点(仅 UI;渲染以 flatten 后的 manifest 为准) */
|
|
323
|
+
declare type ChapterTreeNode_2 = {
|
|
324
|
+
id: string;
|
|
325
|
+
title: string;
|
|
326
|
+
startPage: number;
|
|
327
|
+
endPage: number;
|
|
328
|
+
children?: ChapterTreeNode_2[];
|
|
329
|
+
};
|
|
330
|
+
|
|
299
331
|
export { ChapterTreePanel }
|
|
300
332
|
|
|
301
333
|
export { ChapterViewerCatalog }
|
|
@@ -354,6 +386,13 @@ export declare interface ChapterViewerOptions {
|
|
|
354
386
|
/** 书签持久化与删除回调 */
|
|
355
387
|
bookmarks: ParagraphBookmarkCallbacks;
|
|
356
388
|
chapterPdfLoader?: IChapterPdfLoader;
|
|
389
|
+
/**
|
|
390
|
+
* 同一全局页被多个章节条目覆盖时,用哪一个章节的 PDF 渲染(非 owner 的章节在该页不绘制真实 PDF)。
|
|
391
|
+
* - `{ kind: 'first-wins' }`:manifest 中先出现的章节(默认)
|
|
392
|
+
* - `{ kind: 'last-wins' }`:后出现的章节(目录 flatten 后常用于「以当前页最后一节为准」)
|
|
393
|
+
* 亦可用 `overlapStrategyForSamePageOwner('first' | 'last')`(chapter-core 包)
|
|
394
|
+
*/
|
|
395
|
+
overlapStrategy?: OverlapOwnerStrategy;
|
|
357
396
|
/** 功能开关与样式;省略则全开 */
|
|
358
397
|
features?: ChapterViewerConfig;
|
|
359
398
|
}
|
|
@@ -445,6 +484,8 @@ export declare const DEFAULT_CHAPTER_VIEWER_CONFIG: ChapterViewerConfig;
|
|
|
445
484
|
/** 默认全开的功能配置(内部规范化结果) */
|
|
446
485
|
export declare const DEFAULT_CHAPTER_VIEWER_FEATURES: ChapterViewerFeaturesConfig;
|
|
447
486
|
|
|
487
|
+
export declare const defaultOverlapStrategy: OverlapOwnerStrategy;
|
|
488
|
+
|
|
448
489
|
export declare function downloadChapterAnnotationsArchive(archive: ChapterAnnotationsArchive, filename?: string): void;
|
|
449
490
|
|
|
450
491
|
export declare function downloadChapterAnnotationsSnapshot(snapshot: ChapterAnnotationsSnapshot, filename?: string): void;
|
|
@@ -476,6 +517,9 @@ export declare type ExportChapterAnnotationsOptions = ChapterAnnotationsContentF
|
|
|
476
517
|
ensureChapterLoaded?: boolean;
|
|
477
518
|
};
|
|
478
519
|
|
|
520
|
+
/** 深度优先展开目录树为 manifest.chapters(含父、子各一条,与 demo flatten 一致) */
|
|
521
|
+
export declare function flattenChapterTree(nodes: ChapterTreeInput[]): ChapterDescriptor[];
|
|
522
|
+
|
|
479
523
|
declare interface HoverBookmarkUiConfig {
|
|
480
524
|
/** 悬停行末「添加书签」自定义图标;无背景 */
|
|
481
525
|
renderAddIcon?: () => unknown;
|
|
@@ -488,8 +532,14 @@ declare interface HoverBookmarkUiConfig_2 {
|
|
|
488
532
|
}
|
|
489
533
|
|
|
490
534
|
/**
|
|
491
|
-
* 全局章节 PDF
|
|
492
|
-
*
|
|
535
|
+
* 全局章节 PDF 加载器:在打开章节前由引擎调用,用于预处理/拉取 PDF。
|
|
536
|
+
*
|
|
537
|
+
* 优先级(`ChapterManagerPlugin.resolvePdfPayload`):
|
|
538
|
+
* 1. `chapter.source.url` / `source.buffer` — 直接使用
|
|
539
|
+
* 2. `chapter.source.load()` — 按章异步,返回 `{ url }` 或 `{ buffer }`
|
|
540
|
+
* 3. `chapterPdfLoader.loadPdf(chapter)` — 全局统一逻辑(鉴权、解密、转 blob URL 等)
|
|
541
|
+
*
|
|
542
|
+
* 适合:所有章节走同一套 API、在内存中解密后再以 buffer 打开、动态签名 URL 等。
|
|
493
543
|
*/
|
|
494
544
|
export declare interface IChapterPdfLoader {
|
|
495
545
|
loadPdf(chapter: ChapterDescriptor): Promise<ChapterPdfPayload>;
|
|
@@ -660,12 +710,17 @@ declare interface OperationSpec {
|
|
|
660
710
|
}
|
|
661
711
|
|
|
662
712
|
/**
|
|
663
|
-
*
|
|
664
|
-
*
|
|
665
|
-
*
|
|
666
|
-
* -
|
|
713
|
+
* 决定同一全局页被多个章节 manifest 条目覆盖时,用哪一个章节的 PDF 渲染(owner)。
|
|
714
|
+
* 非 owner 章节在该页仅占位/不绘制真实 PDF,避免重复。
|
|
715
|
+
*
|
|
716
|
+
* - **first-wins**:manifest 中**先**出现的章节(默认)
|
|
717
|
+
* - **last-wins**:**后**出现的章节(目录 flatten 后,重叠页常以「当前页最后一节」为准)
|
|
718
|
+
* - **explicit**:`ChapterDescriptor.ownedGlobalPages` 声明归属
|
|
719
|
+
* - **custom**:`resolve(globalPage, candidates)` 完全自定义
|
|
720
|
+
*
|
|
721
|
+
* 简写:`overlapStrategyForSamePageOwner('first' | 'last')`(chapter-core)
|
|
667
722
|
*/
|
|
668
|
-
declare type OverlapOwnerStrategy = {
|
|
723
|
+
export declare type OverlapOwnerStrategy = {
|
|
669
724
|
kind: 'first-wins';
|
|
670
725
|
} | {
|
|
671
726
|
kind: 'last-wins';
|
|
@@ -676,6 +731,8 @@ declare type OverlapOwnerStrategy = {
|
|
|
676
731
|
resolve: (globalPage: number, candidates: ChapterDescriptor[]) => string;
|
|
677
732
|
};
|
|
678
733
|
|
|
734
|
+
export declare function overlapStrategyForSamePageOwner(owner: SamePageOverlapOwner): OverlapOwnerStrategy;
|
|
735
|
+
|
|
679
736
|
export declare interface ParagraphBookmark {
|
|
680
737
|
id: string;
|
|
681
738
|
label: string;
|
|
@@ -744,6 +801,9 @@ declare interface PdfChapterEditorToolbarConfig extends CreateEditorUiSchemaOpti
|
|
|
744
801
|
|
|
745
802
|
export { PdfChapterViewport }
|
|
746
803
|
|
|
804
|
+
/** 同一全局页多章节重叠时,选用 manifest 中先/后出现的章节 PDF */
|
|
805
|
+
export declare type SamePageOverlapOwner = 'first' | 'last';
|
|
806
|
+
|
|
747
807
|
/** 划线类型 */
|
|
748
808
|
declare type SelectionMarkupKind = 'highlight' | 'underline' | 'squiggly' | 'strikeout';
|
|
749
809
|
|
|
@@ -773,6 +833,8 @@ export declare interface SerializableAnnotationTransferItem {
|
|
|
773
833
|
};
|
|
774
834
|
}
|
|
775
835
|
|
|
836
|
+
export declare function toChapterTreeNodes(nodes: ChapterTreeInput[]): ChapterTreeNode_2[];
|
|
837
|
+
|
|
776
838
|
export { useCapability }
|
|
777
839
|
|
|
778
840
|
export { usePdfiumEngine }
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,gCAAgC,EAChC,+BAA+B,EAC/B,6BAA6B,EAC7B,oBAAoB,EACpB,4BAA4B,EAC5B,wBAAwB,EACxB,QAAQ,EACR,aAAa,GACd,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,+BAA+B,EAC/B,+BAA+B,EAC/B,kCAAkC,EAClC,gCAAgC,EAChC,mCAAmC,EACnC,iCAAiC,EACjC,kCAAkC,EAClC,gBAAgB,EAChB,mCAAmC,EACnC,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,GACrC,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,EAC3B,qCAAqC,EACrC,6BAA6B,EAC7B,2BAA2B,EAC3B,+BAA+B,EAC/B,aAAa,EACb,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,gCAAgC,EAChC,+BAA+B,EAC/B,6BAA6B,EAC7B,oBAAoB,EACpB,4BAA4B,EAC5B,wBAAwB,EACxB,QAAQ,EACR,aAAa,GACd,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,EACxB,+BAA+B,EAC/B,+BAA+B,EAC/B,kCAAkC,EAClC,gCAAgC,EAChC,mCAAmC,EACnC,iCAAiC,EACjC,kCAAkC,EAClC,gBAAgB,EAChB,mCAAmC,EACnC,KAAK,0BAA0B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,+BAA+B,EACpC,KAAK,+BAA+B,GACrC,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,2BAA2B,EAC3B,qCAAqC,EACrC,6BAA6B,EAC7B,2BAA2B,EAC3B,+BAA+B,EAC/B,aAAa,EACb,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,sBAAsB,EACtB,+BAA+B,EAC/B,kBAAkB,EAClB,6BAA6B,EAC7B,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC"}
|