alexsys-exam-renderer 0.1.32 → 0.1.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.
@@ -0,0 +1,71 @@
1
+ export type AserAdaptiveQuestion = {
2
+ displayOrder: number;
3
+ };
4
+ export type AserAdaptiveSubjectInput<TSubject, TQuestion extends AserAdaptiveQuestion> = {
5
+ displayOrder: number;
6
+ questions: readonly TQuestion[];
7
+ subject: TSubject;
8
+ };
9
+ export type AserAdaptiveStep<TQuestion> = {
10
+ fallbackLevelCode: string | null;
11
+ levelCode: string;
12
+ questions: TQuestion[];
13
+ };
14
+ export type AserAdaptiveSubjectFlow<TSubject, TQuestion> = {
15
+ startLevelCode: string | null;
16
+ steps: AserAdaptiveStep<TQuestion>[];
17
+ subject: TSubject;
18
+ };
19
+ export type AserCardQuestion = AserAdaptiveQuestion & {
20
+ isStartingQuestion?: boolean;
21
+ };
22
+ export type AserCardStartState = 'empty' | 'missing-start' | 'multiple-starts' | 'ready';
23
+ export type AserCardSubjectFlow<TSubject, TQuestion> = {
24
+ levelCode: string;
25
+ questions: TQuestion[];
26
+ startIndex: number | null;
27
+ startState: AserCardStartState;
28
+ subject: TSubject;
29
+ };
30
+ export type AserCardOutcome = 'failure' | 'success';
31
+ export type AserCardRoutePhase = 'start' | 'after-success' | 'after-failure';
32
+ export type AserCardCompletionReason = 'upper-boundary' | 'lower-boundary' | 'success-after-failure' | 'failure-after-success';
33
+ export type AserCardTransition<TQuestion> = {
34
+ boundary: 'lower' | 'upper' | null;
35
+ completed: boolean;
36
+ completionReason: AserCardCompletionReason | null;
37
+ nextIndex: number | null;
38
+ nextPhase: AserCardRoutePhase | null;
39
+ nextQuestion: TQuestion | null;
40
+ };
41
+ /**
42
+ * Legacy ASER route grouped by the highest available CE level. New ASER
43
+ * authoring uses createAserCardFlow instead, but this export remains stable for
44
+ * existing consumers during the migration.
45
+ *
46
+ * The learner starts at the highest configured level that does not exceed the
47
+ * school level. A success continues inside the current step; a failure takes
48
+ * the learner to the following step, which is the next configured lower level.
49
+ * Missing levels are deliberately skipped.
50
+ */
51
+ export declare function createAserAdaptiveFlow<TSubject, TQuestion extends AserAdaptiveQuestion>(subjects: readonly AserAdaptiveSubjectInput<TSubject, TQuestion>[], studentLevelCode: string, getQuestionLevelCode: (question: TQuestion) => string | null | undefined): AserAdaptiveSubjectFlow<TSubject, TQuestion>[];
52
+ /**
53
+ * Resolves the exact question card for a student's school level.
54
+ *
55
+ * The card is ordered from the most demanding question at index 0 to the most
56
+ * accessible question at the last index. The starred question is the start:
57
+ * success moves upward and failure moves downward. Once a learner has moved,
58
+ * the first opposite outcome ends the test instead of returning to the start.
59
+ */
60
+ export declare function createAserCardFlow<TSubject, TQuestion extends AserCardQuestion>(subjects: readonly AserAdaptiveSubjectInput<TSubject, TQuestion>[], studentLevelCode: string, getQuestionLevelCode: (question: TQuestion) => string | null | undefined): AserCardSubjectFlow<TSubject, TQuestion>[];
61
+ /**
62
+ * Resolves the next ASER activity for a one-way route.
63
+ *
64
+ * - From the start, success moves up and failure moves down.
65
+ * - On the success route, a failure ends the test; successes keep moving up.
66
+ * - On the failure route, a success ends the test; failures keep moving down.
67
+ */
68
+ export declare function resolveAserCardTransition<TQuestion>(flow: Pick<AserCardSubjectFlow<unknown, TQuestion>, 'questions'>, currentIndex: number, outcome: AserCardOutcome, phase?: AserCardRoutePhase): AserCardTransition<TQuestion>;
69
+ export declare function getAserAdaptiveLevelRank(levelCode: string | null | undefined): number;
70
+ export declare function normalizeAserAdaptiveLevelCode(levelCode: string): string;
71
+ //# sourceMappingURL=aserAdaptiveFlow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aserAdaptiveFlow.d.ts","sourceRoot":"","sources":["../../src/aser/aserAdaptiveFlow.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -18,6 +18,7 @@ export * from './renderer/shapeCatalog';
18
18
  export * from './renderer/stableOrder';
19
19
  export * from './renderer/visualScene';
20
20
  export * from './voice/evaluateVoiceAiResult';
21
+ export * from './aser/aserAdaptiveFlow';
21
22
  export { default as CoinTableResponse } from './exam-session/interactions/CoinTableResponse';
22
23
  export { default as ColorPenPicker } from './exam-session/interactions/ColorPenPicker';
23
24
  export { default as DraftSheet } from './exam-session/interactions/DraftSheet';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AAErB,cAAc,iCAAiC,CAAA;AAC/C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,2BAA2B,CAAA;AACzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA;AAE7C,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,+CAA+C,CAAA;AAC5F,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AACxG,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,iDAAiD,CAAA;AAChG,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,uDAAuD,CAAA;AAC5G,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AAC1F,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AAC1F,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,+CAA+C,CAAA;AAC5F,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,sDAAsD,CAAA;AAC1G,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,kDAAkD,CAAA;AAClG,cAAc,+CAA+C,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,mDAAmD,CAAA;AACpG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wCAAwC,CAAA;AAC9E,cAAc,4CAA4C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAA;AAErB,cAAc,iCAAiC,CAAA;AAC/C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2BAA2B,CAAA;AACzC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,2BAA2B,CAAA;AACzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,yBAAyB,CAAA;AAEvC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,+CAA+C,CAAA;AAC5F,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wCAAwC,CAAA;AAC9E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,uCAAuC,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,qDAAqD,CAAA;AACxG,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,iDAAiD,CAAA;AAChG,cAAc,uCAAuC,CAAA;AACrD,cAAc,yCAAyC,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,uDAAuD,CAAA;AAC5G,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AAC1F,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AAC1F,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,+CAA+C,CAAA;AAC5F,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,sDAAsD,CAAA;AAC1G,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,kDAAkD,CAAA;AAClG,cAAc,+CAA+C,CAAA;AAC7D,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,mDAAmD,CAAA;AACpG,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAClF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,wCAAwC,CAAA;AAC9E,cAAc,4CAA4C,CAAA"}