@hyebook/vue3-adapter 2.3.4 → 2.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.
@@ -1,5 +1,5 @@
1
1
  import type { EbookDoc } from "../types/ebook";
2
- import type { EBookPlayerHandle, EBookPlayerOptions, ReaderAnnotationCreateEvent, ReaderAnnotationDeleteEvent, ReaderAnnotations, ReaderAnnotationsChangeEvent, ReaderAnnotationUpdateEvent, ReaderBookmark, ReaderHighlight, ReaderNote } from "../types/player";
2
+ import type { EBookPlayerHandle, EBookPlayerOptions, EBookPlayerSetBookmarkOptions, ReaderAnnotationCreateEvent, ReaderAnnotationDeleteEvent, ReaderAnnotations, ReaderAnnotationsChangeEvent, ReaderAnnotationUpdateEvent, ReaderBookmark, ReaderHighlight, ReaderNote } from "../types/player";
3
3
  export declare class EBookPlayer implements EBookPlayerHandle {
4
4
  private container;
5
5
  private options;
@@ -17,6 +17,7 @@ export declare class EBookPlayer implements EBookPlayerHandle {
17
17
  private loaded;
18
18
  private destroyed;
19
19
  private readonly handleSelectionChangeBound;
20
+ private readonly handleSelectionRepositionBound;
20
21
  private readonly handleDocumentPointerDownBound;
21
22
  private readonly preserveSelectionOnToolbarMouseDownBound;
22
23
  private readonly handleHighlightClickBound;
@@ -37,8 +38,10 @@ export declare class EBookPlayer implements EBookPlayerHandle {
37
38
  createNote(note: Omit<ReaderNote, "id" | "createdAt" | "updatedAt" | "bookId">, source?: "api" | "user"): Promise<ReaderNote>;
38
39
  updateNote(noteId: string, patch: Partial<Omit<ReaderNote, "id" | "bookId" | "createdAt">>, source?: "api" | "user"): Promise<ReaderNote | null>;
39
40
  deleteNote(noteId: string, source?: "api" | "user"): Promise<boolean>;
40
- setBookmark(pageId: string, blockId: string, source?: "api" | "user"): Promise<ReaderBookmark | null>;
41
+ setBookmark(options?: EBookPlayerSetBookmarkOptions, source?: "api" | "user"): Promise<ReaderBookmark | null>;
41
42
  deleteBookmark(bookmarkId: string, source?: "api" | "user"): Promise<boolean>;
43
+ goToHighlight(highlightId: string): number | null;
44
+ goToNote(noteId: string): number | null;
42
45
  goToBookmark(bookmarkId: string): number | null;
43
46
  onAnnotationCreate(listener: (event: ReaderAnnotationCreateEvent) => void): () => void;
44
47
  onAnnotationUpdate(listener: (event: ReaderAnnotationUpdateEvent) => void): () => void;
@@ -47,7 +50,6 @@ export declare class EBookPlayer implements EBookPlayerHandle {
47
50
  private renderDocument;
48
51
  private renderPage;
49
52
  private renderTextBlock;
50
- private renderNonTextBlock;
51
53
  private getTextBlockContent;
52
54
  private textBlockToHTML;
53
55
  private paragraphTypeToTag;
@@ -56,17 +58,21 @@ export declare class EBookPlayer implements EBookPlayerHandle {
56
58
  private inlineImageAlignStyleParts;
57
59
  private renderImageBlock;
58
60
  private renderVideoBlock;
61
+ private renderNonTextBlock;
59
62
  private renderTableBlock;
60
63
  private createAnnotationBuckets;
61
64
  private toBlockKey;
62
65
  private resolveAnnotationSegments;
63
66
  private applyHighlightMarks;
64
67
  private applyNoteMarks;
68
+ private resolveTableCell;
69
+ private isRangeInsideSingleTableCell;
65
70
  private applyBookmarkMarker;
66
71
  private wrapRangeWithMark;
67
72
  private createRangeFromOffsets;
68
73
  private normalizeOffsetRange;
69
74
  private handleSelectionChange;
75
+ private updateSelectionToolbarPosition;
70
76
  private resolveTextContainer;
71
77
  private getSelectionOffsets;
72
78
  private collectSelectionSegments;
@@ -84,7 +90,16 @@ export declare class EBookPlayer implements EBookPlayerHandle {
84
90
  private resolveInputLimits;
85
91
  private normalizeLimitValue;
86
92
  private promptTextWithLimit;
87
- private ensureTextBlockExists;
93
+ private normalizeBookmarkContent;
94
+ private resolveCurrentBlockFromScroll;
95
+ private extractBlockDataset;
96
+ private scrollToBlock;
97
+ private getCurrentScrollTop;
98
+ private scrollToStoredPosition;
99
+ private resolveScrollHost;
100
+ private isWindowScrollHost;
101
+ private escapeSelectorValue;
102
+ private ensureBookmarkBlockExists;
88
103
  private findBookmarkByBlock;
89
104
  private setToolbarButtonContent;
90
105
  private ensureLoaded;
@@ -1 +1 @@
1
- {"version":3,"file":"ebook-player.d.ts","sourceRoot":"","sources":["../../../../../core/src/player/ebook-player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ebook-player.d.ts","sourceRoot":"","sources":["../../../../../core/src/player/ebook-player.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ const NOTE_ICON_SVG = `<svg width="24" height="24" viewBox="0 0 24 24" fill="non
6
6
  const BOOKMARK_ICON_SVG = `<svg width="30" height="40" viewBox="0 0 30 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 3C0 1.34315 1.34315 0 3 0H27C28.6569 0 30 1.34315 30 3V38.1989C30 38.9837 29.1374 39.4627 28.4713 39.0477L15 30.6562L1.52873 39.0477C0.862627 39.4627 0 38.9837 0 38.1989L0 3Z" fill="#4FCEBB"/></svg>`;
7
7
  const EBOOK_PLAYER_CSS = `
8
8
  .hyepl-root{position:relative;max-width:100%;margin:0 auto;color:#0f172a;font-size:14px;line-height:1.7}
9
+ .hyepl-root ::selection{background:#7DE2D3}
10
+ .hyepl-root ::-moz-selection{background:#7DE2D3}
9
11
  .hyepl-content{position:relative}
10
12
  .hyepl-page{margin:0 0 16px}
11
13
  .hyepl-page:last-child{margin-bottom:0}
@@ -27,7 +29,7 @@ const EBOOK_PLAYER_CSS = `
27
29
  .hyepl-inline-video{border-radius:8px;background:#000}
28
30
  .hyepl-block-image img,.hyepl-block-video video{display:block;max-width:100%;width:100%;height:auto;border-radius:8px}
29
31
  .hyepl-block-image figcaption,.hyepl-block-video figcaption{margin-top:6px;font-size:12px;color:#64748b}
30
- .hyepl-block-table{overflow:auto}
32
+ .hyepl-block-table{position:relative;overflow:auto;padding-right:18px}
31
33
  .hyepl-block-table table{width:100%;border-collapse:collapse;table-layout:fixed}
32
34
  .hyepl-block-table th,.hyepl-block-table td{border:1px solid #cbd5e1;padding:6px 8px;vertical-align:top;min-width:68px}
33
35
  .hyepl-block-muted{color:#64748b}
@@ -56,6 +58,9 @@ export class EBookPlayer {
56
58
  this.handleSelectionChangeBound = () => {
57
59
  this.handleSelectionChange();
58
60
  };
61
+ this.handleSelectionRepositionBound = () => {
62
+ this.updateSelectionToolbarPosition();
63
+ };
59
64
  this.handleDocumentPointerDownBound = (event) => {
60
65
  this.handleDocumentPointerDown(event);
61
66
  };
@@ -105,6 +110,8 @@ export class EBookPlayer {
105
110
  this.noteBtn.addEventListener("click", this.handleNoteClickBound);
106
111
  document.addEventListener("selectionchange", this.handleSelectionChangeBound);
107
112
  document.addEventListener("pointerdown", this.handleDocumentPointerDownBound);
113
+ window.addEventListener("scroll", this.handleSelectionRepositionBound, true);
114
+ window.addEventListener("resize", this.handleSelectionRepositionBound);
108
115
  }
109
116
  async load(doc) {
110
117
  if (doc) {
@@ -129,6 +136,8 @@ export class EBookPlayer {
129
136
  this.hideSelectionToolbar();
130
137
  document.removeEventListener("selectionchange", this.handleSelectionChangeBound);
131
138
  document.removeEventListener("pointerdown", this.handleDocumentPointerDownBound);
139
+ window.removeEventListener("scroll", this.handleSelectionRepositionBound, true);
140
+ window.removeEventListener("resize", this.handleSelectionRepositionBound);
132
141
  this.highlightBtn.removeEventListener("mousedown", this.preserveSelectionOnToolbarMouseDownBound);
133
142
  this.noteBtn.removeEventListener("mousedown", this.preserveSelectionOnToolbarMouseDownBound);
134
143
  this.highlightBtn.removeEventListener("click", this.handleHighlightClickBound);
@@ -200,15 +209,30 @@ export class EBookPlayer {
200
209
  this.renderDocument();
201
210
  return deleted;
202
211
  }
203
- async setBookmark(pageId, blockId, source = "api") {
212
+ async setBookmark(options = {}, source = "api") {
204
213
  this.ensureLoaded();
205
- this.ensureTextBlockExists(pageId, blockId);
214
+ const target = this.resolveCurrentBlockFromScroll();
215
+ if (!target) {
216
+ throw new Error("Cannot resolve current block for bookmark.");
217
+ }
218
+ this.ensureBookmarkBlockExists(target.pageId, target.blockId);
219
+ const { pageId, blockId } = target;
206
220
  const current = this.findBookmarkByBlock(pageId, blockId);
207
- const content = this.promptTextWithLimit("请输入书签内容", current?.content || "", this.inputLimits.bookmarkMaxLength);
221
+ let content = null;
222
+ if (typeof options.content === "string" && options.content.trim()) {
223
+ content = this.normalizeBookmarkContent(options.content);
224
+ }
225
+ else if (options.prompt === false) {
226
+ throw new Error("Bookmark content is required when prompt is disabled.");
227
+ }
228
+ else {
229
+ content = this.promptTextWithLimit("请输入书签内容", current?.content || "", this.inputLimits.bookmarkMaxLength);
230
+ }
208
231
  if (content === null) {
209
232
  return null;
210
233
  }
211
- const bookmark = await this.engine.setBookmark(pageId, blockId, content, source);
234
+ const scrollTop = this.getCurrentScrollTop();
235
+ const bookmark = await this.engine.setBookmark(pageId, blockId, content, source, scrollTop);
212
236
  this.renderDocument();
213
237
  return bookmark;
214
238
  }
@@ -218,9 +242,52 @@ export class EBookPlayer {
218
242
  this.renderDocument();
219
243
  return deleted;
220
244
  }
245
+ goToHighlight(highlightId) {
246
+ this.ensureLoaded();
247
+ const target = this.engine
248
+ .getHighlights()
249
+ .find((item) => item.id === highlightId);
250
+ if (!target) {
251
+ return null;
252
+ }
253
+ const pageIndex = this.engine.goToHighlight(highlightId);
254
+ if (pageIndex === null) {
255
+ return null;
256
+ }
257
+ this.scrollToBlock(target.pageId, target.blockId);
258
+ return pageIndex;
259
+ }
260
+ goToNote(noteId) {
261
+ this.ensureLoaded();
262
+ const target = this.engine.getNotes().find((item) => item.id === noteId);
263
+ if (!target) {
264
+ return null;
265
+ }
266
+ const pageIndex = this.engine.goToNote(noteId);
267
+ if (pageIndex === null) {
268
+ return null;
269
+ }
270
+ this.scrollToBlock(target.pageId, target.blockId);
271
+ return pageIndex;
272
+ }
221
273
  goToBookmark(bookmarkId) {
222
274
  this.ensureLoaded();
223
- return this.engine.goToBookmark(bookmarkId);
275
+ const target = this.engine
276
+ .getBookmarks()
277
+ .find((item) => item.id === bookmarkId);
278
+ if (!target) {
279
+ return null;
280
+ }
281
+ const pageIndex = this.engine.goToBookmark(bookmarkId);
282
+ if (pageIndex === null) {
283
+ return null;
284
+ }
285
+ if (Number.isFinite(target.scrollTop)) {
286
+ this.scrollToStoredPosition(target.scrollTop);
287
+ return pageIndex;
288
+ }
289
+ this.scrollToBlock(target.pageId, target.blockId);
290
+ return pageIndex;
224
291
  }
225
292
  onAnnotationCreate(listener) {
226
293
  return this.engine.onAnnotationCreate(listener);
@@ -257,7 +324,7 @@ export class EBookPlayer {
257
324
  pageSection.append(this.renderTextBlock(page.id, block, buckets));
258
325
  return;
259
326
  }
260
- pageSection.append(this.renderNonTextBlock(block));
327
+ pageSection.append(this.renderNonTextBlock(page.id, block, buckets));
261
328
  });
262
329
  return pageSection;
263
330
  }
@@ -278,21 +345,6 @@ export class EBookPlayer {
278
345
  }
279
346
  return blockTextNode;
280
347
  }
281
- renderNonTextBlock(block) {
282
- if (block.type === "image") {
283
- return this.renderImageBlock(block);
284
- }
285
- if (block.type === "video") {
286
- return this.renderVideoBlock(block);
287
- }
288
- if (block.type === "table") {
289
- return this.renderTableBlock(block);
290
- }
291
- const node = document.createElement("div");
292
- node.className = "hyepl-block hyepl-block-muted";
293
- node.textContent = "[内容块]";
294
- return node;
295
- }
296
348
  getTextBlockContent(block) {
297
349
  return block.content.paragraphs
298
350
  .map((paragraph) => {
@@ -455,9 +507,26 @@ export class EBookPlayer {
455
507
  figure.append(video);
456
508
  return figure;
457
509
  }
458
- renderTableBlock(block) {
510
+ renderNonTextBlock(pageId, block, buckets) {
511
+ if (block.type === "image") {
512
+ return this.renderImageBlock(block);
513
+ }
514
+ if (block.type === "video") {
515
+ return this.renderVideoBlock(block);
516
+ }
517
+ if (block.type === "table") {
518
+ return this.renderTableBlock(pageId, block, buckets);
519
+ }
520
+ const node = document.createElement("div");
521
+ node.className = "hyepl-block hyepl-block-muted";
522
+ node.textContent = "[内容块]";
523
+ return node;
524
+ }
525
+ renderTableBlock(pageId, block, buckets) {
459
526
  const wrapper = document.createElement("div");
460
527
  wrapper.className = "hyepl-block hyepl-block-table";
528
+ wrapper.dataset.pageId = pageId;
529
+ wrapper.dataset.blockId = block.id;
461
530
  const table = document.createElement("table");
462
531
  if (block.style) {
463
532
  table.setAttribute("style", block.style);
@@ -514,6 +583,15 @@ export class EBookPlayer {
514
583
  }
515
584
  table.append(tbody);
516
585
  wrapper.append(table);
586
+ const blockKey = this.toBlockKey(pageId, block.id);
587
+ const highlights = buckets.highlightsByBlock.get(blockKey) || [];
588
+ const notes = buckets.notesByBlock.get(blockKey) || [];
589
+ const bookmark = buckets.bookmarksByBlock.get(blockKey) || null;
590
+ this.applyHighlightMarks(wrapper, highlights);
591
+ this.applyNoteMarks(wrapper, notes);
592
+ if (bookmark) {
593
+ this.applyBookmarkMarker(wrapper, bookmark);
594
+ }
517
595
  return wrapper;
518
596
  }
519
597
  createAnnotationBuckets(annotations) {
@@ -597,6 +675,10 @@ export class EBookPlayer {
597
675
  if (!range || range.collapsed) {
598
676
  return;
599
677
  }
678
+ if (container.classList.contains("hyepl-block-table") &&
679
+ !this.isRangeInsideSingleTableCell(range)) {
680
+ return;
681
+ }
600
682
  const mark = document.createElement("mark");
601
683
  mark.className = "hyepl-highlight";
602
684
  if (item.color) {
@@ -617,12 +699,33 @@ export class EBookPlayer {
617
699
  if (!range || range.collapsed) {
618
700
  return;
619
701
  }
702
+ if (container.classList.contains("hyepl-block-table") &&
703
+ !this.isRangeInsideSingleTableCell(range)) {
704
+ return;
705
+ }
620
706
  const mark = document.createElement("mark");
621
707
  mark.className = "hyepl-note";
622
708
  mark.dataset.noteId = item.id;
623
709
  this.wrapRangeWithMark(range, mark);
624
710
  });
625
711
  }
712
+ resolveTableCell(node) {
713
+ if (!node) {
714
+ return null;
715
+ }
716
+ const baseElement = node.nodeType === Node.ELEMENT_NODE
717
+ ? node
718
+ : node.parentElement;
719
+ if (!baseElement) {
720
+ return null;
721
+ }
722
+ return baseElement.closest("td,th");
723
+ }
724
+ isRangeInsideSingleTableCell(range) {
725
+ const startCell = this.resolveTableCell(range.startContainer);
726
+ const endCell = this.resolveTableCell(range.endContainer);
727
+ return Boolean(startCell && endCell && startCell === endCell);
728
+ }
626
729
  applyBookmarkMarker(container, bookmark) {
627
730
  const marker = document.createElement("span");
628
731
  marker.className = "hyepl-bookmark-flag";
@@ -731,9 +834,28 @@ export class EBookPlayer {
731
834
  text: selection.toString().trim(),
732
835
  segments,
733
836
  };
837
+ this.updateSelectionToolbarPosition(range);
838
+ if (this.selectionDraft) {
839
+ this.selectionToolbar.classList.add("show");
840
+ }
841
+ }
842
+ updateSelectionToolbarPosition(range) {
843
+ if (!this.selectionDraft) {
844
+ return;
845
+ }
846
+ const selection = window.getSelection();
847
+ if (!selection || selection.rangeCount === 0 || selection.isCollapsed) {
848
+ this.hideSelectionToolbar();
849
+ return;
850
+ }
851
+ const activeRange = range ?? selection.getRangeAt(0);
852
+ const rect = activeRange.getBoundingClientRect();
853
+ if (!rect.width && !rect.height) {
854
+ this.hideSelectionToolbar();
855
+ return;
856
+ }
734
857
  this.selectionToolbar.style.left = `${Math.round(rect.left + rect.width / 2)}px`;
735
858
  this.selectionToolbar.style.top = `${Math.round(rect.top - 20)}px`;
736
- this.selectionToolbar.classList.add("show");
737
859
  }
738
860
  resolveTextContainer(node) {
739
861
  if (!node) {
@@ -745,7 +867,7 @@ export class EBookPlayer {
745
867
  if (!baseElement) {
746
868
  return null;
747
869
  }
748
- const textContainer = baseElement.closest(".hyepl-block-text");
870
+ const textContainer = baseElement.closest(".hyepl-block-text, .hyepl-block-table");
749
871
  if (!textContainer || !this.content.contains(textContainer)) {
750
872
  return null;
751
873
  }
@@ -772,7 +894,13 @@ export class EBookPlayer {
772
894
  if (!startContainer || !endContainer) {
773
895
  return null;
774
896
  }
775
- const textContainers = Array.from(this.content.querySelectorAll(".hyepl-block-text"));
897
+ if (startContainer.classList.contains("hyepl-block-table") ||
898
+ endContainer.classList.contains("hyepl-block-table")) {
899
+ if (!this.isRangeInsideSingleTableCell(range)) {
900
+ return null;
901
+ }
902
+ }
903
+ const textContainers = Array.from(this.content.querySelectorAll(".hyepl-block-text, .hyepl-block-table"));
776
904
  const startIndex = textContainers.indexOf(startContainer);
777
905
  const endIndex = textContainers.indexOf(endContainer);
778
906
  if (startIndex < 0 || endIndex < 0) {
@@ -1042,7 +1170,107 @@ export class EBookPlayer {
1042
1170
  return trimmed;
1043
1171
  }
1044
1172
  }
1045
- ensureTextBlockExists(pageId, blockId) {
1173
+ normalizeBookmarkContent(raw) {
1174
+ const trimmed = raw.trim();
1175
+ if (!trimmed) {
1176
+ throw new Error("Bookmark content cannot be empty.");
1177
+ }
1178
+ if (trimmed.length > this.inputLimits.bookmarkMaxLength) {
1179
+ throw new Error(`Bookmark content exceeds max length ${this.inputLimits.bookmarkMaxLength}.`);
1180
+ }
1181
+ return trimmed;
1182
+ }
1183
+ resolveCurrentBlockFromScroll() {
1184
+ const rootRect = this.root.getBoundingClientRect();
1185
+ const x = Math.round(Math.min(window.innerWidth - 1, Math.max(0, rootRect.left + rootRect.width / 2)));
1186
+ const y = Math.round(Math.min(window.innerHeight - 1, Math.max(0, rootRect.top + 24)));
1187
+ const hit = document.elementFromPoint(x, y);
1188
+ const hitBlock = hit instanceof Element
1189
+ ? hit.closest?.(".hyepl-block-text[data-page-id][data-block-id], .hyepl-block-table[data-page-id][data-block-id]")
1190
+ : null;
1191
+ const fromHit = this.extractBlockDataset(hitBlock);
1192
+ if (fromHit) {
1193
+ return fromHit;
1194
+ }
1195
+ const blocks = Array.from(this.content.querySelectorAll(".hyepl-block-text[data-page-id][data-block-id], .hyepl-block-table[data-page-id][data-block-id]"));
1196
+ if (!blocks.length) {
1197
+ return null;
1198
+ }
1199
+ let best = null;
1200
+ for (const el of blocks) {
1201
+ const rect = el.getBoundingClientRect();
1202
+ if (rect.bottom <= 0 || rect.top >= window.innerHeight) {
1203
+ continue;
1204
+ }
1205
+ const score = Math.abs(rect.top);
1206
+ if (!best || score < best.score) {
1207
+ best = { el, score };
1208
+ }
1209
+ }
1210
+ return this.extractBlockDataset(best?.el ?? blocks[0] ?? null);
1211
+ }
1212
+ extractBlockDataset(el) {
1213
+ const pageId = el?.dataset?.pageId;
1214
+ const blockId = el?.dataset?.blockId;
1215
+ if (typeof pageId !== "string" || !pageId) {
1216
+ return null;
1217
+ }
1218
+ if (typeof blockId !== "string" || !blockId) {
1219
+ return null;
1220
+ }
1221
+ return { pageId, blockId };
1222
+ }
1223
+ scrollToBlock(pageId, blockId) {
1224
+ const page = this.escapeSelectorValue(pageId);
1225
+ const block = this.escapeSelectorValue(blockId);
1226
+ const node = this.content.querySelector(`[data-page-id="${page}"][data-block-id="${block}"]`);
1227
+ if (!node) {
1228
+ return false;
1229
+ }
1230
+ node.scrollIntoView({ block: "start" });
1231
+ return true;
1232
+ }
1233
+ getCurrentScrollTop() {
1234
+ const scrollHost = this.resolveScrollHost();
1235
+ if (this.isWindowScrollHost(scrollHost)) {
1236
+ return Math.max(0, Math.floor(window.scrollY || 0));
1237
+ }
1238
+ return Math.max(0, Math.floor(scrollHost.scrollTop || 0));
1239
+ }
1240
+ scrollToStoredPosition(scrollTop) {
1241
+ const safeTop = Math.max(0, Math.floor(scrollTop || 0));
1242
+ const scrollHost = this.resolveScrollHost();
1243
+ if (this.isWindowScrollHost(scrollHost)) {
1244
+ window.scrollTo({ top: safeTop, behavior: "auto" });
1245
+ return;
1246
+ }
1247
+ scrollHost.scrollTo({ top: safeTop, behavior: "auto" });
1248
+ }
1249
+ resolveScrollHost() {
1250
+ let current = this.container;
1251
+ while (current && current !== document.body) {
1252
+ const style = window.getComputedStyle(current);
1253
+ const overflowY = style.overflowY;
1254
+ const scrollableByStyle = overflowY === "auto" ||
1255
+ overflowY === "scroll" ||
1256
+ overflowY === "overlay";
1257
+ if (scrollableByStyle && current.scrollHeight > current.clientHeight) {
1258
+ return current;
1259
+ }
1260
+ current = current.parentElement;
1261
+ }
1262
+ return window;
1263
+ }
1264
+ isWindowScrollHost(host) {
1265
+ return host === window;
1266
+ }
1267
+ escapeSelectorValue(value) {
1268
+ if (typeof CSS !== "undefined" && typeof CSS.escape === "function") {
1269
+ return CSS.escape(value);
1270
+ }
1271
+ return value.replace(/["\\]/g, "\\$&");
1272
+ }
1273
+ ensureBookmarkBlockExists(pageId, blockId) {
1046
1274
  const doc = this.engine.getDocument();
1047
1275
  const page = doc.pages.find((item) => item.id === pageId);
1048
1276
  if (!page) {
@@ -1052,8 +1280,8 @@ export class EBookPlayer {
1052
1280
  if (!block) {
1053
1281
  throw new Error(`Block not found: ${blockId}`);
1054
1282
  }
1055
- if (block.type !== "text") {
1056
- throw new Error("Bookmark is only supported on text blocks.");
1283
+ if (block.type !== "text" && block.type !== "table") {
1284
+ throw new Error("Bookmark is only supported on text/table blocks.");
1057
1285
  }
1058
1286
  }
1059
1287
  findBookmarkByBlock(pageId, blockId) {
@@ -48,7 +48,7 @@ export declare class PlayerEngine {
48
48
  createNote(note: Omit<ReaderNote, "id" | "createdAt" | "updatedAt" | "bookId">, source?: "api" | "user"): Promise<ReaderNote>;
49
49
  updateNote(noteId: string, patch: Partial<Omit<ReaderNote, "id" | "bookId" | "createdAt">>, source?: "api" | "user"): Promise<ReaderNote | null>;
50
50
  deleteNote(noteId: string, source?: "api" | "user"): Promise<boolean>;
51
- setBookmark(pageId: string, blockId: string, content: string, source?: "api" | "user"): Promise<ReaderBookmark>;
51
+ setBookmark(pageId: string, blockId: string, content: string, source?: "api" | "user", scrollTop?: number): Promise<ReaderBookmark>;
52
52
  deleteBookmark(bookmarkId: string, source?: "api" | "user"): Promise<boolean>;
53
53
  onAnnotationCreate(listener: AnnotationCreateListener): () => void;
54
54
  onAnnotationUpdate(listener: AnnotationUpdateListener): () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../../core/src/player/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../../core/src/player/engine.ts"],"names":[],"mappings":"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"}
@@ -264,19 +264,26 @@ export class PlayerEngine {
264
264
  this.emitAnnotationDelete("note", removedNote, source);
265
265
  return true;
266
266
  }
267
- async setBookmark(pageId, blockId, content, source = "api") {
267
+ async setBookmark(pageId, blockId, content, source = "api", scrollTop) {
268
268
  const doc = this.getDocument();
269
269
  const now = Date.now();
270
270
  const normalizedContent = content.trim();
271
+ const normalizedScrollTop = Number.isFinite(scrollTop)
272
+ ? Math.max(0, Math.floor(scrollTop))
273
+ : undefined;
271
274
  const index = this.state.bookmarks.findIndex((item) => item.pageId === pageId && item.blockId === blockId);
272
275
  if (index >= 0) {
273
276
  const current = this.state.bookmarks[index];
274
277
  if (!current) {
275
278
  throw new Error("Bookmark update failed.");
276
279
  }
280
+ const nextScrollTop = normalizedScrollTop !== undefined
281
+ ? normalizedScrollTop
282
+ : current.scrollTop;
277
283
  const updatedBookmark = {
278
284
  ...current,
279
285
  content: normalizedContent,
286
+ ...(nextScrollTop !== undefined ? { scrollTop: nextScrollTop } : {}),
280
287
  updatedAt: now,
281
288
  };
282
289
  this.state.bookmarks[index] = updatedBookmark;
@@ -290,6 +297,9 @@ export class PlayerEngine {
290
297
  pageId,
291
298
  blockId,
292
299
  content: normalizedContent,
300
+ ...(normalizedScrollTop !== undefined
301
+ ? { scrollTop: normalizedScrollTop }
302
+ : {}),
293
303
  createdAt: now,
294
304
  updatedAt: now,
295
305
  };
@@ -469,7 +479,9 @@ export class PlayerEngine {
469
479
  bookId: item.bookId || bookId || "",
470
480
  pageId: item.pageId || firstSegment?.pageId || "",
471
481
  blockId: item.blockId || firstSegment?.blockId || "preview-flow-text",
472
- ...(resolvedRange ? { range: this.normalizeRange(resolvedRange) } : {}),
482
+ ...(resolvedRange
483
+ ? { range: this.normalizeRange(resolvedRange) }
484
+ : {}),
473
485
  ...(segments ? { segments } : {}),
474
486
  content: item.content || "",
475
487
  createdAt,
@@ -480,6 +492,9 @@ export class PlayerEngine {
480
492
  const fallbackId = `bookmark-${Date.now()}-${index}`;
481
493
  const createdAt = toTimestamp(item.createdAt, now);
482
494
  const updatedAt = toTimestamp(item.updatedAt, createdAt);
495
+ const normalizedScrollTop = Number.isFinite(item.scrollTop)
496
+ ? Math.max(0, Math.floor(item.scrollTop))
497
+ : undefined;
483
498
  return {
484
499
  ...clone(item),
485
500
  id: item.id || fallbackId,
@@ -487,6 +502,9 @@ export class PlayerEngine {
487
502
  pageId: item.pageId || "",
488
503
  blockId: item.blockId || "",
489
504
  content: item.content || "",
505
+ ...(normalizedScrollTop !== undefined
506
+ ? { scrollTop: normalizedScrollTop }
507
+ : {}),
490
508
  createdAt,
491
509
  updatedAt,
492
510
  };
@@ -46,6 +46,7 @@ export interface ReaderBookmark {
46
46
  pageId: string;
47
47
  blockId: string;
48
48
  content: string;
49
+ scrollTop?: number;
49
50
  createdAt: number;
50
51
  updatedAt: number;
51
52
  }
@@ -101,6 +102,10 @@ export interface EBookPlayerInputLimitsOptions {
101
102
  noteMaxLength?: number;
102
103
  bookmarkMaxLength?: number;
103
104
  }
105
+ export interface EBookPlayerSetBookmarkOptions {
106
+ content?: string;
107
+ prompt?: boolean;
108
+ }
104
109
  export interface PlayerDataProvider {
105
110
  getData: () => Promise<EbookDoc>;
106
111
  loadProgress?: (bookId: string) => Promise<ReaderProgress | null>;
@@ -137,8 +142,10 @@ export interface EBookPlayerHandle {
137
142
  createNote: (note: Omit<ReaderNote, "id" | "createdAt" | "updatedAt" | "bookId">, source?: "api" | "user") => Promise<ReaderNote>;
138
143
  updateNote: (noteId: string, patch: Partial<Omit<ReaderNote, "id" | "bookId" | "createdAt">>, source?: "api" | "user") => Promise<ReaderNote | null>;
139
144
  deleteNote: (noteId: string, source?: "api" | "user") => Promise<boolean>;
140
- setBookmark: (pageId: string, blockId: string, source?: "api" | "user") => Promise<ReaderBookmark | null>;
145
+ setBookmark: (options?: EBookPlayerSetBookmarkOptions, source?: "api" | "user") => Promise<ReaderBookmark | null>;
141
146
  deleteBookmark: (bookmarkId: string, source?: "api" | "user") => Promise<boolean>;
147
+ goToHighlight: (highlightId: string) => number | null;
148
+ goToNote: (noteId: string) => number | null;
142
149
  goToBookmark: (bookmarkId: string) => number | null;
143
150
  onAnnotationCreate: (listener: (event: ReaderAnnotationCreateEvent) => void) => () => void;
144
151
  onAnnotationUpdate: (listener: (event: ReaderAnnotationUpdateEvent) => void) => () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"player.d.ts","sourceRoot":"","sources":["../../../../../core/src/types/player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"player.d.ts","sourceRoot":"","sources":["../../../../../core/src/types/player.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyebook/vue3-adapter",
3
- "version": "2.3.4",
3
+ "version": "2.3.6",
4
4
  "description": "Vue3 adapter for hy-ebook core",
5
5
  "repository": {
6
6
  "type": "git",
@@ -17,7 +17,7 @@
17
17
  "dist"
18
18
  ],
19
19
  "dependencies": {
20
- "@hyebook/core": "^2.3.4"
20
+ "@hyebook/core": "^2.3.5"
21
21
  },
22
22
  "scripts": {
23
23
  "build": "tsc -p tsconfig.json",