-
Notifications
You must be signed in to change notification settings - Fork 0
/
prendus-question-elements.d.ts
124 lines (100 loc) · 2.81 KB
/
prendus-question-elements.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
import {AST} from '../assessml/assessml.d';
export interface Action {
readonly type: string;
}
export interface SetPropertyAction {
readonly type: 'SET_PROPERTY';
readonly key: string;
readonly value: any;
}
export interface SetComponentPropertyAction {
readonly type: 'SET_COMPONENT_PROPERTY';
readonly componentId: string;
readonly key: string;
readonly value: any;
}
export interface DefaultAction {
readonly type: 'DEFAULT_ACTION';
}
export interface BuiltQuestion {
readonly html: string;
readonly ast: AST;
}
export type GQLMutateErrorCallback = (error: any) => void;
export type GQLQueryDataCallback = (key: string, value: any) => void;
export type GQLQueryErrorCallback = (error: any) => void;
export type GQLSubscribeCallback = (data: any) => void;
export interface Question {
readonly id: string;
readonly createdAt: Date;
readonly updatedAt: Date;
readonly text: string;
readonly code: string;
readonly quiz: Quiz | null;
readonly author: User;
readonly license: string;
readonly discipline: Discipline;
readonly subject: Subject;
readonly concept: Concept
readonly resource: string;
readonly explanation: string;
readonly answerComments: {};
}
export type Reducer = (state: State, action: Action) => State;
export interface State {
readonly components: {
readonly [componentId: string]: any;
};
}
export interface User {
readonly id: string;
readonly createdAt: Date;
readonly updatedAt: Date;
readonly courses: Course[];
readonly assignments: Assignment[];
readonly quizzes: Quiz[];
readonly questions: Question[];
}
export type UserASTObject = UserVariable | UserInput | UserEssay | UserCheck | UserRadio;
export interface UserVariable {
readonly type: 'USER_VARIABLE';
readonly varName: string;
readonly value: number;
}
export interface UserInput {
readonly type: 'USER_INPUT';
readonly varName: string;
readonly value: string;
}
export interface UserEssay {
readonly type: 'USER_ESSAY';
readonly varName: string;
readonly value: string;
}
export interface UserCheck {
readonly type: 'USER_CHECK';
readonly varName: string;
readonly checked: boolean;
}
export interface UserRadio {
readonly type: 'USER_RADIO';
readonly varName: string;
readonly checked: boolean;
}
export interface QuestionScaffold {
}
export interface QuestionScaffoldAnswer {
}
export interface CodeInfo {
readonly code: string;
readonly userChecks: UserCheck[];
readonly userRadios: UserRadio[];
readonly userEssays: UserEssay[];
readonly userInputs: UserInput[];
readonly oneRadioHasBeenSetToTrue: boolean;
readonly varInfos: {
readonly min: number;
readonly max: number;
readonly precision: number;
}[];
}