Newer
Older
// used everywhere
export interface TaggedString {
tag: string;
value: string;
export interface UnitStateData {
dataPartsAllString: string;
unitStateDataType: string;
export interface KeyValuePairString {
[K: string]: string;
}
export enum WindowFocusState {
PLAYER = 'PLAYER',
HOST = 'HOST',
UNKNOWN = 'UNKNOWN'
}
// testcontroller restrictions +++++++++++++++++++++++++++++++++++
export interface StartLockData {
}
export interface CodeInputData {
prompt: string;
code: string;
value: string;
}
// for backend ++++++++++++++++++++++++++++++++++++++++++++++++++++++
export interface KeyValuePair {
[K: string]: string;
}
export interface UnitData {
xml: string;
restorepoint: string;
laststate: KeyValuePair[];
}
TERMINATED = 'TERMINATED',
PAUSED = 'PAUSED',
ERROR = 'ERROR'
}
export interface UnitMenuButtonData {
sequenceId: number;
label: string;
isCurrent: boolean;
testletLabel: string;
// for testcontroller service ++++++++++++++++++++++++++++++++++++++++
export interface UnitLogData {
bookletDbId: number;
unitDbKey: string;
timestamp: number;
entry: string;
MAXTIMELEFT = 'MAXTIMELEFT',
FOCUS = 'FOCUS'
export interface UnitStatus {
PRESENTATIONCOMPLETE?: string;
RESPONSESCOMPLETE?: string;
PAGE_NR?: number;
PAGE_NAME?: string;
PAGES_COUNT?: number;
BOOKLETLOADSTART = 'BOOKLETLOADSTART',
BOOKLETLOADCOMPLETE = 'BOOKLETLOADCOMPLETE',
PAGENAVIGATIONSTART = 'PAGENAVIGATIONSTART',
PAGENAVIGATIONCOMPLETE = 'PAGENAVIGATIONCOMPLETE',
PRESENTATIONCOMPLETE = 'PRESENTATIONCOMPLETE',
RESPONSESCOMPLETE = 'RESPONSESCOMPLETE'
}
export interface UnitNaviButtonData {
sequenceId: number;
disabled: boolean;
shortLabel: string;
longLabel: string;
testletLabel: string;
// for unithost ++++++++++++++++++++++++++++++++++++++++++++++++++++++
export interface PageData {
index: number;
id: string;
export interface ReviewDialogData {
loginname: string;
bookletname: string;
unitDbKey: string;
unitTitle: string;
}
}
export interface KeyValuePairNumber {
[K: string]: number;
}
export enum UnitNavigationTarget {
NEXT = '#next',
ERROR = '#error',
PREVIOUS = '#previous',
FIRST = '#first',
LAST = '#last',
END = '#end',
MENU = '#menu',
PAUSE = '#pause'
}
export const commandKeywords = [
'pause',
'goto',
'terminate',
'resume',
'debug'
];
export type CommandKeyword = (typeof commandKeywords)[number];
export function isKnownCommand (keyword: string): keyword is CommandKeyword {
return (commandKeywords as readonly string[]).includes(keyword);
}
export interface Command {
keyword: CommandKeyword;
id: string; // a unique id for each command, to make sure each one get only performed once (even in polling mode)
arguments: string[];
}