@readerseye2/cr_viewer 1.0.31 → 1.0.34
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/CR_Viewer.d.ts +5 -1
- package/dist/CR_Viewer.d.ts.map +1 -1
- package/dist/components/btns/SolveQuizBtn.d.ts.map +1 -1
- package/dist/components/quiz/QuizRenderer.d.ts.map +1 -1
- package/dist/index.cjs +5 -5
- package/dist/index.js +2611 -2506
- package/dist/recording/DirectPlaybackController.d.ts.map +1 -1
- package/dist/recording/WordDistanceObserver.d.ts +10 -0
- package/dist/recording/WordDistanceObserver.d.ts.map +1 -0
- package/dist/stores/eventBridge/viewerEventBridge.store.d.ts +2 -0
- package/dist/stores/eventBridge/viewerEventBridge.store.d.ts.map +1 -1
- package/dist/stores/quizprogress/quiz_progress.provider.d.ts +2 -0
- package/dist/stores/quizprogress/quiz_progress.provider.d.ts.map +1 -1
- package/dist/stores/quizprogress/quiz_progress.store.d.ts +8 -2
- package/dist/stores/quizprogress/quiz_progress.store.d.ts.map +1 -1
- package/dist/utils/wordDistance.util.d.ts +8 -0
- package/dist/utils/wordDistance.util.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DirectPlaybackController.d.ts","sourceRoot":"","sources":["../../src/recording/DirectPlaybackController.tsx"],"names":[],"mappings":"AAUA;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"DirectPlaybackController.d.ts","sourceRoot":"","sources":["../../src/recording/DirectPlaybackController.tsx"],"names":[],"mappings":"AAUA;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,SA+WvC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 렌더링에 영향을 주는 설정이 바뀔 때마다
|
|
3
|
+
* DOM에서 run 간 수평 평균 거리를 측정하여 eventBridge store에 저장.
|
|
4
|
+
*
|
|
5
|
+
* getSnapshot() 호출 시 이 값을 ViewerSnapshot.wordAvgDistancePx로 반환.
|
|
6
|
+
*/
|
|
7
|
+
export declare function WordDistanceObserver({ containerRef, }: {
|
|
8
|
+
containerRef: React.RefObject<HTMLElement | null>;
|
|
9
|
+
}): null;
|
|
10
|
+
//# sourceMappingURL=WordDistanceObserver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WordDistanceObserver.d.ts","sourceRoot":"","sources":["../../src/recording/WordDistanceObserver.tsx"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,GACb,EAAE;IACD,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;CACnD,QA6CA"}
|
|
@@ -25,6 +25,8 @@ export type ViewerEventBridgeState = {
|
|
|
25
25
|
dispatchHandler: DispatchHandler | null;
|
|
26
26
|
/** applySnapshot 핸들러 (PlaybackHandler에서 등록) */
|
|
27
27
|
applySnapshotHandler: ApplySnapshotHandler | null;
|
|
28
|
+
/** 렌더링된 run 간 수평 평균 거리 (px) — WordDistanceObserver가 갱신 */
|
|
29
|
+
wordAvgDistancePx: number;
|
|
28
30
|
};
|
|
29
31
|
export type ViewerEventBridgeActions = {
|
|
30
32
|
/** 콜백 등록 (외부에서 호출) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewerEventBridge.store.d.ts","sourceRoot":"","sources":["../../../src/stores/eventBridge/viewerEventBridge.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAE9B,KAAK,UAAU,CAAC,CAAC,SAAS,eAAe,IACvC,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC;AAElB,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAE3D,kDAAkD;AAClD,MAAM,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAEzE,MAAM,MAAM,sBAAsB,GAAG;IACnC,sBAAsB;IACtB,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACzC,eAAe;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,+CAA+C;IAC/C,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"viewerEventBridge.store.d.ts","sourceRoot":"","sources":["../../../src/stores/eventBridge/viewerEventBridge.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAE9B,KAAK,UAAU,CAAC,CAAC,SAAS,eAAe,IACvC,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,CAAC,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC;AAElB,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAE3D,kDAAkD;AAClD,MAAM,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAEzE,MAAM,MAAM,sBAAsB,GAAG;IACnC,sBAAsB;IACtB,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACzC,eAAe;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,+CAA+C;IAC/C,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD,0DAA0D;IAC1D,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,sBAAsB;IACtB,eAAe,EAAE,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1D,iDAAiD;IACjD,IAAI,EAAE,CAAC,CAAC,SAAS,eAAe,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrF,eAAe;IACf,eAAe,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,qBAAqB;IACrB,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,6CAA6C;IAC7C,kBAAkB,EAAE,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9D,sCAAsC;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,kDAAkD;IAClD,uBAAuB,EAAE,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,KAAK,IAAI,CAAC;IACxE,gCAAgC;IAChC,aAAa,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC,sBAAsB,GAAG,wBAAwB,CAAC,CAAC;AAEjG,wBAAgB,4BAA4B,IAAI,sBAAsB,CA2DrE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quiz_progress.provider.d.ts","sourceRoot":"","sources":["../../../src/stores/quizprogress/quiz_progress.provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAA8B,MAAM,OAAO,CAAC;AAG3E,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEpE,KAAK,KAAK,GAAG,iBAAiB,CAAC;IAC7B,8BAA8B;IAC9B,YAAY,EAAE;QACZ,OAAO,EAAE,WAAW,CAAC;QACrB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"quiz_progress.provider.d.ts","sourceRoot":"","sources":["../../../src/stores/quizprogress/quiz_progress.provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAA8B,MAAM,OAAO,CAAC;AAG3E,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEpE,KAAK,KAAK,GAAG,iBAAiB,CAAC;IAC7B,8BAA8B;IAC9B,YAAY,EAAE;QACZ,OAAO,EAAE,WAAW,CAAC;QACrB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;QAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,kBAAkB,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;KACxC,CAAC;CACH,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,KAAK,2CA4E7E"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StoreApi } from 'zustand/vanilla';
|
|
2
|
-
import { SectionData, SectionQuiz } from '@readerseye2/cr_type';
|
|
2
|
+
import { SectionData, SectionQuiz, QuizResult } from '@readerseye2/cr_type';
|
|
3
3
|
export type UserAnswer = number[];
|
|
4
4
|
type Phase = 'idle' | 'doing' | 'finished';
|
|
5
5
|
export type PerQuestionResult = {
|
|
@@ -29,6 +29,8 @@ export type QuizProgressState = {
|
|
|
29
29
|
remainingSec?: number;
|
|
30
30
|
uiReveal: boolean;
|
|
31
31
|
perQ: Record<string, PerQuestionResult>;
|
|
32
|
+
retryAllowed: boolean;
|
|
33
|
+
previousResult: QuizResult | null;
|
|
32
34
|
};
|
|
33
35
|
export type QuizProgressActions = {
|
|
34
36
|
/** 섹션이 바뀔 때(또는 초기 마운트 시) 퀴즈 배열만 미리 적재 */
|
|
@@ -58,6 +60,10 @@ export type QuizProgressStore = StoreApi<StoreSnapshot>;
|
|
|
58
60
|
* - phase는 'idle'로 시작
|
|
59
61
|
* - open은 명시적으로 호출해야 'doing'으로 전환
|
|
60
62
|
*/
|
|
61
|
-
export
|
|
63
|
+
export type QuizProgressStoreOptions = {
|
|
64
|
+
retryAllowed?: boolean;
|
|
65
|
+
previousResult?: QuizResult | null;
|
|
66
|
+
};
|
|
67
|
+
export declare function createQuizProgressVanillaStore(initialSection?: SectionData, options?: QuizProgressStoreOptions): QuizProgressStore;
|
|
62
68
|
export {};
|
|
63
69
|
//# sourceMappingURL=quiz_progress.store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quiz_progress.store.d.ts","sourceRoot":"","sources":["../../../src/stores/quizprogress/quiz_progress.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"quiz_progress.store.d.ts","sourceRoot":"","sources":["../../../src/stores/quizprogress/quiz_progress.store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOM 컨테이너 내 [data-gi] 요소들의 같은 줄 내 수평 거리 평균을 계산합니다.
|
|
3
|
+
* 설정(폰트, 줄간격, 여백, 끊기표시) 변경 시 재계산 필요.
|
|
4
|
+
*
|
|
5
|
+
* @returns 평균 거리 (px). 요소가 부족하면 0.
|
|
6
|
+
*/
|
|
7
|
+
export declare function calcWordAvgDistancePx(container: HTMLElement): number;
|
|
8
|
+
//# sourceMappingURL=wordDistance.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wordDistance.util.d.ts","sourceRoot":"","sources":["../../src/utils/wordDistance.util.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,CAwBpE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@readerseye2/cr_viewer",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.34",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@readerseye2/cr_type": "^1.0.
|
|
31
|
+
"@readerseye2/cr_type": "^1.0.142",
|
|
32
32
|
"lodash": "^4.17.21",
|
|
33
33
|
"react-icons": "^5.0.0",
|
|
34
34
|
"react-virtuoso": "^4.0.0",
|