@readerseye2/cr_type 1.0.112 → 1.0.114
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,10 +1,12 @@
|
|
|
1
|
-
import type { CRViewerState, ViewerEvent, AudioSnapshot } from './viewer-events.types';
|
|
1
|
+
import type { CRViewerState, ViewerEvent, AudioSnapshot, RangeSnapshot, TranslateSnapshot } from './viewer-events.types';
|
|
2
2
|
/** 뷰어 스냅샷 (소켓 통신용 - 현재 읽기 상태) */
|
|
3
3
|
export interface ViewerSnapshot {
|
|
4
4
|
viewMode: 'scroll' | 'page';
|
|
5
5
|
globalRunIndex: number;
|
|
6
6
|
pageIndex?: number;
|
|
7
|
+
totalPages?: number;
|
|
7
8
|
scrollPosition?: number;
|
|
9
|
+
scrollRatio?: number;
|
|
8
10
|
totalItems: number;
|
|
9
11
|
viewportWidth?: number;
|
|
10
12
|
viewportHeight?: number;
|
|
@@ -12,6 +14,8 @@ export interface ViewerSnapshot {
|
|
|
12
14
|
anchorGI?: number;
|
|
13
15
|
anchorOffsetRatio?: number;
|
|
14
16
|
audio?: AudioSnapshot;
|
|
17
|
+
range?: RangeSnapshot | null;
|
|
18
|
+
translate?: TranslateSnapshot | null;
|
|
15
19
|
}
|
|
16
20
|
/** 책/섹션 메타데이터 */
|
|
17
21
|
export interface SessionMeta {
|
|
@@ -235,9 +235,13 @@ export interface SessionHistoryListResult {
|
|
|
235
235
|
total: number;
|
|
236
236
|
hasMore: boolean;
|
|
237
237
|
}
|
|
238
|
-
/** 세션 이력 상세 결과 */
|
|
238
|
+
/** 세션 이력 상세 결과 (재생용 — 전체 청크 포함) */
|
|
239
239
|
export interface SessionHistoryGetResult {
|
|
240
240
|
manifest: UnifiedSessionManifest;
|
|
241
|
+
/** 세그먼트별 전체 청크 (재생용) */
|
|
242
|
+
chunks?: UnifiedChunkFile[];
|
|
243
|
+
/** 청크에서 추출한 전체 이벤트 (편의용) */
|
|
244
|
+
events?: ViewerEvent[];
|
|
241
245
|
}
|
|
242
246
|
/** 청크 조회 결과 */
|
|
243
247
|
export interface UnifiedChunksResult {
|
|
@@ -36,6 +36,21 @@ export type AudioSnapshot = {
|
|
|
36
36
|
currentClip: number;
|
|
37
37
|
currentTimeMs: number;
|
|
38
38
|
};
|
|
39
|
+
/** 텍스트 선택 상태 스냅샷 */
|
|
40
|
+
export type RangeSnapshot = {
|
|
41
|
+
startGI: number;
|
|
42
|
+
endGI: number;
|
|
43
|
+
text: string;
|
|
44
|
+
};
|
|
45
|
+
/** 번역 모달 상태 스냅샷 */
|
|
46
|
+
export type TranslateSnapshot = {
|
|
47
|
+
isOpen: boolean;
|
|
48
|
+
isLoading: boolean;
|
|
49
|
+
text?: string;
|
|
50
|
+
translatedText?: string;
|
|
51
|
+
startGI?: number;
|
|
52
|
+
endGI?: number;
|
|
53
|
+
};
|
|
39
54
|
/** 오디오 제어 액션 타입 */
|
|
40
55
|
export type AudioControlAction = 'play' | 'pause' | 'stop';
|
|
41
56
|
/** 기본 이벤트 (뷰어에서 emit) */
|
|
@@ -121,13 +136,17 @@ export type RecordingSnapshot = {
|
|
|
121
136
|
viewerState: RecordingViewerState;
|
|
122
137
|
globalIndex: number;
|
|
123
138
|
scrollY?: number;
|
|
139
|
+
scrollRatio?: number;
|
|
124
140
|
anchorGI?: number;
|
|
125
141
|
anchorOffsetRatio?: number;
|
|
126
142
|
currentPage?: number;
|
|
143
|
+
totalPages?: number;
|
|
127
144
|
sectionId: string;
|
|
128
145
|
viewportWidth: number;
|
|
129
146
|
viewportHeight: number;
|
|
130
147
|
audio?: AudioSnapshot;
|
|
148
|
+
range?: RangeSnapshot | null;
|
|
149
|
+
translate?: TranslateSnapshot | null;
|
|
131
150
|
};
|
|
132
151
|
/** 녹화 청크 */
|
|
133
152
|
export type RecordingChunk = {
|