@embedpdf-editor/chapter-snippet 0.3.4 → 0.3.6

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 CHANGED
@@ -14,7 +14,7 @@ pnpm add @embedpdf-editor/chapter-snippet
14
14
 
15
15
  ## Vite
16
16
 
17
- `chapterSnippetViteResolve()` 用于 Vue2/snippet 场景:
17
+ `chapterSnippetViteResolve()` 用于 Vite + Vue2/snippet 场景:
18
18
 
19
19
  ```ts
20
20
  // vite.config.ts
@@ -33,6 +33,22 @@ export default defineConfig({
33
33
  | `server.headers` | 开发环境添加 COOP/COEP,满足 worker/wasm 常见要求 |
34
34
  | `optimizeDeps.exclude` | 避免 Vite 二次预构建 snippet 和 PDFium 引擎 |
35
35
 
36
+ ## Vue CLI / Webpack
37
+
38
+ **无需修改 `vue.config.js`。** 安装后直接:
39
+
40
+ ```js
41
+ import ChapterEmbedPDF from '@embedpdf-editor/chapter-snippet';
42
+ ```
43
+
44
+ 发包构建会对 `dist/embedpdf-chapter.js` 做语法降级(去掉 `??` 等 ES2020 语法),Webpack / Vue CLI 默认可 parse。默认 `wasmUrl` 指向 jsDelivr 上的 `pdfium.wasm`,无需复制到 `public/`。
45
+
46
+ 离线或内网部署时,可传 `wasmUrl: '/pdfium.wasm'`(自行把 `node_modules/@embedpdf-editor/chapter-snippet/dist/pdfium.wasm` 放到静态目录)。
47
+
48
+ `@embedpdf-editor/chapter-snippet/webpack` 为**可选**辅助(仅 monorepo Vue 2.6 解析、或自定义 devServer COOP/COEP),普通用户不必使用。
49
+
50
+ 完整示例见 `examples/chapter-viewer-demo-vue2`。
51
+
36
52
  ## 快速开始
37
53
 
38
54
  不需要把 `pdfium.wasm` 手动放到宿主项目的 `public/`。默认会从 `@embedpdf-editor/chapter-snippet/dist/pdfium.wasm` 加载。只有当你要走 CDN 或自定义静态域名时,才需要传 `wasmUrl`。
@@ -111,10 +127,10 @@ viewer?.addEventListener(CHAPTER_SNIPPET_EVENTS.ready, (event) => {
111
127
  | `worker` | `true` | 是否启用 PDFium worker |
112
128
  | `fallbackToDirectEngine` | `true` | 首章 worker 加载超时后自动降级到 direct engine |
113
129
  | `workerOpenTimeoutMs` | `8000` | 首章加载超时时间 |
114
- | `features` | - | 兼容旧写法;会覆盖 `options.features` 中同名项 |
130
+ | `features` | - | `options.features` **深度合并**;顶层同名字段优先。勿放进 `createChapterViewerEditorOptions()` |
115
131
  | `className` / `viewportClassName` | - | 传给内部阅读器容器 |
116
132
 
117
- 旧版本的 `editorInput` 仍可使用,但新代码应改为 `options`。`options.features` 会参与合并,顶层 `features` 仅作为兼容覆盖保留。
133
+ 旧版本的 `editorInput` 仍可使用,但新代码应改为 `options`,并把 `features` 写在 `options.features` 或顶层 `features`。
118
134
 
119
135
  ### `ChapterViewerOptions`(与 React / Vue3 一致)
120
136
 
@@ -137,7 +153,8 @@ viewer?.addEventListener(CHAPTER_SNIPPET_EVENTS.ready, (event) => {
137
153
  | `markup` | `styles` 四类划线;`annotationMenu` 默认选中后在下方显示「删除」;`squiggly.offsetY` 默认 **4** |
138
154
  | `bookmarks` | `marker` / `hover` 自定义图标 |
139
155
  | `notes` | `marker.renderIcon`、`renderMenuActions`、`highlightColor` |
140
- | `zoom` | `pageWidth`、`min` / `max` / `enabled` |
156
+ | `zoom` | `pageWidth`、`min` / `max` / `enabled`;实际上限不超过 `[data-chapter-scroll-viewport]` 宽度,resize 时自动 clamp |
157
+ | `scrollViewport` | `background`(默认 `#f1f5f9`),`[data-chapter-scroll-viewport]` 背景 |
141
158
  | `selectionToolbar` | `hiddenBuiltinActions`、`extraActions`;扩展动作监听 `selectionExtraAction` 事件 |
142
159
 
143
160
  ```js
@@ -330,6 +330,8 @@ export declare type ChapterViewerConfig = {
330
330
  marker?: NoteMarkerUiConfig;
331
331
  };
332
332
  zoom?: boolean | ChapterViewerZoomConfig;
333
+ /** 滚动视口(`[data-chapter-scroll-viewport]`)样式 */
334
+ scrollViewport?: ChapterViewerScrollViewportConfig;
333
335
  /** 默认随划线/笔记开启;仅在有扩展按钮或需隐藏内置按钮时配置 */
334
336
  selectionToolbar?: boolean | SelectionToolbarConfig;
335
337
  };
@@ -359,6 +361,8 @@ export declare interface ChapterViewerFeaturesConfig {
359
361
  selectionToolbar?: SelectionToolbarConfig;
360
362
  /** 缩放 */
361
363
  zoom?: ChapterViewerZoomConfig;
364
+ /** 滚动视口(`[data-chapter-scroll-viewport]`) */
365
+ scrollViewport?: ChapterViewerScrollViewportConfig;
362
366
  }
363
367
 
364
368
  /** 章节阅读器统一配置(推荐入口) */
@@ -380,6 +384,12 @@ export declare interface ChapterViewerOptions {
380
384
  features?: ChapterViewerConfig;
381
385
  }
382
386
 
387
+ /** `[data-chapter-scroll-viewport]` 滚动容器样式 */
388
+ declare interface ChapterViewerScrollViewportConfig {
389
+ /** 背景色,默认 {@link DEFAULT_CHAPTER_SCROLL_VIEWPORT_BACKGROUND} */
390
+ background?: string;
391
+ }
392
+
383
393
  export declare type ChapterViewerSnippetConfig = {
384
394
  /** PDFium wasm 地址;默认使用 chapter-snippet/dist/pdfium.wasm */
385
395
  wasmUrl?: string;
@@ -393,8 +403,8 @@ export declare type ChapterViewerSnippetConfig = {
393
403
  options?: ChapterViewerOptions;
394
404
  /** @deprecated 请改用 options */
395
405
  editorInput?: CreateChapterViewerEditorOptionsInput;
396
- /** 阅读器功能开关,默认与 DEFAULT_CHAPTER_VIEWER_FEATURES 合并 */
397
- features?: ChapterViewerFeaturesConfig;
406
+ /** 阅读器功能开关;与 `options.features` 深度合并,顶层字段优先 */
407
+ features?: ChapterViewerConfig;
398
408
  className?: string;
399
409
  viewportClassName?: string;
400
410
  };
@@ -403,6 +413,7 @@ declare interface ChapterViewerZoomConfig {
403
413
  /** 是否启用 Ctrl+滚轮 / 双指捏合等交互缩放,默认 true;为 false 时仍可用 pageWidth / initial 设置版面宽度 */
404
414
  enabled?: boolean;
405
415
  min?: number;
416
+ /** 配置上限;实际不会超过视口宽度(fit-width scale) */
406
417
  max?: number;
407
418
  /** 文档 scale 初始值;未设置且配置了 pageWidth 时由 pageWidth 按首页宽度推导 */
408
419
  initial?: number;
@@ -425,7 +436,7 @@ export declare function createChapterViewerBundle(input: ChapterViewerOptions |
425
436
  editorOptions: CreatePdfChapterEditorOptions;
426
437
  };
427
438
 
428
- /** 进阶用法:仅生成 editor 配置(不含 features,需自行传给 PdfChapterViewport) */
439
+ /** 进阶用法:仅生成 editor 配置(不含 features,需通过 snippet `features` 或 `options.features` 传入) */
429
440
  export declare function createChapterViewerEditorOptions(input: ChapterViewerOptions | CreateChapterViewerEditorOptionsInput): Omit<CreatePdfChapterEditorOptions, 'features'>;
430
441
 
431
442
  /** @deprecated 旧版嵌套 `callbacks` 写法,仍兼容 */