@hyebook/vue3-adapter 2.3.3 → 2.3.5
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/core/src/player/ebook-player.d.ts +20 -4
- package/dist/core/src/player/ebook-player.d.ts.map +1 -1
- package/dist/core/src/player/ebook-player.js +356 -60
- package/dist/core/src/player/engine.d.ts +2 -1
- package/dist/core/src/player/engine.d.ts.map +1 -1
- package/dist/core/src/player/engine.js +57 -9
- package/dist/core/src/types/player.d.ts +17 -1
- package/dist/core/src/types/player.d.ts.map +1 -1
- package/dist/core/src/workbench/editor-workbench.d.ts.map +1 -1
- package/dist/core/src/workbench/editor-workbench.js +0 -14
- package/package.json +2 -2
|
@@ -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(
|
|
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,16 +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;
|
|
65
|
+
private resolveAnnotationSegments;
|
|
62
66
|
private applyHighlightMarks;
|
|
63
67
|
private applyNoteMarks;
|
|
68
|
+
private resolveTableCell;
|
|
69
|
+
private isRangeInsideSingleTableCell;
|
|
64
70
|
private applyBookmarkMarker;
|
|
65
71
|
private wrapRangeWithMark;
|
|
66
72
|
private createRangeFromOffsets;
|
|
67
73
|
private normalizeOffsetRange;
|
|
68
74
|
private handleSelectionChange;
|
|
75
|
+
private updateSelectionToolbarPosition;
|
|
69
76
|
private resolveTextContainer;
|
|
70
77
|
private getSelectionOffsets;
|
|
71
78
|
private collectSelectionSegments;
|
|
@@ -83,7 +90,16 @@ export declare class EBookPlayer implements EBookPlayerHandle {
|
|
|
83
90
|
private resolveInputLimits;
|
|
84
91
|
private normalizeLimitValue;
|
|
85
92
|
private promptTextWithLimit;
|
|
86
|
-
private
|
|
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;
|
|
87
103
|
private findBookmarkByBlock;
|
|
88
104
|
private setToolbarButtonContent;
|
|
89
105
|
private ensureLoaded;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ebook-player.d.ts","sourceRoot":"","sources":["../../../../../core/src/player/ebook-player.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,QAAQ,EAST,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,iBAAiB,EAEjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ebook-player.d.ts","sourceRoot":"","sources":["../../../../../core/src/player/ebook-player.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,QAAQ,EAST,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,iBAAiB,EAEjB,kBAAkB,EAClB,6BAA6B,EAI7B,2BAA2B,EAC3B,2BAA2B,EAC3B,iBAAiB,EACjB,4BAA4B,EAC5B,2BAA2B,EAC3B,cAAc,EACd,eAAe,EACf,UAAU,EAGX,MAAM,iBAAiB,CAAC;AAqGzB,qBAAa,WAAY,YAAW,iBAAiB;IACnD,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,gBAAgB,CAAiB;IACzC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,gBAAgB,CAAkC;IAC1D,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAEzC;IAEF,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAE7C;IAEF,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAE7C;IAEF,OAAO,CAAC,QAAQ,CAAC,wCAAwC,CAIvD;IAEF,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAExC;IAEF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAEnC;gBAEU,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB;IA6FzD,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoB7C,OAAO,IAAI,IAAI;IAsCf,WAAW,IAAI,QAAQ;IAIvB,cAAc,IAAI,iBAAiB;IAInC,aAAa,IAAI,eAAe,EAAE;IAIlC,QAAQ,IAAI,UAAU,EAAE;IAIxB,YAAY,IAAI,cAAc,EAAE;IAI1B,cAAc,CAClB,WAAW,EAAE,iBAAiB,EAC9B,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAOvB,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAO/C,eAAe,CACnB,SAAS,EAAE,IAAI,CACb,eAAe,EACf,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAC5C,EACD,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,eAAe,CAAC;IAOrB,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,QAAQ,GAAG,WAAW,CAAC,CAAC,EACpE,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAW5B,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,OAAO,CAAC;IAOb,UAAU,CACd,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC,EACnE,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,UAAU,CAAC;IAOhB,UAAU,CACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,QAAQ,GAAG,WAAW,CAAC,CAAC,EAC/D,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAOvB,UAAU,CACd,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,OAAO,CAAC;IAOb,WAAW,CACf,OAAO,GAAE,6BAAkC,EAC3C,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA2C3B,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,OAAO,CAAC;IAOnB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAmBjD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAiBvC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAwB/C,kBAAkB,CAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,GACrD,MAAM,IAAI;IAIb,kBAAkB,CAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,GACrD,MAAM,IAAI;IAIb,kBAAkB,CAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,GACrD,MAAM,IAAI;IAIb,mBAAmB,CACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,GACtD,MAAM,IAAI;IAIb,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,UAAU;IAgBlB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,eAAe;IAqCvB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,SAAS;IAuDjB,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,gBAAgB;IAmFxB,OAAO,CAAC,uBAAuB;IAqD/B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,yBAAyB;IAgDjC,OAAO,CAAC,mBAAmB;IAoC3B,OAAO,CAAC,cAAc;IAkCtB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,4BAA4B;IAMpC,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,sBAAsB;IAkE9B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,qBAAqB;IA4C7B,OAAO,CAAC,8BAA8B;IAwBtC,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,mBAAmB;IAuB3B,OAAO,CAAC,wBAAwB;IA6GhC,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,4BAA4B;IAkBpC,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,yBAAyB;IAgBjC,OAAO,CAAC,mCAAmC;YAK7B,oBAAoB;YAmDpB,eAAe;IA+D7B,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,8BAA8B;IA8BtC,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,mBAAmB;IA8B3B,OAAO,CAAC,wBAAwB;IAahC,OAAO,CAAC,6BAA6B;IAmDrC,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,uBAAuB;IAmB/B,OAAO,CAAC,YAAY;CAKrB"}
|
|
@@ -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(
|
|
212
|
+
async setBookmark(options = {}, source = "api") {
|
|
204
213
|
this.ensureLoaded();
|
|
205
|
-
this.
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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) {
|
|
@@ -521,16 +599,27 @@ export class EBookPlayer {
|
|
|
521
599
|
const notesByBlock = new Map();
|
|
522
600
|
const bookmarksByBlock = new Map();
|
|
523
601
|
annotations.highlights.forEach((item) => {
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
602
|
+
this.resolveAnnotationSegments(item.pageId, item.blockId, item.range, item.segments).forEach((segment) => {
|
|
603
|
+
const key = this.toBlockKey(segment.pageId, segment.blockId);
|
|
604
|
+
const current = highlightsByBlock.get(key) || [];
|
|
605
|
+
current.push({
|
|
606
|
+
id: item.id,
|
|
607
|
+
range: segment.range,
|
|
608
|
+
...(item.color ? { color: item.color } : {}),
|
|
609
|
+
});
|
|
610
|
+
highlightsByBlock.set(key, current);
|
|
611
|
+
});
|
|
528
612
|
});
|
|
529
613
|
annotations.notes.forEach((item) => {
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
614
|
+
this.resolveAnnotationSegments(item.pageId, item.blockId, item.range, item.segments).forEach((segment) => {
|
|
615
|
+
const key = this.toBlockKey(segment.pageId, segment.blockId);
|
|
616
|
+
const current = notesByBlock.get(key) || [];
|
|
617
|
+
current.push({
|
|
618
|
+
id: item.id,
|
|
619
|
+
range: segment.range,
|
|
620
|
+
});
|
|
621
|
+
notesByBlock.set(key, current);
|
|
622
|
+
});
|
|
534
623
|
});
|
|
535
624
|
const bookmarks = Array.isArray(annotations.bookmarks)
|
|
536
625
|
? annotations.bookmarks
|
|
@@ -544,6 +633,39 @@ export class EBookPlayer {
|
|
|
544
633
|
toBlockKey(pageId, blockId) {
|
|
545
634
|
return `${pageId}::${blockId}`;
|
|
546
635
|
}
|
|
636
|
+
resolveAnnotationSegments(pageId, blockId, range, segments) {
|
|
637
|
+
const resolvedSegments = Array.isArray(segments)
|
|
638
|
+
? segments
|
|
639
|
+
.map((segment) => {
|
|
640
|
+
const segmentPageId = typeof segment?.pageId === "string" ? segment.pageId : "";
|
|
641
|
+
const segmentBlockId = typeof segment?.blockId === "string" ? segment.blockId : "";
|
|
642
|
+
const normalizedRange = this.normalizeOffsetRange(segment?.range?.start || 0, segment?.range?.end || 0);
|
|
643
|
+
if (!segmentPageId || !segmentBlockId || !normalizedRange) {
|
|
644
|
+
return null;
|
|
645
|
+
}
|
|
646
|
+
return {
|
|
647
|
+
pageId: segmentPageId,
|
|
648
|
+
blockId: segmentBlockId,
|
|
649
|
+
range: normalizedRange,
|
|
650
|
+
...(segment?.selectedText
|
|
651
|
+
? { selectedText: segment.selectedText }
|
|
652
|
+
: {}),
|
|
653
|
+
};
|
|
654
|
+
})
|
|
655
|
+
.filter((segment) => segment !== null)
|
|
656
|
+
: [];
|
|
657
|
+
if (resolvedSegments.length) {
|
|
658
|
+
return resolvedSegments;
|
|
659
|
+
}
|
|
660
|
+
if (!pageId || !blockId || !range) {
|
|
661
|
+
return [];
|
|
662
|
+
}
|
|
663
|
+
const normalizedRange = this.normalizeOffsetRange(range.start, range.end);
|
|
664
|
+
if (!normalizedRange) {
|
|
665
|
+
return [];
|
|
666
|
+
}
|
|
667
|
+
return [{ pageId, blockId, range: normalizedRange }];
|
|
668
|
+
}
|
|
547
669
|
applyHighlightMarks(container, highlights) {
|
|
548
670
|
[...highlights]
|
|
549
671
|
.filter((item) => Number.isFinite(item.range.start) && Number.isFinite(item.range.end))
|
|
@@ -553,6 +675,10 @@ export class EBookPlayer {
|
|
|
553
675
|
if (!range || range.collapsed) {
|
|
554
676
|
return;
|
|
555
677
|
}
|
|
678
|
+
if (container.classList.contains("hyepl-block-table") &&
|
|
679
|
+
!this.isRangeInsideSingleTableCell(range)) {
|
|
680
|
+
return;
|
|
681
|
+
}
|
|
556
682
|
const mark = document.createElement("mark");
|
|
557
683
|
mark.className = "hyepl-highlight";
|
|
558
684
|
if (item.color) {
|
|
@@ -563,26 +689,43 @@ export class EBookPlayer {
|
|
|
563
689
|
}
|
|
564
690
|
applyNoteMarks(container, notes) {
|
|
565
691
|
[...notes]
|
|
566
|
-
.filter((item) => !!item.range)
|
|
567
692
|
.sort((a, b) => {
|
|
568
|
-
const startA = a.range
|
|
569
|
-
const startB = b.range
|
|
693
|
+
const startA = a.range.start || 0;
|
|
694
|
+
const startB = b.range.start || 0;
|
|
570
695
|
return startB - startA;
|
|
571
696
|
})
|
|
572
697
|
.forEach((item) => {
|
|
573
|
-
if (!item.range) {
|
|
574
|
-
return;
|
|
575
|
-
}
|
|
576
698
|
const range = this.createRangeFromOffsets(container, item.range.start, item.range.end);
|
|
577
699
|
if (!range || range.collapsed) {
|
|
578
700
|
return;
|
|
579
701
|
}
|
|
702
|
+
if (container.classList.contains("hyepl-block-table") &&
|
|
703
|
+
!this.isRangeInsideSingleTableCell(range)) {
|
|
704
|
+
return;
|
|
705
|
+
}
|
|
580
706
|
const mark = document.createElement("mark");
|
|
581
707
|
mark.className = "hyepl-note";
|
|
582
708
|
mark.dataset.noteId = item.id;
|
|
583
709
|
this.wrapRangeWithMark(range, mark);
|
|
584
710
|
});
|
|
585
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
|
+
}
|
|
586
729
|
applyBookmarkMarker(container, bookmark) {
|
|
587
730
|
const marker = document.createElement("span");
|
|
588
731
|
marker.className = "hyepl-bookmark-flag";
|
|
@@ -691,9 +834,28 @@ export class EBookPlayer {
|
|
|
691
834
|
text: selection.toString().trim(),
|
|
692
835
|
segments,
|
|
693
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
|
+
}
|
|
694
857
|
this.selectionToolbar.style.left = `${Math.round(rect.left + rect.width / 2)}px`;
|
|
695
858
|
this.selectionToolbar.style.top = `${Math.round(rect.top - 20)}px`;
|
|
696
|
-
this.selectionToolbar.classList.add("show");
|
|
697
859
|
}
|
|
698
860
|
resolveTextContainer(node) {
|
|
699
861
|
if (!node) {
|
|
@@ -705,7 +867,7 @@ export class EBookPlayer {
|
|
|
705
867
|
if (!baseElement) {
|
|
706
868
|
return null;
|
|
707
869
|
}
|
|
708
|
-
const textContainer = baseElement.closest(".hyepl-block-text");
|
|
870
|
+
const textContainer = baseElement.closest(".hyepl-block-text, .hyepl-block-table");
|
|
709
871
|
if (!textContainer || !this.content.contains(textContainer)) {
|
|
710
872
|
return null;
|
|
711
873
|
}
|
|
@@ -732,7 +894,13 @@ export class EBookPlayer {
|
|
|
732
894
|
if (!startContainer || !endContainer) {
|
|
733
895
|
return null;
|
|
734
896
|
}
|
|
735
|
-
|
|
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"));
|
|
736
904
|
const startIndex = textContainers.indexOf(startContainer);
|
|
737
905
|
const endIndex = textContainers.indexOf(endContainer);
|
|
738
906
|
if (startIndex < 0 || endIndex < 0) {
|
|
@@ -861,18 +1029,32 @@ export class EBookPlayer {
|
|
|
861
1029
|
text: this.selectionDraft.text,
|
|
862
1030
|
},
|
|
863
1031
|
];
|
|
864
|
-
|
|
865
|
-
|
|
1032
|
+
const firstSegment = segments[0];
|
|
1033
|
+
if (!firstSegment) {
|
|
1034
|
+
return;
|
|
1035
|
+
}
|
|
1036
|
+
const mergedSelectedText = this.selectionDraft.text ||
|
|
1037
|
+
segments
|
|
1038
|
+
.map((segment) => segment.text)
|
|
1039
|
+
.filter(Boolean)
|
|
1040
|
+
.join("\n")
|
|
1041
|
+
.trim();
|
|
1042
|
+
const payload = {
|
|
1043
|
+
pageId: firstSegment.pageId,
|
|
1044
|
+
blockId: firstSegment.blockId,
|
|
1045
|
+
range: firstSegment.range,
|
|
1046
|
+
...(mergedSelectedText ? { selectedText: mergedSelectedText } : {}),
|
|
1047
|
+
...(this.selectionOptions.highlightColor
|
|
1048
|
+
? { color: this.selectionOptions.highlightColor }
|
|
1049
|
+
: {}),
|
|
1050
|
+
segments: segments.map((segment) => ({
|
|
866
1051
|
pageId: segment.pageId,
|
|
867
1052
|
blockId: segment.blockId,
|
|
868
1053
|
range: segment.range,
|
|
869
1054
|
...(segment.text ? { selectedText: segment.text } : {}),
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
};
|
|
874
|
-
await this.createHighlight(payload, "user");
|
|
875
|
-
}
|
|
1055
|
+
})),
|
|
1056
|
+
};
|
|
1057
|
+
await this.createHighlight(payload, "user");
|
|
876
1058
|
this.clearSelection();
|
|
877
1059
|
this.hideSelectionToolbar();
|
|
878
1060
|
}
|
|
@@ -895,19 +1077,33 @@ export class EBookPlayer {
|
|
|
895
1077
|
text: this.selectionDraft.text,
|
|
896
1078
|
},
|
|
897
1079
|
];
|
|
898
|
-
|
|
899
|
-
|
|
1080
|
+
const firstSegment = segments[0];
|
|
1081
|
+
if (!firstSegment) {
|
|
1082
|
+
return;
|
|
1083
|
+
}
|
|
1084
|
+
const mergedSelectedText = this.selectionDraft.text ||
|
|
1085
|
+
segments
|
|
1086
|
+
.map((segment) => segment.text)
|
|
1087
|
+
.filter(Boolean)
|
|
1088
|
+
.join("\n")
|
|
1089
|
+
.trim();
|
|
1090
|
+
const payload = {
|
|
1091
|
+
pageId: firstSegment.pageId,
|
|
1092
|
+
blockId: firstSegment.blockId,
|
|
1093
|
+
range: firstSegment.range,
|
|
1094
|
+
content,
|
|
1095
|
+
...(mergedSelectedText ? { selectedText: mergedSelectedText } : {}),
|
|
1096
|
+
...(this.selectionOptions.noteColor
|
|
1097
|
+
? { color: this.selectionOptions.noteColor }
|
|
1098
|
+
: {}),
|
|
1099
|
+
segments: segments.map((segment) => ({
|
|
900
1100
|
pageId: segment.pageId,
|
|
901
1101
|
blockId: segment.blockId,
|
|
902
1102
|
range: segment.range,
|
|
903
|
-
content,
|
|
904
1103
|
...(segment.text ? { selectedText: segment.text } : {}),
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
};
|
|
909
|
-
await this.createNote(payload, "user");
|
|
910
|
-
}
|
|
1104
|
+
})),
|
|
1105
|
+
};
|
|
1106
|
+
await this.createNote(payload, "user");
|
|
911
1107
|
this.clearSelection();
|
|
912
1108
|
this.hideSelectionToolbar();
|
|
913
1109
|
}
|
|
@@ -974,7 +1170,107 @@ export class EBookPlayer {
|
|
|
974
1170
|
return trimmed;
|
|
975
1171
|
}
|
|
976
1172
|
}
|
|
977
|
-
|
|
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) {
|
|
978
1274
|
const doc = this.engine.getDocument();
|
|
979
1275
|
const page = doc.pages.find((item) => item.id === pageId);
|
|
980
1276
|
if (!page) {
|
|
@@ -984,8 +1280,8 @@ export class EBookPlayer {
|
|
|
984
1280
|
if (!block) {
|
|
985
1281
|
throw new Error(`Block not found: ${blockId}`);
|
|
986
1282
|
}
|
|
987
|
-
if (block.type !== "text") {
|
|
988
|
-
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.");
|
|
989
1285
|
}
|
|
990
1286
|
}
|
|
991
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;
|
|
@@ -58,6 +58,7 @@ export declare class PlayerEngine {
|
|
|
58
58
|
private loadAnnotationsState;
|
|
59
59
|
private findPageIndexByPageId;
|
|
60
60
|
private normalizeRange;
|
|
61
|
+
private normalizeSegments;
|
|
61
62
|
private normalizeAnnotations;
|
|
62
63
|
private mapPreviewAnnotationsToReader;
|
|
63
64
|
private persistAnnotations;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../../core/src/player/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../../../core/src/player/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAsB,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAGV,2BAA2B,EAC3B,2BAA2B,EAC3B,iBAAiB,EACjB,4BAA4B,EAC5B,2BAA2B,EAC3B,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;CACjC;AAED,KAAK,wBAAwB,GAAG,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;AAC7E,KAAK,wBAAwB,GAAG,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;AAC7E,KAAK,wBAAwB,GAAG,CAAC,KAAK,EAAE,2BAA2B,KAAK,IAAI,CAAC;AAC7E,KAAK,yBAAyB,GAAG,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,CAAC;AAM/E,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,GAAG,CAAyB;IACpC,OAAO,CAAC,KAAK,CAOX;IACF,OAAO,CAAC,yBAAyB,CAAuC;IACxE,OAAO,CAAC,yBAAyB,CAAuC;IACxE,OAAO,CAAC,yBAAyB,CAAuC;IACxE,OAAO,CAAC,0BAA0B,CAAwC;gBAE9D,QAAQ,EAAE,kBAAkB,EAAE,OAAO,GAAE,mBAAwB;IASrE,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC;IAa/B,WAAW,IAAI,QAAQ;IAOvB,QAAQ,IAAI,WAAW;IAIvB,aAAa,IAAI,eAAe,EAAE;IAIlC,QAAQ,IAAI,UAAU,EAAE;IAIxB,YAAY,IAAI,cAAc,EAAE;IAIhC,cAAc,IAAI,iBAAiB;IAQnC,WAAW,IAAI,QAAQ,CAAC,cAAc,CAAC;IAIvC,2BAA2B,IAAI,OAAO;IAIhC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAQ/C,cAAc,CAClB,WAAW,EAAE,iBAAiB,EAC9B,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IA+B7B,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAWjD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASvC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAS/C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAO/B,QAAQ,IAAI,MAAM;IAIlB,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAMvB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAc7B,eAAe,CACnB,SAAS,EAAE,IAAI,CACb,eAAe,EACf,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAC5C,EACD,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,eAAe,CAAC;IAiBrB,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,QAAQ,GAAG,WAAW,CAAC,CAAC,EACpE,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IA0B5B,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,OAAO,CAAC;IAgBb,OAAO,CACX,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC,GAClE,OAAO,CAAC,UAAU,CAAC;IAIhB,UAAU,CACd,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC,EACnE,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,UAAU,CAAC;IAgBhB,UAAU,CACd,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,QAAQ,GAAG,WAAW,CAAC,CAAC,EAC/D,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAwBvB,UAAU,CACd,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,OAAO,CAAC;IAcb,WAAW,CACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,KAAK,GAAG,MAAc,EAC9B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC;IAoDpB,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,KAAK,GAAG,MAAc,GAC7B,OAAO,CAAC,OAAO,CAAC;IAgBnB,kBAAkB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAOlE,kBAAkB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAOlE,kBAAkB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAOlE,mBAAmB,CAAC,QAAQ,EAAE,yBAAyB,GAAG,MAAM,IAAI;YAOtD,gBAAgB;YAqBhB,oBAAoB;IAqDlC,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,oBAAoB;IA6E5B,OAAO,CAAC,6BAA6B;YA+CvB,kBAAkB;IAiBhC,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,oBAAoB;IAyB5B,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,eAAe;CAYxB"}
|
|
@@ -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
|
};
|
|
@@ -399,12 +409,35 @@ export class PlayerEngine {
|
|
|
399
409
|
return this.doc.pages.findIndex((page) => page.id === pageId);
|
|
400
410
|
}
|
|
401
411
|
normalizeRange(range) {
|
|
402
|
-
const safeStart = Math.max(0, Math.floor(range
|
|
403
|
-
const safeEnd = Math.max(0, Math.floor(range
|
|
412
|
+
const safeStart = Math.max(0, Math.floor(range?.start || 0));
|
|
413
|
+
const safeEnd = Math.max(0, Math.floor(range?.end || 0));
|
|
404
414
|
return safeStart <= safeEnd
|
|
405
415
|
? { start: safeStart, end: safeEnd }
|
|
406
416
|
: { start: safeEnd, end: safeStart };
|
|
407
417
|
}
|
|
418
|
+
normalizeSegments(segments) {
|
|
419
|
+
if (!Array.isArray(segments) || !segments.length) {
|
|
420
|
+
return undefined;
|
|
421
|
+
}
|
|
422
|
+
const normalized = segments
|
|
423
|
+
.map((segment) => {
|
|
424
|
+
const pageId = typeof segment?.pageId === "string" ? segment.pageId : "";
|
|
425
|
+
const blockId = typeof segment?.blockId === "string" ? segment.blockId : "";
|
|
426
|
+
if (!pageId || !blockId) {
|
|
427
|
+
return null;
|
|
428
|
+
}
|
|
429
|
+
return {
|
|
430
|
+
pageId,
|
|
431
|
+
blockId,
|
|
432
|
+
range: this.normalizeRange(segment?.range),
|
|
433
|
+
...(segment?.selectedText !== undefined
|
|
434
|
+
? { selectedText: String(segment.selectedText) }
|
|
435
|
+
: {}),
|
|
436
|
+
};
|
|
437
|
+
})
|
|
438
|
+
.filter((segment) => segment !== null);
|
|
439
|
+
return normalized.length ? normalized : undefined;
|
|
440
|
+
}
|
|
408
441
|
normalizeAnnotations(annotations, bookId) {
|
|
409
442
|
const now = Date.now();
|
|
410
443
|
const highlights = Array.isArray(annotations?.highlights)
|
|
@@ -419,13 +452,16 @@ export class PlayerEngine {
|
|
|
419
452
|
const fallbackId = `highlight-${Date.now()}-${index}`;
|
|
420
453
|
const createdAt = toTimestamp(item.createdAt, now);
|
|
421
454
|
const updatedAt = toTimestamp(item.updatedAt, createdAt);
|
|
455
|
+
const segments = this.normalizeSegments(item.segments);
|
|
456
|
+
const firstSegment = segments?.[0];
|
|
422
457
|
return {
|
|
423
458
|
...clone(item),
|
|
424
459
|
id: item.id || fallbackId,
|
|
425
460
|
bookId: item.bookId || bookId || "",
|
|
426
|
-
pageId: item.pageId || "",
|
|
427
|
-
blockId: item.blockId || "preview-flow-text",
|
|
428
|
-
range: this.normalizeRange(item.range),
|
|
461
|
+
pageId: item.pageId || firstSegment?.pageId || "",
|
|
462
|
+
blockId: item.blockId || firstSegment?.blockId || "preview-flow-text",
|
|
463
|
+
range: this.normalizeRange(item.range || firstSegment?.range),
|
|
464
|
+
...(segments ? { segments } : {}),
|
|
429
465
|
createdAt,
|
|
430
466
|
updatedAt,
|
|
431
467
|
};
|
|
@@ -434,13 +470,19 @@ export class PlayerEngine {
|
|
|
434
470
|
const fallbackId = `note-${Date.now()}-${index}`;
|
|
435
471
|
const createdAt = toTimestamp(item.createdAt, now);
|
|
436
472
|
const updatedAt = toTimestamp(item.updatedAt, createdAt);
|
|
473
|
+
const segments = this.normalizeSegments(item.segments);
|
|
474
|
+
const firstSegment = segments?.[0];
|
|
475
|
+
const resolvedRange = item.range || firstSegment?.range;
|
|
437
476
|
return {
|
|
438
477
|
...clone(item),
|
|
439
478
|
id: item.id || fallbackId,
|
|
440
479
|
bookId: item.bookId || bookId || "",
|
|
441
|
-
pageId: item.pageId || "",
|
|
442
|
-
blockId: item.blockId || "preview-flow-text",
|
|
443
|
-
...(
|
|
480
|
+
pageId: item.pageId || firstSegment?.pageId || "",
|
|
481
|
+
blockId: item.blockId || firstSegment?.blockId || "preview-flow-text",
|
|
482
|
+
...(resolvedRange
|
|
483
|
+
? { range: this.normalizeRange(resolvedRange) }
|
|
484
|
+
: {}),
|
|
485
|
+
...(segments ? { segments } : {}),
|
|
444
486
|
content: item.content || "",
|
|
445
487
|
createdAt,
|
|
446
488
|
updatedAt,
|
|
@@ -450,6 +492,9 @@ export class PlayerEngine {
|
|
|
450
492
|
const fallbackId = `bookmark-${Date.now()}-${index}`;
|
|
451
493
|
const createdAt = toTimestamp(item.createdAt, now);
|
|
452
494
|
const updatedAt = toTimestamp(item.updatedAt, createdAt);
|
|
495
|
+
const normalizedScrollTop = Number.isFinite(item.scrollTop)
|
|
496
|
+
? Math.max(0, Math.floor(item.scrollTop))
|
|
497
|
+
: undefined;
|
|
453
498
|
return {
|
|
454
499
|
...clone(item),
|
|
455
500
|
id: item.id || fallbackId,
|
|
@@ -457,6 +502,9 @@ export class PlayerEngine {
|
|
|
457
502
|
pageId: item.pageId || "",
|
|
458
503
|
blockId: item.blockId || "",
|
|
459
504
|
content: item.content || "",
|
|
505
|
+
...(normalizedScrollTop !== undefined
|
|
506
|
+
? { scrollTop: normalizedScrollTop }
|
|
507
|
+
: {}),
|
|
460
508
|
createdAt,
|
|
461
509
|
updatedAt,
|
|
462
510
|
};
|
|
@@ -9,6 +9,12 @@ export interface ReaderProgress {
|
|
|
9
9
|
zoom: number;
|
|
10
10
|
updatedAt: number;
|
|
11
11
|
}
|
|
12
|
+
export interface ReaderAnnotationSegment {
|
|
13
|
+
pageId: string;
|
|
14
|
+
blockId: string;
|
|
15
|
+
range: ReaderRange;
|
|
16
|
+
selectedText?: string;
|
|
17
|
+
}
|
|
12
18
|
export interface ReaderNote {
|
|
13
19
|
id: string;
|
|
14
20
|
bookId: string;
|
|
@@ -17,6 +23,8 @@ export interface ReaderNote {
|
|
|
17
23
|
range?: ReaderRange;
|
|
18
24
|
content: string;
|
|
19
25
|
color?: string;
|
|
26
|
+
selectedText?: string;
|
|
27
|
+
segments?: ReaderAnnotationSegment[];
|
|
20
28
|
createdAt: number;
|
|
21
29
|
updatedAt: number;
|
|
22
30
|
}
|
|
@@ -28,6 +36,7 @@ export interface ReaderHighlight {
|
|
|
28
36
|
range: ReaderRange;
|
|
29
37
|
selectedText?: string;
|
|
30
38
|
color?: string;
|
|
39
|
+
segments?: ReaderAnnotationSegment[];
|
|
31
40
|
createdAt: number;
|
|
32
41
|
updatedAt: number;
|
|
33
42
|
}
|
|
@@ -37,6 +46,7 @@ export interface ReaderBookmark {
|
|
|
37
46
|
pageId: string;
|
|
38
47
|
blockId: string;
|
|
39
48
|
content: string;
|
|
49
|
+
scrollTop?: number;
|
|
40
50
|
createdAt: number;
|
|
41
51
|
updatedAt: number;
|
|
42
52
|
}
|
|
@@ -92,6 +102,10 @@ export interface EBookPlayerInputLimitsOptions {
|
|
|
92
102
|
noteMaxLength?: number;
|
|
93
103
|
bookmarkMaxLength?: number;
|
|
94
104
|
}
|
|
105
|
+
export interface EBookPlayerSetBookmarkOptions {
|
|
106
|
+
content?: string;
|
|
107
|
+
prompt?: boolean;
|
|
108
|
+
}
|
|
95
109
|
export interface PlayerDataProvider {
|
|
96
110
|
getData: () => Promise<EbookDoc>;
|
|
97
111
|
loadProgress?: (bookId: string) => Promise<ReaderProgress | null>;
|
|
@@ -128,8 +142,10 @@ export interface EBookPlayerHandle {
|
|
|
128
142
|
createNote: (note: Omit<ReaderNote, "id" | "createdAt" | "updatedAt" | "bookId">, source?: "api" | "user") => Promise<ReaderNote>;
|
|
129
143
|
updateNote: (noteId: string, patch: Partial<Omit<ReaderNote, "id" | "bookId" | "createdAt">>, source?: "api" | "user") => Promise<ReaderNote | null>;
|
|
130
144
|
deleteNote: (noteId: string, source?: "api" | "user") => Promise<boolean>;
|
|
131
|
-
setBookmark: (
|
|
145
|
+
setBookmark: (options?: EBookPlayerSetBookmarkOptions, source?: "api" | "user") => Promise<ReaderBookmark | null>;
|
|
132
146
|
deleteBookmark: (bookmarkId: string, source?: "api" | "user") => Promise<boolean>;
|
|
147
|
+
goToHighlight: (highlightId: string) => number | null;
|
|
148
|
+
goToNote: (noteId: string) => number | null;
|
|
133
149
|
goToBookmark: (bookmarkId: string) => number | null;
|
|
134
150
|
onAnnotationCreate: (listener: (event: ReaderAnnotationCreateEvent) => void) => () => void;
|
|
135
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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor-workbench.d.ts","sourceRoot":"","sources":["../../../../../core/src/workbench/editor-workbench.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"editor-workbench.d.ts","sourceRoot":"","sources":["../../../../../core/src/workbench/editor-workbench.ts"],"names":[],"mappings":"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"}
|
|
@@ -425,20 +425,6 @@ export function createDefaultWorkbenchDocument() {
|
|
|
425
425
|
},
|
|
426
426
|
],
|
|
427
427
|
},
|
|
428
|
-
{
|
|
429
|
-
id: "page-2",
|
|
430
|
-
index: 1,
|
|
431
|
-
blocks: [
|
|
432
|
-
{
|
|
433
|
-
id: "video-1",
|
|
434
|
-
type: "video",
|
|
435
|
-
rect: { x: 80, y: 80, width: 520, height: 300 },
|
|
436
|
-
zIndex: 1,
|
|
437
|
-
src: "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4",
|
|
438
|
-
controls: true,
|
|
439
|
-
},
|
|
440
|
-
],
|
|
441
|
-
},
|
|
442
428
|
],
|
|
443
429
|
};
|
|
444
430
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyebook/vue3-adapter",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.5",
|
|
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.
|
|
20
|
+
"@hyebook/core": "^2.3.5"
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
23
|
"build": "tsc -p tsconfig.json",
|