diff --git a/apps/func-response-processor/src/index.ts b/apps/func-response-processor/src/index.ts index b3a4d328f5..fcbd6f134b 100644 --- a/apps/func-response-processor/src/index.ts +++ b/apps/func-response-processor/src/index.ts @@ -23,7 +23,7 @@ const DEFAULT_POINTS = 10 // points a participant gets for participating in a po const DEFAULT_CORRECT_POINTS = 5 // points a participant gets for answering correctly (independent of time) // TODO: what if the participant is not part of the course? when starting a session, prepopulate the leaderboard with all participations? what if a participant joins the course during a session? filter out all 0 point participants before rendering the LB -// TODO: ensure that the response meets the restrictions specified in the question options +// TODO: ensure that the response meets the restrictions specified in the element options Sentry.init() diff --git a/packages/graphql/src/lib/validateAndProcessElementOptions.ts b/packages/graphql/src/lib/validateAndProcessElementOptions.ts index e3f93c63da..10d6126688 100644 --- a/packages/graphql/src/lib/validateAndProcessElementOptions.ts +++ b/packages/graphql/src/lib/validateAndProcessElementOptions.ts @@ -7,7 +7,7 @@ import validateNumericalOptions from './validateNumericalOptions.js' import validateSCOptions from './validateSCOptions.js' import validateSelectionOptions from './validateSelectionOptions.js' -export interface QuestionOptionsArgs { +export interface ElementOptionsArgs { unit?: string | null // NR only accuracy?: number | null // NR only placeholder?: string | null // NR/FT only @@ -40,7 +40,7 @@ export interface QuestionOptionsArgs { function validateAndProcessElementOptions( elementType: DB.ElementType, - options?: QuestionOptionsArgs | null + options?: ElementOptionsArgs | null ) { switch (elementType) { case DB.ElementType.SC: diff --git a/packages/graphql/src/lib/validateElementInputs.ts b/packages/graphql/src/lib/validateElementInputs.ts index 760dcf8dc6..fa087dc5e7 100644 --- a/packages/graphql/src/lib/validateElementInputs.ts +++ b/packages/graphql/src/lib/validateElementInputs.ts @@ -1,5 +1,5 @@ import * as DB from '@klicker-uzh/prisma' -import { QuestionOptionsArgs } from './validateAndProcessElementOptions.js' +import { ElementOptionsArgs } from './validateAndProcessElementOptions.js' export interface ManipulateQuestionArgs { id?: number | null @@ -8,7 +8,7 @@ export interface ManipulateQuestionArgs { name?: string | null content?: string | null explanation?: string | null - options?: QuestionOptionsArgs | null + options?: ElementOptionsArgs | null pointsMultiplier?: number | null tags?: string[] | null } diff --git a/packages/graphql/src/lib/validateFreeTextOptions.ts b/packages/graphql/src/lib/validateFreeTextOptions.ts index e840943f86..908d866980 100644 --- a/packages/graphql/src/lib/validateFreeTextOptions.ts +++ b/packages/graphql/src/lib/validateFreeTextOptions.ts @@ -1,6 +1,6 @@ -import { QuestionOptionsArgs } from './validateAndProcessElementOptions.js' +import { ElementOptionsArgs } from './validateAndProcessElementOptions.js' -function validateFreeTextOptions(options?: QuestionOptionsArgs | null) { +function validateFreeTextOptions(options?: ElementOptionsArgs | null) { // options and hasSampleSolution need to be defined if ( !options || diff --git a/packages/graphql/src/lib/validateKPRIMOptions.ts b/packages/graphql/src/lib/validateKPRIMOptions.ts index 7ccefa7719..b75f4fc5d3 100644 --- a/packages/graphql/src/lib/validateKPRIMOptions.ts +++ b/packages/graphql/src/lib/validateKPRIMOptions.ts @@ -1,7 +1,7 @@ -import { QuestionOptionsArgs } from './validateAndProcessElementOptions.js' +import { ElementOptionsArgs } from './validateAndProcessElementOptions.js' import validateSharedChoicesFields from './validateSharedChoicesFields.js' -function validateKPRIMOptions(options?: QuestionOptionsArgs | null) { +function validateKPRIMOptions(options?: ElementOptionsArgs | null) { let valid = validateSharedChoicesFields(options) if (!valid) return false diff --git a/packages/graphql/src/lib/validateMCOptions.ts b/packages/graphql/src/lib/validateMCOptions.ts index 2fa02ee8c6..29efbad7cc 100644 --- a/packages/graphql/src/lib/validateMCOptions.ts +++ b/packages/graphql/src/lib/validateMCOptions.ts @@ -1,7 +1,7 @@ -import { QuestionOptionsArgs } from './validateAndProcessElementOptions.js' +import { ElementOptionsArgs } from './validateAndProcessElementOptions.js' import validateSharedChoicesFields from './validateSharedChoicesFields.js' -function validateMCOptions(options?: QuestionOptionsArgs | null) { +function validateMCOptions(options?: ElementOptionsArgs | null) { let valid = validateSharedChoicesFields(options) if (!valid) return false diff --git a/packages/graphql/src/lib/validateNumericalOptions.ts b/packages/graphql/src/lib/validateNumericalOptions.ts index 8575883420..eac58a1fff 100644 --- a/packages/graphql/src/lib/validateNumericalOptions.ts +++ b/packages/graphql/src/lib/validateNumericalOptions.ts @@ -1,6 +1,6 @@ -import { QuestionOptionsArgs } from './validateAndProcessElementOptions.js' +import { ElementOptionsArgs } from './validateAndProcessElementOptions.js' -function validateNumericalOptions(options?: QuestionOptionsArgs | null) { +function validateNumericalOptions(options?: ElementOptionsArgs | null) { // options and hasSampleSolution need to be defined if ( !options || diff --git a/packages/graphql/src/lib/validateSCOptions.ts b/packages/graphql/src/lib/validateSCOptions.ts index ab8d2ea629..8885872434 100644 --- a/packages/graphql/src/lib/validateSCOptions.ts +++ b/packages/graphql/src/lib/validateSCOptions.ts @@ -1,7 +1,7 @@ -import { QuestionOptionsArgs } from './validateAndProcessElementOptions.js' +import { ElementOptionsArgs } from './validateAndProcessElementOptions.js' import validateSharedChoicesFields from './validateSharedChoicesFields.js' -function validateSCOptions(options?: QuestionOptionsArgs | null) { +function validateSCOptions(options?: ElementOptionsArgs | null) { let valid = validateSharedChoicesFields(options) if (!valid) return false diff --git a/packages/graphql/src/lib/validateSelectionOptions.ts b/packages/graphql/src/lib/validateSelectionOptions.ts index 6280dd5213..1fb168c40c 100644 --- a/packages/graphql/src/lib/validateSelectionOptions.ts +++ b/packages/graphql/src/lib/validateSelectionOptions.ts @@ -1,6 +1,6 @@ -import { QuestionOptionsArgs } from './validateAndProcessElementOptions.js' +import { ElementOptionsArgs } from './validateAndProcessElementOptions.js' -function validateSelectionOptions(options?: QuestionOptionsArgs | null) { +function validateSelectionOptions(options?: ElementOptionsArgs | null) { // options and hasSampleSolution need to be defined if ( !options || diff --git a/packages/graphql/src/lib/validateSharedChoicesFields.ts b/packages/graphql/src/lib/validateSharedChoicesFields.ts index a80294afaa..5c786cc7c5 100644 --- a/packages/graphql/src/lib/validateSharedChoicesFields.ts +++ b/packages/graphql/src/lib/validateSharedChoicesFields.ts @@ -1,7 +1,7 @@ import { DisplayMode } from '@klicker-uzh/types' -import { QuestionOptionsArgs } from './validateAndProcessElementOptions.js' +import { ElementOptionsArgs } from './validateAndProcessElementOptions.js' -function validateSharedChoicesFields(options?: QuestionOptionsArgs | null) { +function validateSharedChoicesFields(options?: ElementOptionsArgs | null) { // options and choices therein need to be defined if (!options || !options.choices) { console.error('Options are required on choices questions') diff --git a/packages/graphql/src/ops.schema.json b/packages/graphql/src/ops.schema.json index 3ca4b9917d..8fcb3f0464 100644 --- a/packages/graphql/src/ops.schema.json +++ b/packages/graphql/src/ops.schema.json @@ -1891,6 +1891,82 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "OBJECT", + "name": "ChoiceElementOptions", + "description": null, + "isOneOf": null, + "fields": [ + { + "name": "choices", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "Choice", + "ofType": null + } + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "displayMode", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "ENUM", + "name": "ElementDisplayMode", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hasAnswerFeedbacks", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hasSampleSolution", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "ChoiceElementResults", @@ -2027,82 +2103,6 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "OBJECT", - "name": "ChoiceQuestionOptions", - "description": null, - "isOneOf": null, - "fields": [ - { - "name": "choices", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Choice", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "displayMode", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ElementDisplayMode", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasAnswerFeedbacks", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasSampleSolution", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, { "kind": "OBJECT", "name": "ChoicesElement", @@ -2214,7 +2214,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "ChoiceQuestionOptions", + "name": "ChoiceElementOptions", "ofType": null } }, @@ -2414,7 +2414,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "ChoiceQuestionOptions", + "name": "ChoiceElementOptions", "ofType": null } }, @@ -7362,7 +7362,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "FreeTextQuestionOptions", + "name": "FreeTextElementOptions", "ofType": null } }, @@ -7562,7 +7562,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "FreeTextQuestionOptions", + "name": "FreeTextElementOptions", "ofType": null } }, @@ -7607,6 +7607,74 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "OBJECT", + "name": "FreeTextElementOptions", + "description": null, + "isOneOf": null, + "fields": [ + { + "name": "hasAnswerFeedbacks", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hasSampleSolution", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "restrictions", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "FreeTextRestrictions", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "solutions", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "FreeTextInstanceEvaluation", @@ -7865,129 +7933,61 @@ }, { "kind": "OBJECT", - "name": "FreeTextQuestionOptions", + "name": "FreeTextRestrictions", "description": null, "isOneOf": null, "fields": [ { - "name": "hasAnswerFeedbacks", + "name": "maxLength", "description": null, "args": [], "type": { "kind": "SCALAR", - "name": "Boolean", + "name": "Int", "ofType": null }, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "FreeTextRestrictionsInput", + "description": null, + "isOneOf": false, + "fields": null, + "inputFields": [ { - "name": "hasSampleSolution", + "name": "maxLength", "description": null, - "args": [], "type": { "kind": "SCALAR", - "name": "Boolean", + "name": "Int", "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "restrictions", + "name": "minLength", "description": null, - "args": [], "type": { - "kind": "OBJECT", - "name": "FreeTextRestrictions", + "kind": "SCALAR", + "name": "Int", "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "solutions", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "FreeTextRestrictions", - "description": null, - "isOneOf": null, - "fields": [ - { - "name": "maxLength", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "FreeTextRestrictionsInput", - "description": null, - "isOneOf": false, - "fields": null, - "inputFields": [ - { - "name": "maxLength", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minLength", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pattern", + "name": "pattern", "description": null, "type": { "kind": "SCALAR", @@ -18209,7 +18209,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "NumericalQuestionOptions", + "name": "NumericalElementOptions", "ofType": null } }, @@ -18409,7 +18409,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "NumericalQuestionOptions", + "name": "NumericalElementOptions", "ofType": null } }, @@ -18602,6 +18602,130 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "OBJECT", + "name": "NumericalElementOptions", + "description": null, + "isOneOf": null, + "fields": [ + { + "name": "accuracy", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "exactSolutions", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Float", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hasAnswerFeedbacks", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hasSampleSolution", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "placeholder", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "restrictions", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "NumericalRestrictions", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "solutionRanges", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "NumericalSolutionRange", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "unit", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "String", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "NumericalElementResult", @@ -19104,216 +19228,92 @@ }, { "kind": "OBJECT", - "name": "NumericalQuestionOptions", + "name": "NumericalRestrictions", "description": null, "isOneOf": null, "fields": [ { - "name": "accuracy", + "name": "max", "description": null, "args": [], "type": { "kind": "SCALAR", - "name": "Int", + "name": "Float", "ofType": null }, "isDeprecated": false, "deprecationReason": null }, { - "name": "exactSolutions", + "name": "min", "description": null, "args": [], "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - } - } + "kind": "SCALAR", + "name": "Float", + "ofType": null }, "isDeprecated": false, "deprecationReason": null - }, + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "INPUT_OBJECT", + "name": "NumericalRestrictionsInput", + "description": null, + "isOneOf": false, + "fields": null, + "inputFields": [ { "name": "hasAnswerFeedbacks", "description": null, - "args": [], "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { "name": "hasSampleSolution", "description": null, - "args": [], "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "placeholder", + "name": "max", "description": null, - "args": [], "type": { "kind": "SCALAR", - "name": "String", + "name": "Float", "ofType": null }, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null }, { - "name": "restrictions", + "name": "min", "description": null, - "args": [], "type": { - "kind": "OBJECT", - "name": "NumericalRestrictions", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "solutionRanges", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "NumericalSolutionRange", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "unit", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "NumericalRestrictions", - "description": null, - "isOneOf": null, - "fields": [ - { - "name": "max", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "min", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Float", + "kind": "SCALAR", + "name": "Float", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "NumericalRestrictionsInput", - "description": null, - "isOneOf": false, - "fields": null, - "inputFields": [ - { - "name": "hasAnswerFeedbacks", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasSampleSolution", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "max", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "defaultValue": null, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "min", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Float", - "ofType": null - }, - "defaultValue": null, + "defaultValue": null, "isDeprecated": false, "deprecationReason": null } @@ -24023,6 +24023,98 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "OBJECT", + "name": "SelectionAnswerCollection", + "description": null, + "isOneOf": null, + "fields": [ + { + "name": "entries", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "OBJECT", + "name": "SelectionAnswerCollectionEntry", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, + { + "kind": "OBJECT", + "name": "SelectionAnswerCollectionEntry", + "description": null, + "isOneOf": null, + "fields": [ + { + "name": "id", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "value", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "String", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "SelectionElement", @@ -24134,7 +24226,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "SelectionQuestionOptions", + "name": "SelectionElementOptions", "ofType": null } }, @@ -24334,7 +24426,7 @@ "name": null, "ofType": { "kind": "OBJECT", - "name": "SelectionQuestionOptions", + "name": "SelectionElementOptions", "ofType": null } }, @@ -24515,6 +24607,86 @@ "enumValues": null, "possibleTypes": null }, + { + "kind": "OBJECT", + "name": "SelectionElementOptions", + "description": null, + "isOneOf": null, + "fields": [ + { + "name": "answerCollection", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "SelectionAnswerCollection", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "answerCollectionSolutionIds", + "description": null, + "args": [], + "type": { + "kind": "LIST", + "name": null, + "ofType": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + } + } + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hasAnswerFeedbacks", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "hasSampleSolution", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, + { + "name": "numberOfInputs", + "description": null, + "args": [], + "type": { + "kind": "SCALAR", + "name": "Int", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + } + ], + "inputFields": null, + "interfaces": [], + "enumValues": null, + "possibleTypes": null + }, { "kind": "OBJECT", "name": "SelectionElementResult", @@ -24931,178 +25103,6 @@ "enumValues": null, "possibleTypes": null }, - { - "kind": "OBJECT", - "name": "SelectionQuestionOptions", - "description": null, - "isOneOf": null, - "fields": [ - { - "name": "answerCollection", - "description": null, - "args": [], - "type": { - "kind": "OBJECT", - "name": "SelectionQuestionOptionsCollection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "answerCollectionSolutionIds", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasAnswerFeedbacks", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasSampleSolution", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "numberOfInputs", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SelectionQuestionOptionsCollection", - "description": null, - "isOneOf": null, - "fields": [ - { - "name": "entries", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SelectionQuestionOptionsCollectionEntry", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SelectionQuestionOptionsCollectionEntry", - "description": null, - "isOneOf": null, - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "value", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, { "kind": "OBJECT", "name": "SharingRequestResponse", diff --git a/packages/graphql/src/ops.ts b/packages/graphql/src/ops.ts index fac30ea621..6ba5ae7cee 100644 --- a/packages/graphql/src/ops.ts +++ b/packages/graphql/src/ops.ts @@ -215,6 +215,14 @@ export type Choice = { value: Scalars['String']['output']; }; +export type ChoiceElementOptions = { + __typename?: 'ChoiceElementOptions'; + choices: Array; + displayMode: ElementDisplayMode; + hasAnswerFeedbacks?: Maybe; + hasSampleSolution?: Maybe; +}; + export type ChoiceElementResults = { __typename?: 'ChoiceElementResults'; correct?: Maybe; @@ -230,14 +238,6 @@ export type ChoiceInput = { value: Scalars['String']['input']; }; -export type ChoiceQuestionOptions = { - __typename?: 'ChoiceQuestionOptions'; - choices: Array; - displayMode: ElementDisplayMode; - hasAnswerFeedbacks?: Maybe; - hasSampleSolution?: Maybe; -}; - export type ChoicesElement = { __typename?: 'ChoicesElement'; content: Scalars['String']['output']; @@ -247,7 +247,7 @@ export type ChoicesElement = { isArchived?: Maybe; isDeleted?: Maybe; name: Scalars['String']['output']; - options: ChoiceQuestionOptions; + options: ChoiceElementOptions; pointsMultiplier: Scalars['Int']['output']; status: ElementStatus; tags?: Maybe>; @@ -263,7 +263,7 @@ export type ChoicesElementData = { explanation?: Maybe; id: Scalars['ID']['output']; name: Scalars['String']['output']; - options: ChoiceQuestionOptions; + options: ChoiceElementOptions; pointsMultiplier: Scalars['Int']['output']; type: ElementType; }; @@ -729,7 +729,7 @@ export type FreeTextElement = { isArchived?: Maybe; isDeleted?: Maybe; name: Scalars['String']['output']; - options: FreeTextQuestionOptions; + options: FreeTextElementOptions; pointsMultiplier: Scalars['Int']['output']; status: ElementStatus; tags?: Maybe>; @@ -745,11 +745,19 @@ export type FreeTextElementData = { explanation?: Maybe; id: Scalars['ID']['output']; name: Scalars['String']['output']; - options: FreeTextQuestionOptions; + options: FreeTextElementOptions; pointsMultiplier: Scalars['Int']['output']; type: ElementType; }; +export type FreeTextElementOptions = { + __typename?: 'FreeTextElementOptions'; + hasAnswerFeedbacks?: Maybe; + hasSampleSolution?: Maybe; + restrictions?: Maybe; + solutions?: Maybe>; +}; + export type FreeTextInstanceEvaluation = { __typename?: 'FreeTextInstanceEvaluation'; answers?: Maybe>; @@ -771,14 +779,6 @@ export type FreeTextInstanceEvaluation = { xpAwarded?: Maybe; }; -export type FreeTextQuestionOptions = { - __typename?: 'FreeTextQuestionOptions'; - hasAnswerFeedbacks?: Maybe; - hasSampleSolution?: Maybe; - restrictions?: Maybe; - solutions?: Maybe>; -}; - export type FreeTextRestrictions = { __typename?: 'FreeTextRestrictions'; maxLength?: Maybe; @@ -2011,7 +2011,7 @@ export type NumericalElement = { isArchived?: Maybe; isDeleted?: Maybe; name: Scalars['String']['output']; - options: NumericalQuestionOptions; + options: NumericalElementOptions; pointsMultiplier: Scalars['Int']['output']; status: ElementStatus; tags?: Maybe>; @@ -2027,7 +2027,7 @@ export type NumericalElementData = { explanation?: Maybe; id: Scalars['ID']['output']; name: Scalars['String']['output']; - options: NumericalQuestionOptions; + options: NumericalElementOptions; pointsMultiplier: Scalars['Int']['output']; type: ElementType; }; @@ -2045,6 +2045,18 @@ export type NumericalElementInstanceEvaluation = { type: ElementType; }; +export type NumericalElementOptions = { + __typename?: 'NumericalElementOptions'; + accuracy?: Maybe; + exactSolutions?: Maybe>; + hasAnswerFeedbacks?: Maybe; + hasSampleSolution?: Maybe; + placeholder?: Maybe; + restrictions?: Maybe; + solutionRanges?: Maybe>; + unit?: Maybe; +}; + export type NumericalElementResult = { __typename?: 'NumericalElementResult'; correct?: Maybe; @@ -2091,18 +2103,6 @@ export type NumericalInstanceEvaluation = { xpAwarded?: Maybe; }; -export type NumericalQuestionOptions = { - __typename?: 'NumericalQuestionOptions'; - accuracy?: Maybe; - exactSolutions?: Maybe>; - hasAnswerFeedbacks?: Maybe; - hasSampleSolution?: Maybe; - placeholder?: Maybe; - restrictions?: Maybe; - solutionRanges?: Maybe>; - unit?: Maybe; -}; - export type NumericalRestrictions = { __typename?: 'NumericalRestrictions'; max?: Maybe; @@ -2732,6 +2732,18 @@ export type ResponseInput = { value?: InputMaybe; }; +export type SelectionAnswerCollection = { + __typename?: 'SelectionAnswerCollection'; + entries?: Maybe>; + id: Scalars['Int']['output']; +}; + +export type SelectionAnswerCollectionEntry = { + __typename?: 'SelectionAnswerCollectionEntry'; + id: Scalars['Int']['output']; + value: Scalars['String']['output']; +}; + export type SelectionElement = { __typename?: 'SelectionElement'; content: Scalars['String']['output']; @@ -2741,7 +2753,7 @@ export type SelectionElement = { isArchived?: Maybe; isDeleted?: Maybe; name: Scalars['String']['output']; - options: SelectionQuestionOptions; + options: SelectionElementOptions; pointsMultiplier: Scalars['Int']['output']; status: ElementStatus; tags?: Maybe>; @@ -2757,7 +2769,7 @@ export type SelectionElementData = { explanation?: Maybe; id: Scalars['ID']['output']; name: Scalars['String']['output']; - options: SelectionQuestionOptions; + options: SelectionElementOptions; pointsMultiplier: Scalars['Int']['output']; type: ElementType; }; @@ -2774,6 +2786,15 @@ export type SelectionElementInstanceEvaluation = { type: ElementType; }; +export type SelectionElementOptions = { + __typename?: 'SelectionElementOptions'; + answerCollection?: Maybe; + answerCollectionSolutionIds?: Maybe>; + hasAnswerFeedbacks?: Maybe; + hasSampleSolution?: Maybe; + numberOfInputs?: Maybe; +}; + export type SelectionElementResult = { __typename?: 'SelectionElementResult'; answerId: Scalars['Int']['output']; @@ -2811,27 +2832,6 @@ export type SelectionInstanceEvaluation = { xpAwarded?: Maybe; }; -export type SelectionQuestionOptions = { - __typename?: 'SelectionQuestionOptions'; - answerCollection?: Maybe; - answerCollectionSolutionIds?: Maybe>; - hasAnswerFeedbacks?: Maybe; - hasSampleSolution?: Maybe; - numberOfInputs?: Maybe; -}; - -export type SelectionQuestionOptionsCollection = { - __typename?: 'SelectionQuestionOptionsCollection'; - entries?: Maybe>; - id: Scalars['Int']['output']; -}; - -export type SelectionQuestionOptionsCollectionEntry = { - __typename?: 'SelectionQuestionOptionsCollectionEntry'; - id: Scalars['Int']['output']; - value: Scalars['String']['output']; -}; - export type SharingRequestResponse = { __typename?: 'SharingRequestResponse'; collectionId: Scalars['Int']['output']; @@ -3089,21 +3089,21 @@ export type WeeklyCourseActivities = { weeklyActivity: Array; }; -export type ElementDataFragment = { __typename?: 'ElementInstance', elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }; +export type ElementDataFragment = { __typename?: 'ElementInstance', elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }; export type ElementDataInfoFragment = { __typename?: 'ElementInstance', elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } }; -export type ElementDataWithoutSolutionsFragment = { __typename?: 'ElementInstance', elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }; +export type ElementDataWithoutSolutionsFragment = { __typename?: 'ElementInstance', elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }; export type EvaluationResultsFragment = { __typename?: 'ActivityEvaluation', results: Array<{ __typename?: 'StackEvaluation', stackId: number, stackName?: string | null, stackDescription?: string | null, stackOrder: number, instances: Array<{ __typename: 'ChoicesElementInstanceEvaluation', id: number, type: ElementType, name: string, content: string, explanation?: string | null, hasSampleSolution: boolean, hasAnswerFeedbacks: boolean, results: { __typename?: 'ChoicesElementResults', totalAnswers: number, anonymousAnswers: number, choices: Array<{ __typename?: 'ChoiceElementResults', value: string, count: number, correct?: boolean | null, feedback?: string | null }> } } | { __typename: 'ContentElementInstanceEvaluation', id: number, type: ElementType, name: string, content: string, explanation?: string | null, hasSampleSolution: boolean, hasAnswerFeedbacks: boolean, results: { __typename?: 'ContentElementResults', totalAnswers: number, anonymousAnswers: number } } | { __typename: 'FlashcardElementInstanceEvaluation', id: number, type: ElementType, name: string, content: string, explanation?: string | null, hasSampleSolution: boolean, hasAnswerFeedbacks: boolean, results: { __typename?: 'FlashcardElementResults', totalAnswers: number, anonymousAnswers: number, correctCount: number, partialCount: number, incorrectCount: number } } | { __typename: 'FreeElementInstanceEvaluation', id: number, type: ElementType, name: string, content: string, explanation?: string | null, hasSampleSolution: boolean, hasAnswerFeedbacks: boolean, results: { __typename?: 'FreeElementResults', totalAnswers: number, anonymousAnswers: number, maxLength?: number | null, solutions?: Array | null, responses: Array<{ __typename?: 'FreeElementResult', value: string, correct?: boolean | null, count: number }> } } | { __typename: 'NumericalElementInstanceEvaluation', id: number, type: ElementType, name: string, content: string, explanation?: string | null, hasSampleSolution: boolean, hasAnswerFeedbacks: boolean, results: { __typename?: 'NumericalElementResults', totalAnswers: number, anonymousAnswers: number, maxValue?: number | null, minValue?: number | null, exactSolutions?: Array | null, solutionRanges?: Array<{ __typename?: 'NumericalElementSolutions', min?: number | null, max?: number | null }> | null, responseValues: Array<{ __typename?: 'NumericalElementResult', value: number, correct?: boolean | null, count: number }> }, statistics?: { __typename?: 'Statistics', max: number, mean: number, median: number, min: number, q1: number, q3: number, sd: number } | null } | { __typename: 'SelectionElementInstanceEvaluation', id: number, type: ElementType, name: string, content: string, explanation?: string | null, hasSampleSolution: boolean, hasAnswerFeedbacks: boolean, results: { __typename?: 'SelectionElementResults', totalAnswers: number, anonymousAnswers: number, numberOfInputs?: number | null, answerSolutionIds?: Array | null, selectionResponses: Array<{ __typename?: 'SelectionElementResult', answerId: number, value: string, count: number }> } }> }> }; -export type MicroLearningDataFragment = { __typename?: 'MicroLearning', id: string, name: string, status: PublicationStatus, displayName: string, description?: string | null, pointsMultiplier: number, scheduledStartAt: any, scheduledEndAt: any, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null }; +export type MicroLearningDataFragment = { __typename?: 'MicroLearning', id: string, name: string, status: PublicationStatus, displayName: string, description?: string | null, pointsMultiplier: number, scheduledStartAt: any, scheduledEndAt: any, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null }; -export type MicroLearningDataWithoutSolutionsFragment = { __typename?: 'MicroLearning', id: string, name: string, status: PublicationStatus, displayName: string, description?: string | null, pointsMultiplier: number, scheduledStartAt: any, scheduledEndAt: any, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null }; +export type MicroLearningDataWithoutSolutionsFragment = { __typename?: 'MicroLearning', id: string, name: string, status: PublicationStatus, displayName: string, description?: string | null, pointsMultiplier: number, scheduledStartAt: any, scheduledEndAt: any, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null }; -export type PracticeQuizDataFragment = { __typename?: 'PracticeQuiz', id: string, status: PublicationStatus, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, availableFrom?: any | null, orderType: ElementOrderType, numOfStacks?: number | null, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null }; +export type PracticeQuizDataFragment = { __typename?: 'PracticeQuiz', id: string, status: PublicationStatus, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, availableFrom?: any | null, orderType: ElementOrderType, numOfStacks?: number | null, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null }; -export type PracticeQuizDataWithoutSolutionsFragment = { __typename?: 'PracticeQuiz', id: string, status: PublicationStatus, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, availableFrom?: any | null, orderType: ElementOrderType, numOfStacks?: number | null, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null }; +export type PracticeQuizDataWithoutSolutionsFragment = { __typename?: 'PracticeQuiz', id: string, status: PublicationStatus, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, availableFrom?: any | null, orderType: ElementOrderType, numOfStacks?: number | null, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null }; export type StackFeedbackEvaluationsFragment = { __typename?: 'StackFeedback', evaluations?: Array<{ __typename: 'ChoicesInstanceEvaluation', elementType: ElementType, instanceId: number, pointsMultiplier: number, explanation?: string | null, numAnswers?: number | null, score: number, xp?: number | null, pointsAwarded?: number | null, percentile?: number | null, newPointsFrom?: any | null, xpAwarded?: number | null, newXpFrom?: any | null, correctness?: number | null, feedbacks?: Array<{ __typename?: 'QuestionFeedback', ix: number, feedback?: string | null, correct?: boolean | null, value: string }> | null, choices?: Array<{ __typename?: 'SingleChoiceResponse', ix: number, count: number }> | null, lastResponse?: { __typename: 'SingleQuestionResponseChoices', choices: Array } | null } | { __typename: 'ContentInstanceEvaluation', instanceId: number, elementType: ElementType, pointsMultiplier: number, explanation?: string | null, numAnswers?: number | null, score: number, xp?: number | null, pointsAwarded?: number | null, percentile?: number | null, newPointsFrom?: any | null, xpAwarded?: number | null, newXpFrom?: any | null, correctness?: number | null, feedbacks?: Array<{ __typename?: 'QuestionFeedback', ix: number, feedback?: string | null, correct?: boolean | null, value: string }> | null, lastResponse?: { __typename: 'SingleQuestionResponseContent', viewed: boolean } | null } | { __typename: 'FlashcardInstanceEvaluation', instanceId: number, elementType: ElementType, pointsMultiplier: number, explanation?: string | null, numAnswers?: number | null, score: number, xp?: number | null, pointsAwarded?: number | null, percentile?: number | null, newPointsFrom?: any | null, xpAwarded?: number | null, newXpFrom?: any | null, correctness?: number | null, feedbacks?: Array<{ __typename?: 'QuestionFeedback', ix: number, feedback?: string | null, correct?: boolean | null, value: string }> | null, lastResponse?: { __typename: 'SingleQuestionResponseFlashcard', correctness: FlashcardCorrectness } | null } | { __typename: 'FreeTextInstanceEvaluation', instanceId: number, elementType: ElementType, pointsMultiplier: number, explanation?: string | null, numAnswers?: number | null, score: number, xp?: number | null, pointsAwarded?: number | null, percentile?: number | null, newPointsFrom?: any | null, xpAwarded?: number | null, newXpFrom?: any | null, solutions?: Array | null, correctness?: number | null, feedbacks?: Array<{ __typename?: 'QuestionFeedback', ix: number, feedback?: string | null, correct?: boolean | null, value: string }> | null, answers?: Array<{ __typename?: 'SingleFreeTextResponse', value: string, count: number }> | null, lastResponse?: { __typename: 'SingleQuestionResponseValue', value: string } | null } | { __typename: 'NumericalInstanceEvaluation', elementType: ElementType, instanceId: number, pointsMultiplier: number, explanation?: string | null, numAnswers?: number | null, score: number, xp?: number | null, pointsAwarded?: number | null, percentile?: number | null, newPointsFrom?: any | null, xpAwarded?: number | null, newXpFrom?: any | null, exactSolutions?: Array | null, correctness?: number | null, feedbacks?: Array<{ __typename?: 'QuestionFeedback', ix: number, feedback?: string | null, correct?: boolean | null, value: string }> | null, responses?: Array<{ __typename?: 'SingleNumericalResponse', value: number, count: number }> | null, solutionRanges?: Array<{ __typename: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null, lastResponse?: { __typename: 'SingleQuestionResponseValue', value: string } | null } | { __typename: 'SelectionInstanceEvaluation', instanceId: number, elementType: ElementType, pointsMultiplier: number, explanation?: string | null, numAnswers?: number | null, score: number, xp?: number | null, pointsAwarded?: number | null, percentile?: number | null, newPointsFrom?: any | null, xpAwarded?: number | null, newXpFrom?: any | null, answerSolutionIds?: Array | null, correctness?: number | null, feedbacks?: Array<{ __typename?: 'QuestionFeedback', ix: number, feedback?: string | null, correct?: boolean | null, value: string }> | null, selectionResponses?: Array<{ __typename: 'SingleSelectionResponse', answerId: number, value: string, count: number }> | null, lastResponse?: { __typename: 'SingleQuestionResponseSelection', selection: Array } | null }> | null }; @@ -3320,7 +3320,7 @@ export type CreateMicroLearningMutationVariables = Exact<{ }>; -export type CreateMicroLearningMutation = { __typename?: 'Mutation', createMicroLearning?: { __typename?: 'MicroLearning', id: string, name: string, displayName: string, description?: string | null, scheduledStartAt: any, scheduledEndAt: any, pointsMultiplier: number, course?: { __typename?: 'Course', id: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; +export type CreateMicroLearningMutation = { __typename?: 'Mutation', createMicroLearning?: { __typename?: 'MicroLearning', id: string, name: string, displayName: string, description?: string | null, scheduledStartAt: any, scheduledEndAt: any, pointsMultiplier: number, course?: { __typename?: 'Course', id: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; export type CreateParticipantAccountMutationVariables = Exact<{ email: Scalars['String']['input']; @@ -3354,7 +3354,7 @@ export type CreatePracticeQuizMutationVariables = Exact<{ }>; -export type CreatePracticeQuizMutation = { __typename?: 'Mutation', createPracticeQuiz?: { __typename?: 'PracticeQuiz', id: string, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, orderType: ElementOrderType, course?: { __typename?: 'Course', id: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; +export type CreatePracticeQuizMutation = { __typename?: 'Mutation', createPracticeQuiz?: { __typename?: 'PracticeQuiz', id: string, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, orderType: ElementOrderType, course?: { __typename?: 'Course', id: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; export type CreateUserLoginMutationVariables = Exact<{ password: Scalars['String']['input']; @@ -3528,7 +3528,7 @@ export type EditMicroLearningMutationVariables = Exact<{ }>; -export type EditMicroLearningMutation = { __typename?: 'Mutation', editMicroLearning?: { __typename?: 'MicroLearning', id: string, name: string, displayName: string, description?: string | null, scheduledStartAt: any, scheduledEndAt: any, pointsMultiplier: number, course?: { __typename?: 'Course', id: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; +export type EditMicroLearningMutation = { __typename?: 'Mutation', editMicroLearning?: { __typename?: 'MicroLearning', id: string, name: string, displayName: string, description?: string | null, scheduledStartAt: any, scheduledEndAt: any, pointsMultiplier: number, course?: { __typename?: 'Course', id: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; export type EditPracticeQuizMutationVariables = Exact<{ id: Scalars['String']['input']; @@ -3543,7 +3543,7 @@ export type EditPracticeQuizMutationVariables = Exact<{ }>; -export type EditPracticeQuizMutation = { __typename?: 'Mutation', editPracticeQuiz?: { __typename?: 'PracticeQuiz', id: string, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, orderType: ElementOrderType, course?: { __typename?: 'Course', id: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; +export type EditPracticeQuizMutation = { __typename?: 'Mutation', editPracticeQuiz?: { __typename?: 'PracticeQuiz', id: string, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, orderType: ElementOrderType, course?: { __typename?: 'Course', id: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; export type EditTagMutationVariables = Exact<{ id: Scalars['Int']['input']; @@ -3756,7 +3756,7 @@ export type ManipulateChoicesQuestionMutationVariables = Exact<{ }>; -export type ManipulateChoicesQuestionMutation = { __typename?: 'Mutation', manipulateChoicesQuestion?: { __typename: 'ChoicesElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', displayMode: ElementDisplayMode, hasSampleSolution?: boolean | null, hasAnswerFeedbacks?: boolean | null, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> }, tags?: Array<{ __typename?: 'Tag', id: number, name: string }> | null } | { __typename: 'ContentElement' } | { __typename: 'FlashcardElement' } | { __typename: 'FreeTextElement' } | { __typename: 'NumericalElement' } | { __typename: 'SelectionElement' } | null }; +export type ManipulateChoicesQuestionMutation = { __typename?: 'Mutation', manipulateChoicesQuestion?: { __typename: 'ChoicesElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', displayMode: ElementDisplayMode, hasSampleSolution?: boolean | null, hasAnswerFeedbacks?: boolean | null, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> }, tags?: Array<{ __typename?: 'Tag', id: number, name: string }> | null } | { __typename: 'ContentElement' } | { __typename: 'FlashcardElement' } | { __typename: 'FreeTextElement' } | { __typename: 'NumericalElement' } | { __typename: 'SelectionElement' } | null }; export type ManipulateContentElementMutationVariables = Exact<{ id?: InputMaybe; @@ -3795,7 +3795,7 @@ export type ManipulateFreeTextQuestionMutationVariables = Exact<{ }>; -export type ManipulateFreeTextQuestionMutation = { __typename?: 'Mutation', manipulateFreeTextQuestion?: { __typename: 'ChoicesElement' } | { __typename: 'ContentElement' } | { __typename: 'FlashcardElement' } | { __typename: 'FreeTextElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string }> | null } | { __typename: 'NumericalElement' } | { __typename: 'SelectionElement' } | null }; +export type ManipulateFreeTextQuestionMutation = { __typename?: 'Mutation', manipulateFreeTextQuestion?: { __typename: 'ChoicesElement' } | { __typename: 'ContentElement' } | { __typename: 'FlashcardElement' } | { __typename: 'FreeTextElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string }> | null } | { __typename: 'NumericalElement' } | { __typename: 'SelectionElement' } | null }; export type ManipulateNumericalQuestionMutationVariables = Exact<{ id?: InputMaybe; @@ -3809,7 +3809,7 @@ export type ManipulateNumericalQuestionMutationVariables = Exact<{ }>; -export type ManipulateNumericalQuestionMutation = { __typename?: 'Mutation', manipulateNumericalQuestion?: { __typename: 'ChoicesElement' } | { __typename: 'ContentElement' } | { __typename: 'FlashcardElement' } | { __typename: 'FreeTextElement' } | { __typename: 'NumericalElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string }> | null } | { __typename: 'SelectionElement' } | null }; +export type ManipulateNumericalQuestionMutation = { __typename?: 'Mutation', manipulateNumericalQuestion?: { __typename: 'ChoicesElement' } | { __typename: 'ContentElement' } | { __typename: 'FlashcardElement' } | { __typename: 'FreeTextElement' } | { __typename: 'NumericalElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string }> | null } | { __typename: 'SelectionElement' } | null }; export type ManipulateSelectionQuestionMutationVariables = Exact<{ id?: InputMaybe; @@ -3823,7 +3823,7 @@ export type ManipulateSelectionQuestionMutationVariables = Exact<{ }>; -export type ManipulateSelectionQuestionMutation = { __typename?: 'Mutation', manipulateSelectionQuestion?: { __typename: 'ChoicesElement' } | { __typename: 'ContentElement' } | { __typename: 'FlashcardElement' } | { __typename: 'FreeTextElement' } | { __typename: 'NumericalElement' } | { __typename: 'SelectionElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number } | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string }> | null } | null }; +export type ManipulateSelectionQuestionMutation = { __typename?: 'Mutation', manipulateSelectionQuestion?: { __typename: 'ChoicesElement' } | { __typename: 'ContentElement' } | { __typename: 'FlashcardElement' } | { __typename: 'FreeTextElement' } | { __typename: 'NumericalElement' } | { __typename: 'SelectionElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number } | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string }> | null } | null }; export type ManualRandomGroupAssignmentsMutationVariables = Exact<{ courseId: Scalars['String']['input']; @@ -4074,7 +4074,7 @@ export type UpdateElementInstancesMutationVariables = Exact<{ }>; -export type UpdateElementInstancesMutation = { __typename?: 'Mutation', updateElementInstances: Array<{ __typename?: 'ElementInstance', id: number, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> }; +export type UpdateElementInstancesMutation = { __typename?: 'Mutation', updateElementInstances: Array<{ __typename?: 'ElementInstance', id: number, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> }; export type UpdateGroupAverageScoresMutationVariables = Exact<{ [key: string]: never; }>; @@ -4174,7 +4174,7 @@ export type GetArtificialInstanceQueryVariables = Exact<{ }>; -export type GetArtificialInstanceQuery = { __typename?: 'Query', artificialInstance?: { __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } } | null }; +export type GetArtificialInstanceQuery = { __typename?: 'Query', artificialInstance?: { __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } } | null }; export type GetBasicCourseInformationQueryVariables = Exact<{ courseId: Scalars['String']['input']; @@ -4188,7 +4188,7 @@ export type GetBookmarkedElementStacksQueryVariables = Exact<{ }>; -export type GetBookmarkedElementStacksQuery = { __typename?: 'Query', getBookmarkedElementStacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null }; +export type GetBookmarkedElementStacksQuery = { __typename?: 'Query', getBookmarkedElementStacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null }; export type GetBookmarksPracticeQuizQueryVariables = Exact<{ quizId?: InputMaybe; @@ -4283,7 +4283,7 @@ export type GetCoursePracticeQuizQueryVariables = Exact<{ }>; -export type GetCoursePracticeQuizQuery = { __typename?: 'Query', coursePracticeQuiz?: { __typename?: 'PracticeQuiz', id: string, status: PublicationStatus, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, availableFrom?: any | null, orderType: ElementOrderType, numOfStacks?: number | null, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; +export type GetCoursePracticeQuizQuery = { __typename?: 'Query', coursePracticeQuiz?: { __typename?: 'PracticeQuiz', id: string, status: PublicationStatus, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, availableFrom?: any | null, orderType: ElementOrderType, numOfStacks?: number | null, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; export type GetCourseRunningLiveQuizzesQueryVariables = Exact<{ courseId: Scalars['String']['input']; @@ -4318,14 +4318,14 @@ export type GetGradingGroupActivityQueryVariables = Exact<{ }>; -export type GetGradingGroupActivityQuery = { __typename?: 'Query', getGradingGroupActivity?: { __typename?: 'GroupActivity', id: string, name: string, displayName: string, description?: string | null, status: PublicationStatus, pointsMultiplier?: number | null, scheduledStartAt: any, scheduledEndAt: any, clues?: Array<{ __typename?: 'GroupActivityClue', id: number, type: ParameterType, name: string, displayName: string, value: string, unit?: string | null }> | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, options?: { __typename?: 'ElementInstanceOptions', pointsMultiplier?: number | null } | null, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null, activityInstances?: Array<{ __typename?: 'GroupActivityInstance', id: number, groupActivityId: string, decisionsSubmittedAt?: any | null, resultsComputedAt?: any | null, groupName?: string | null, decisions?: Array<{ __typename?: 'GroupActivityDecision', instanceId: number, type: ElementType, freeTextResponse?: string | null, choicesResponse?: Array | null, numericalResponse?: number | null, contentResponse?: boolean | null, selectionResponse?: Array | null }> | null, results?: { __typename?: 'GroupActivityResults', passed: boolean, points: number, comment?: string | null, grading: Array<{ __typename?: 'GroupActivityGrading', instanceId: number, score: number, maxPoints: number, feedback?: string | null }> } | null }> | null } | null }; +export type GetGradingGroupActivityQuery = { __typename?: 'Query', getGradingGroupActivity?: { __typename?: 'GroupActivity', id: string, name: string, displayName: string, description?: string | null, status: PublicationStatus, pointsMultiplier?: number | null, scheduledStartAt: any, scheduledEndAt: any, clues?: Array<{ __typename?: 'GroupActivityClue', id: number, type: ParameterType, name: string, displayName: string, value: string, unit?: string | null }> | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, options?: { __typename?: 'ElementInstanceOptions', pointsMultiplier?: number | null } | null, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null, activityInstances?: Array<{ __typename?: 'GroupActivityInstance', id: number, groupActivityId: string, decisionsSubmittedAt?: any | null, resultsComputedAt?: any | null, groupName?: string | null, decisions?: Array<{ __typename?: 'GroupActivityDecision', instanceId: number, type: ElementType, freeTextResponse?: string | null, choicesResponse?: Array | null, numericalResponse?: number | null, contentResponse?: boolean | null, selectionResponse?: Array | null }> | null, results?: { __typename?: 'GroupActivityResults', passed: boolean, points: number, comment?: string | null, grading: Array<{ __typename?: 'GroupActivityGrading', instanceId: number, score: number, maxPoints: number, feedback?: string | null }> } | null }> | null } | null }; export type GetGroupActivityQueryVariables = Exact<{ id: Scalars['String']['input']; }>; -export type GetGroupActivityQuery = { __typename?: 'Query', groupActivity?: { __typename?: 'GroupActivity', id: string, name: string, displayName: string, description?: string | null, pointsMultiplier?: number | null, scheduledStartAt: any, scheduledEndAt: any, clues?: Array<{ __typename?: 'GroupActivityClue', id: number, type: ParameterType, name: string, displayName: string, value: string, unit?: string | null }> | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null, course?: { __typename?: 'Course', id: string, displayName: string } | null } | null }; +export type GetGroupActivityQuery = { __typename?: 'Query', groupActivity?: { __typename?: 'GroupActivity', id: string, name: string, displayName: string, description?: string | null, pointsMultiplier?: number | null, scheduledStartAt: any, scheduledEndAt: any, clues?: Array<{ __typename?: 'GroupActivityClue', id: number, type: ParameterType, name: string, displayName: string, value: string, unit?: string | null }> | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, displayName?: string | null, description?: string | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null, course?: { __typename?: 'Course', id: string, displayName: string } | null } | null }; export type GetGroupActivityInstancesQueryVariables = Exact<{ groupId: Scalars['String']['input']; @@ -4402,7 +4402,7 @@ export type GetMicroLearningQueryVariables = Exact<{ }>; -export type GetMicroLearningQuery = { __typename?: 'Query', microLearning?: { __typename?: 'MicroLearning', isOwner?: boolean | null, id: string, name: string, status: PublicationStatus, displayName: string, description?: string | null, pointsMultiplier: number, scheduledStartAt: any, scheduledEndAt: any, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; +export type GetMicroLearningQuery = { __typename?: 'Query', microLearning?: { __typename?: 'MicroLearning', isOwner?: boolean | null, id: string, name: string, status: PublicationStatus, displayName: string, description?: string | null, pointsMultiplier: number, scheduledStartAt: any, scheduledEndAt: any, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; export type GetParticipantCoursesQueryVariables = Exact<{ [key: string]: never; }>; @@ -4433,7 +4433,7 @@ export type GetPracticeQuizQueryVariables = Exact<{ }>; -export type GetPracticeQuizQuery = { __typename?: 'Query', practiceQuiz?: { __typename?: 'PracticeQuiz', isOwner?: boolean | null, id: string, status: PublicationStatus, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, availableFrom?: any | null, orderType: ElementOrderType, numOfStacks?: number | null, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; +export type GetPracticeQuizQuery = { __typename?: 'Query', practiceQuiz?: { __typename?: 'PracticeQuiz', isOwner?: boolean | null, id: string, status: PublicationStatus, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, availableFrom?: any | null, orderType: ElementOrderType, numOfStacks?: number | null, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; export type GetPracticeQuizEvaluationQueryVariables = Exact<{ id: Scalars['String']['input']; @@ -4473,7 +4473,7 @@ export type GetRunningLiveQuizQueryVariables = Exact<{ }>; -export type GetRunningLiveQuizQuery = { __typename?: 'Query', studentLiveQuiz?: { __typename?: 'LiveQuiz', id: string, status: PublicationStatus, isLiveQAEnabled: boolean, isConfusionFeedbackEnabled: boolean, isModerationEnabled: boolean, isGamificationEnabled: boolean, beforeFirstBlock?: boolean | null, namespace?: string | null, displayName: string, description?: string | null, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, activeBlock?: { __typename?: 'ElementBlock', id: number, status: ElementBlockStatus, expiresAt?: any | null, timeLimit?: number | null, randomSelection?: number | null, execution?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null } | null } | null }; +export type GetRunningLiveQuizQuery = { __typename?: 'Query', studentLiveQuiz?: { __typename?: 'LiveQuiz', id: string, status: PublicationStatus, isLiveQAEnabled: boolean, isConfusionFeedbackEnabled: boolean, isModerationEnabled: boolean, isGamificationEnabled: boolean, beforeFirstBlock?: boolean | null, namespace?: string | null, displayName: string, description?: string | null, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, activeBlock?: { __typename?: 'ElementBlock', id: number, status: ElementBlockStatus, expiresAt?: any | null, timeLimit?: number | null, randomSelection?: number | null, execution?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null } | null } | null }; export type GetShortnameQuizzesQueryVariables = Exact<{ shortname: Scalars['String']['input']; @@ -4501,28 +4501,28 @@ export type GetSingleLiveQuizQueryVariables = Exact<{ }>; -export type GetSingleLiveQuizQuery = { __typename?: 'Query', liveQuiz?: { __typename?: 'LiveQuiz', id: string, name: string, displayName: string, description?: string | null, pointsMultiplier: number, defaultPoints: number, defaultCorrectPoints: number, maxBonusPoints?: number | null, timeToZeroBonus?: number | null, isGamificationEnabled: boolean, isLiveQAEnabled: boolean, isConfusionFeedbackEnabled: boolean, isModerationEnabled: boolean, blocks?: Array<{ __typename?: 'ElementBlock', id: number, order: number, status: ElementBlockStatus, timeLimit?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null, course?: { __typename?: 'Course', id: string } | null } | null }; +export type GetSingleLiveQuizQuery = { __typename?: 'Query', liveQuiz?: { __typename?: 'LiveQuiz', id: string, name: string, displayName: string, description?: string | null, pointsMultiplier: number, defaultPoints: number, defaultCorrectPoints: number, maxBonusPoints?: number | null, timeToZeroBonus?: number | null, isGamificationEnabled: boolean, isLiveQAEnabled: boolean, isConfusionFeedbackEnabled: boolean, isModerationEnabled: boolean, blocks?: Array<{ __typename?: 'ElementBlock', id: number, order: number, status: ElementBlockStatus, timeLimit?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null, course?: { __typename?: 'Course', id: string } | null } | null }; export type GetSingleMicroLearningQueryVariables = Exact<{ id: Scalars['String']['input']; }>; -export type GetSingleMicroLearningQuery = { __typename?: 'Query', getSingleMicroLearning?: { __typename?: 'MicroLearning', id: string, name: string, status: PublicationStatus, displayName: string, description?: string | null, pointsMultiplier: number, scheduledStartAt: any, scheduledEndAt: any, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; +export type GetSingleMicroLearningQuery = { __typename?: 'Query', getSingleMicroLearning?: { __typename?: 'MicroLearning', id: string, name: string, status: PublicationStatus, displayName: string, description?: string | null, pointsMultiplier: number, scheduledStartAt: any, scheduledEndAt: any, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; export type GetSinglePracticeQuizQueryVariables = Exact<{ id: Scalars['String']['input']; }>; -export type GetSinglePracticeQuizQuery = { __typename?: 'Query', getSinglePracticeQuiz?: { __typename?: 'PracticeQuiz', id: string, status: PublicationStatus, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, availableFrom?: any | null, orderType: ElementOrderType, numOfStacks?: number | null, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; +export type GetSinglePracticeQuizQuery = { __typename?: 'Query', getSinglePracticeQuiz?: { __typename?: 'PracticeQuiz', id: string, status: PublicationStatus, name: string, displayName: string, description?: string | null, pointsMultiplier: number, resetTimeDays: number, availableFrom?: any | null, orderType: ElementOrderType, numOfStacks?: number | null, course?: { __typename?: 'Course', id: string, displayName: string, color: string } | null, stacks?: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null } | null }; export type GetSingleQuestionQueryVariables = Exact<{ id: Scalars['Int']['input']; }>; -export type GetSingleQuestionQuery = { __typename?: 'Query', question?: { __typename: 'ChoicesElement', id: number, version: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, hasAnswerFeedbacks?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'ContentElement', id: number, version: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'FlashcardElement', id: number, version: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'FreeTextElement', id: number, version: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'NumericalElement', id: number, version: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'SelectionElement', id: number, version: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number } | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | null }; +export type GetSingleQuestionQuery = { __typename?: 'Query', question?: { __typename: 'ChoicesElement', id: number, version: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, hasAnswerFeedbacks?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'ContentElement', id: number, version: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'FlashcardElement', id: number, version: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'FreeTextElement', id: number, version: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'NumericalElement', id: number, version: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'SelectionElement', id: number, version: number, name: string, status: ElementStatus, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number } | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | null }; export type GetStackElementFeedbacksQueryVariables = Exact<{ instanceIds: Array | Scalars['Int']['input']; @@ -4544,7 +4544,7 @@ export type GetUserCoursesQuery = { __typename?: 'Query', userCourses?: Array<{ export type GetUserLiveQuizzesQueryVariables = Exact<{ [key: string]: never; }>; -export type GetUserLiveQuizzesQuery = { __typename?: 'Query', userLiveQuizzes?: Array<{ __typename?: 'LiveQuiz', id: string, name: string, displayName: string, namespace?: string | null, pointsMultiplier: number, accessMode: LiveQuizAccessMode, status: PublicationStatus, createdAt: any, updatedAt?: any | null, startedAt?: any | null, finishedAt?: any | null, numOfBlocks?: number | null, numOfInstances?: number | null, isGamificationEnabled: boolean, isConfusionFeedbackEnabled: boolean, isLiveQAEnabled: boolean, isModerationEnabled: boolean, blocks?: Array<{ __typename?: 'ElementBlock', id: number, order: number, status: ElementBlockStatus, numOfParticipants?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null, course?: { __typename?: 'Course', id: string, name: string, displayName: string } | null }> | null }; +export type GetUserLiveQuizzesQuery = { __typename?: 'Query', userLiveQuizzes?: Array<{ __typename?: 'LiveQuiz', id: string, name: string, displayName: string, namespace?: string | null, pointsMultiplier: number, accessMode: LiveQuizAccessMode, status: PublicationStatus, createdAt: any, updatedAt?: any | null, startedAt?: any | null, finishedAt?: any | null, numOfBlocks?: number | null, numOfInstances?: number | null, isGamificationEnabled: boolean, isConfusionFeedbackEnabled: boolean, isLiveQAEnabled: boolean, isModerationEnabled: boolean, blocks?: Array<{ __typename?: 'ElementBlock', id: number, order: number, status: ElementBlockStatus, numOfParticipants?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, solutions?: Array | null, restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', hasSampleSolution?: boolean | null, accuracy?: number | null, placeholder?: string | null, unit?: string | null, exactSolutions?: Array | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null, solutionRanges?: Array<{ __typename?: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null, answerCollectionSolutionIds?: Array | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }> | null, course?: { __typename?: 'Course', id: string, name: string, displayName: string } | null }> | null }; export type GetUserLoginsQueryVariables = Exact<{ [key: string]: never; }>; @@ -4559,7 +4559,7 @@ export type GetUserMediaFilesQuery = { __typename?: 'Query', userMediaFiles?: Ar export type GetUserQuestionsQueryVariables = Exact<{ [key: string]: never; }>; -export type GetUserQuestionsQuery = { __typename?: 'Query', userQuestions?: Array<{ __typename: 'ChoicesElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, pointsMultiplier: number, version: number, isArchived?: boolean | null, isDeleted?: boolean | null, createdAt?: any | null, updatedAt?: any | null, options: { __typename: 'ChoiceQuestionOptions', hasSampleSolution?: boolean | null, hasAnswerFeedbacks?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'ContentElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, pointsMultiplier: number, version: number, isArchived?: boolean | null, isDeleted?: boolean | null, createdAt?: any | null, updatedAt?: any | null, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'FlashcardElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, pointsMultiplier: number, version: number, isArchived?: boolean | null, isDeleted?: boolean | null, createdAt?: any | null, updatedAt?: any | null, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'FreeTextElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, pointsMultiplier: number, version: number, isArchived?: boolean | null, isDeleted?: boolean | null, createdAt?: any | null, updatedAt?: any | null, options: { __typename: 'FreeTextQuestionOptions', hasSampleSolution?: boolean | null, hasAnswerFeedbacks?: boolean | null, solutions?: Array | null, restrictions?: { __typename: 'FreeTextRestrictions', maxLength?: number | null } | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'NumericalElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, pointsMultiplier: number, version: number, isArchived?: boolean | null, isDeleted?: boolean | null, createdAt?: any | null, updatedAt?: any | null, options: { __typename: 'NumericalQuestionOptions', hasSampleSolution?: boolean | null, hasAnswerFeedbacks?: boolean | null, placeholder?: string | null, accuracy?: number | null, unit?: string | null, exactSolutions?: Array | null, solutionRanges?: Array<{ __typename: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null, restrictions?: { __typename: 'NumericalRestrictions', min?: number | null, max?: number | null } | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'SelectionElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, pointsMultiplier: number, version: number, isArchived?: boolean | null, isDeleted?: boolean | null, createdAt?: any | null, updatedAt?: any | null, options: { __typename: 'SelectionQuestionOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null }> | null }; +export type GetUserQuestionsQuery = { __typename?: 'Query', userQuestions?: Array<{ __typename: 'ChoicesElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, pointsMultiplier: number, version: number, isArchived?: boolean | null, isDeleted?: boolean | null, createdAt?: any | null, updatedAt?: any | null, options: { __typename: 'ChoiceElementOptions', hasSampleSolution?: boolean | null, hasAnswerFeedbacks?: boolean | null, displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, correct?: boolean | null, feedback?: string | null, value: string }> }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'ContentElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, pointsMultiplier: number, version: number, isArchived?: boolean | null, isDeleted?: boolean | null, createdAt?: any | null, updatedAt?: any | null, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'FlashcardElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, pointsMultiplier: number, version: number, isArchived?: boolean | null, isDeleted?: boolean | null, createdAt?: any | null, updatedAt?: any | null, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'FreeTextElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, pointsMultiplier: number, version: number, isArchived?: boolean | null, isDeleted?: boolean | null, createdAt?: any | null, updatedAt?: any | null, options: { __typename: 'FreeTextElementOptions', hasSampleSolution?: boolean | null, hasAnswerFeedbacks?: boolean | null, solutions?: Array | null, restrictions?: { __typename: 'FreeTextRestrictions', maxLength?: number | null } | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'NumericalElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, pointsMultiplier: number, version: number, isArchived?: boolean | null, isDeleted?: boolean | null, createdAt?: any | null, updatedAt?: any | null, options: { __typename: 'NumericalElementOptions', hasSampleSolution?: boolean | null, hasAnswerFeedbacks?: boolean | null, placeholder?: string | null, accuracy?: number | null, unit?: string | null, exactSolutions?: Array | null, solutionRanges?: Array<{ __typename: 'NumericalSolutionRange', min?: number | null, max?: number | null }> | null, restrictions?: { __typename: 'NumericalRestrictions', min?: number | null, max?: number | null } | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null } | { __typename: 'SelectionElement', id: number, name: string, status: ElementStatus, type: ElementType, content: string, pointsMultiplier: number, version: number, isArchived?: boolean | null, isDeleted?: boolean | null, createdAt?: any | null, updatedAt?: any | null, options: { __typename: 'SelectionElementOptions', hasSampleSolution?: boolean | null, numberOfInputs?: number | null }, tags?: Array<{ __typename?: 'Tag', id: number, name: string, order: number }> | null }> | null }; export type GetUserRunningLiveQuizzesQueryVariables = Exact<{ [key: string]: never; }>; @@ -4577,7 +4577,7 @@ export type GroupActivityDetailsQueryVariables = Exact<{ }>; -export type GroupActivityDetailsQuery = { __typename?: 'Query', groupActivityDetails?: { __typename?: 'GroupActivityDetails', id: string, displayName: string, status: PublicationStatus, description?: string | null, scheduledStartAt?: any | null, scheduledEndAt?: any | null, clues: Array<{ __typename?: 'GroupActivityClue', id: number, displayName: string }>, stacks: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null }>, course: { __typename?: 'Course', id: string, displayName: string, color: string }, group: { __typename?: 'ParticipantGroup', id: string, name: string, participants?: Array<{ __typename?: 'Participant', id: string, username: string, avatar?: string | null, isSelf?: boolean | null }> | null }, activityInstance?: { __typename?: 'GroupActivityInstance', id: number, decisionsSubmittedAt?: any | null, resultsComputedAt?: any | null, clues?: Array<{ __typename?: 'GroupActivityClueInstance', id: number, displayName: string, type: ParameterType, unit?: string | null, value?: string | null, participant: { __typename?: 'Participant', id: string, username: string, avatar?: string | null, isSelf?: boolean | null } }> | null, decisions?: Array<{ __typename?: 'GroupActivityDecision', instanceId: number, type: ElementType, freeTextResponse?: string | null, choicesResponse?: Array | null, numericalResponse?: number | null, contentResponse?: boolean | null, selectionResponse?: Array | null }> | null, results?: { __typename?: 'GroupActivityResults', passed: boolean, points: number, comment?: string | null, grading: Array<{ __typename?: 'GroupActivityGrading', instanceId: number, score: number, maxPoints: number, feedback?: string | null }> } | null } | null } | null }; +export type GroupActivityDetailsQuery = { __typename?: 'Query', groupActivityDetails?: { __typename?: 'GroupActivityDetails', id: string, displayName: string, status: PublicationStatus, description?: string | null, scheduledStartAt?: any | null, scheduledEndAt?: any | null, clues: Array<{ __typename?: 'GroupActivityClue', id: number, displayName: string }>, stacks: Array<{ __typename?: 'ElementStack', id: number, type: ElementStackType, displayName?: string | null, description?: string | null, order?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, type: ElementInstanceType, elementType: ElementType, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null }>, course: { __typename?: 'Course', id: string, displayName: string, color: string }, group: { __typename?: 'ParticipantGroup', id: string, name: string, participants?: Array<{ __typename?: 'Participant', id: string, username: string, avatar?: string | null, isSelf?: boolean | null }> | null }, activityInstance?: { __typename?: 'GroupActivityInstance', id: number, decisionsSubmittedAt?: any | null, resultsComputedAt?: any | null, clues?: Array<{ __typename?: 'GroupActivityClueInstance', id: number, displayName: string, type: ParameterType, unit?: string | null, value?: string | null, participant: { __typename?: 'Participant', id: string, username: string, avatar?: string | null, isSelf?: boolean | null } }> | null, decisions?: Array<{ __typename?: 'GroupActivityDecision', instanceId: number, type: ElementType, freeTextResponse?: string | null, choicesResponse?: Array | null, numericalResponse?: number | null, contentResponse?: boolean | null, selectionResponse?: Array | null }> | null, results?: { __typename?: 'GroupActivityResults', passed: boolean, points: number, comment?: string | null, grading: Array<{ __typename?: 'GroupActivityGrading', instanceId: number, score: number, maxPoints: number, feedback?: string | null }> } | null } | null } | null }; export type ParticipationsQueryVariables = Exact<{ endpoint?: InputMaybe; @@ -4662,7 +4662,7 @@ export type RunningLiveQuizUpdatedSubscriptionVariables = Exact<{ }>; -export type RunningLiveQuizUpdatedSubscription = { __typename?: 'Subscription', runningLiveQuizUpdated?: { __typename?: 'ElementBlock', id: number, status: ElementBlockStatus, expiresAt?: any | null, timeLimit?: number | null, randomSelection?: number | null, execution?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceQuestionOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextQuestionOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalQuestionOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionQuestionOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionQuestionOptionsCollection', id: number, entries?: Array<{ __typename?: 'SelectionQuestionOptionsCollectionEntry', id: number, value: string }> | null } | null } } }> | null } | null }; +export type RunningLiveQuizUpdatedSubscription = { __typename?: 'Subscription', runningLiveQuizUpdated?: { __typename?: 'ElementBlock', id: number, status: ElementBlockStatus, expiresAt?: any | null, timeLimit?: number | null, randomSelection?: number | null, execution?: number | null, elements?: Array<{ __typename?: 'ElementInstance', id: number, elementData: { __typename: 'ChoicesElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'ChoiceElementOptions', displayMode: ElementDisplayMode, choices: Array<{ __typename?: 'Choice', ix: number, value: string }> } } | { __typename: 'ContentElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename?: 'FlashcardElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number } | { __typename: 'FreeTextElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'FreeTextElementOptions', restrictions?: { __typename?: 'FreeTextRestrictions', maxLength?: number | null } | null } } | { __typename: 'NumericalElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'NumericalElementOptions', accuracy?: number | null, placeholder?: string | null, unit?: string | null, restrictions?: { __typename?: 'NumericalRestrictions', min?: number | null, max?: number | null } | null } } | { __typename: 'SelectionElementData', id: string, elementId: number, name: string, type: ElementType, content: string, explanation?: string | null, pointsMultiplier: number, options: { __typename?: 'SelectionElementOptions', numberOfInputs?: number | null, answerCollection?: { __typename?: 'SelectionAnswerCollection', id: number, entries?: Array<{ __typename?: 'SelectionAnswerCollectionEntry', id: number, value: string }> | null } | null } } }> | null } | null }; export type SingleGroupActivityEndedSubscriptionVariables = Exact<{ activityId: Scalars['String']['input']; diff --git a/packages/graphql/src/public/schema.graphql b/packages/graphql/src/public/schema.graphql index a1c2749f9b..e9f1a016dd 100644 --- a/packages/graphql/src/public/schema.graphql +++ b/packages/graphql/src/public/schema.graphql @@ -181,6 +181,13 @@ type Choice { value: String! } +type ChoiceElementOptions { + choices: [Choice!]! + displayMode: ElementDisplayMode! + hasAnswerFeedbacks: Boolean + hasSampleSolution: Boolean +} + type ChoiceElementResults { correct: Boolean count: Int! @@ -195,13 +202,6 @@ input ChoiceInput { value: String! } -type ChoiceQuestionOptions { - choices: [Choice!]! - displayMode: ElementDisplayMode! - hasAnswerFeedbacks: Boolean - hasSampleSolution: Boolean -} - type ChoicesElement { content: String! createdAt: Date @@ -210,7 +210,7 @@ type ChoicesElement { isArchived: Boolean isDeleted: Boolean name: String! - options: ChoiceQuestionOptions! + options: ChoiceElementOptions! pointsMultiplier: Int! status: ElementStatus! tags: [Tag!] @@ -225,7 +225,7 @@ type ChoicesElementData { explanation: String id: ID! name: String! - options: ChoiceQuestionOptions! + options: ChoiceElementOptions! pointsMultiplier: Int! type: ElementType! } @@ -664,7 +664,7 @@ type FreeTextElement { isArchived: Boolean isDeleted: Boolean name: String! - options: FreeTextQuestionOptions! + options: FreeTextElementOptions! pointsMultiplier: Int! status: ElementStatus! tags: [Tag!] @@ -679,11 +679,18 @@ type FreeTextElementData { explanation: String id: ID! name: String! - options: FreeTextQuestionOptions! + options: FreeTextElementOptions! pointsMultiplier: Int! type: ElementType! } +type FreeTextElementOptions { + hasAnswerFeedbacks: Boolean + hasSampleSolution: Boolean + restrictions: FreeTextRestrictions + solutions: [String!] +} + type FreeTextInstanceEvaluation { answers: [SingleFreeTextResponse!] correctness: Float @@ -704,13 +711,6 @@ type FreeTextInstanceEvaluation { xpAwarded: Int } -type FreeTextQuestionOptions { - hasAnswerFeedbacks: Boolean - hasSampleSolution: Boolean - restrictions: FreeTextRestrictions - solutions: [String!] -} - type FreeTextRestrictions { maxLength: Int } @@ -1166,7 +1166,7 @@ type NumericalElement { isArchived: Boolean isDeleted: Boolean name: String! - options: NumericalQuestionOptions! + options: NumericalElementOptions! pointsMultiplier: Int! status: ElementStatus! tags: [Tag!] @@ -1181,7 +1181,7 @@ type NumericalElementData { explanation: String id: ID! name: String! - options: NumericalQuestionOptions! + options: NumericalElementOptions! pointsMultiplier: Int! type: ElementType! } @@ -1198,6 +1198,17 @@ type NumericalElementInstanceEvaluation { type: ElementType! } +type NumericalElementOptions { + accuracy: Int + exactSolutions: [Float!] + hasAnswerFeedbacks: Boolean + hasSampleSolution: Boolean + placeholder: String + restrictions: NumericalRestrictions + solutionRanges: [NumericalSolutionRange!] + unit: String +} + type NumericalElementResult { correct: Boolean count: Int! @@ -1240,17 +1251,6 @@ type NumericalInstanceEvaluation { xpAwarded: Int } -type NumericalQuestionOptions { - accuracy: Int - exactSolutions: [Float!] - hasAnswerFeedbacks: Boolean - hasSampleSolution: Boolean - placeholder: String - restrictions: NumericalRestrictions - solutionRanges: [NumericalSolutionRange!] - unit: String -} - type NumericalRestrictions { max: Float min: Float @@ -1590,6 +1590,16 @@ input ResponseInput { value: String } +type SelectionAnswerCollection { + entries: [SelectionAnswerCollectionEntry!] + id: Int! +} + +type SelectionAnswerCollectionEntry { + id: Int! + value: String! +} + type SelectionElement { content: String! createdAt: Date @@ -1598,7 +1608,7 @@ type SelectionElement { isArchived: Boolean isDeleted: Boolean name: String! - options: SelectionQuestionOptions! + options: SelectionElementOptions! pointsMultiplier: Int! status: ElementStatus! tags: [Tag!] @@ -1613,7 +1623,7 @@ type SelectionElementData { explanation: String id: ID! name: String! - options: SelectionQuestionOptions! + options: SelectionElementOptions! pointsMultiplier: Int! type: ElementType! } @@ -1629,6 +1639,14 @@ type SelectionElementInstanceEvaluation { type: ElementType! } +type SelectionElementOptions { + answerCollection: SelectionAnswerCollection + answerCollectionSolutionIds: [Int!] + hasAnswerFeedbacks: Boolean + hasSampleSolution: Boolean + numberOfInputs: Int +} + type SelectionElementResult { answerId: Int! count: Int! @@ -1663,24 +1681,6 @@ type SelectionInstanceEvaluation { xpAwarded: Int } -type SelectionQuestionOptions { - answerCollection: SelectionQuestionOptionsCollection - answerCollectionSolutionIds: [Int!] - hasAnswerFeedbacks: Boolean - hasSampleSolution: Boolean - numberOfInputs: Int -} - -type SelectionQuestionOptionsCollection { - entries: [SelectionQuestionOptionsCollectionEntry!] - id: Int! -} - -type SelectionQuestionOptionsCollectionEntry { - id: Int! - value: String! -} - type SharingRequestResponse { collectionId: Int! userId: String! diff --git a/packages/graphql/src/schema/elementData.ts b/packages/graphql/src/schema/elementData.ts index e5a8b9b05d..dda6f2ac00 100644 --- a/packages/graphql/src/schema/elementData.ts +++ b/packages/graphql/src/schema/elementData.ts @@ -3,7 +3,15 @@ import { DisplayMode, type BaseElementData, type Choice as ChoiceType, + type ElementOptionsChoices as ElementOptionsChoicesType, + type ElementOptionsFreeText as ElementOptionsFreeTextType, + type ElementOptionsNumerical as ElementOptionsNumericalType, + type ElementOptionsSelection as ElementOptionsSelectionType, + type FreeTextRestrictions as FreeTextRestrictionsType, + type NumericalRestrictions as NumericalRestrictionsType, type NumericalSolutionRange as NumericalSolutionRangeType, + type SelectionAnswerCollectionEntry as SelectionAnswerCollectionEntryType, + type SelectionAnswerCollection as SelectionAnswerCollectionType, } from '@klicker-uzh/types' import builder from '../builder.js' @@ -23,7 +31,7 @@ export const ElementDisplayMode = builder.enumType('ElementDisplayMode', { values: Object.values(DisplayMode), }) -// ----- QUESTION OPTIONS ----- +// ----- ELEMENT OPTIONS ----- // #region export const Choice = builder.objectRef('Choice').implement({ fields: (t) => ({ @@ -34,14 +42,8 @@ export const Choice = builder.objectRef('Choice').implement({ }), }) -export interface IChoiceQuestionOptions { - displayMode: DisplayMode - hasSampleSolution?: boolean - hasAnswerFeedbacks?: boolean - choices: ChoiceType[] -} -export const ChoiceQuestionOptions = builder - .objectRef('ChoiceQuestionOptions') +export const ChoiceElementOptions = builder + .objectRef('ChoiceElementOptions') .implement({ fields: (t) => ({ displayMode: t.expose('displayMode', { type: ElementDisplayMode }), @@ -55,12 +57,8 @@ export const ChoiceQuestionOptions = builder }), }) -export interface INumericalRestrictions { - min?: number - max?: number -} export const NumericalRestrictions = builder - .objectRef('NumericalRestrictions') + .objectRef('NumericalRestrictions') .implement({ fields: (t) => ({ min: t.exposeFloat('min', { nullable: true }), @@ -77,18 +75,8 @@ export const NumericalSolutionRange = builder }), }) -export interface INumericalQuestionOptions { - hasSampleSolution?: boolean - hasAnswerFeedbacks?: boolean - accuracy?: number | null - placeholder?: string | null - unit?: string | null - restrictions?: INumericalRestrictions | null - solutionRanges?: NumericalSolutionRangeType[] | null - exactSolutions?: number[] | null -} -export const NumericalQuestionOptions = builder - .objectRef('NumericalQuestionOptions') +export const NumericalElementOptions = builder + .objectRef('NumericalElementOptions') .implement({ fields: (t) => ({ hasSampleSolution: t.exposeBoolean('hasSampleSolution', { @@ -112,25 +100,16 @@ export const NumericalQuestionOptions = builder }), }) -export interface IFreeTextRestrictions { - maxLength?: number | null -} export const FreeTextRestrictions = builder - .objectRef('FreeTextRestrictions') + .objectRef('FreeTextRestrictions') .implement({ fields: (t) => ({ maxLength: t.exposeInt('maxLength', { nullable: true }), }), }) -export interface IFreeTextQuestionOptions { - hasSampleSolution?: boolean - hasAnswerFeedbacks?: boolean - restrictions?: IFreeTextRestrictions | null - solutions?: string[] | null -} -export const FreeTextQuestionOptions = builder - .objectRef('FreeTextQuestionOptions') +export const FreeTextElementOptions = builder + .objectRef('FreeTextElementOptions') .implement({ fields: (t) => ({ hasSampleSolution: t.exposeBoolean('hasSampleSolution', { @@ -147,13 +126,9 @@ export const FreeTextQuestionOptions = builder }), }) -export interface ISelectionQuestionOptionsCollectionEntry { - id: number - value: string -} -export const SelectionQuestionOptionsCollectionEntry = builder - .objectRef( - 'SelectionQuestionOptionsCollectionEntry' +export const SelectionAnswerCollectionEntry = builder + .objectRef( + 'SelectionAnswerCollectionEntry' ) .implement({ fields: (t) => ({ @@ -162,33 +137,20 @@ export const SelectionQuestionOptionsCollectionEntry = builder }), }) -export interface ISelectionQuestionOptionsCollection { - id: number - entries?: ISelectionQuestionOptionsCollectionEntry[] | null -} -export const SelectionQuestionOptionsCollection = builder - .objectRef( - 'SelectionQuestionOptionsCollection' - ) +export const SelectionAnswerCollection = builder + .objectRef('SelectionAnswerCollection') .implement({ fields: (t) => ({ id: t.exposeInt('id'), entries: t.expose('entries', { - type: [SelectionQuestionOptionsCollectionEntry], + type: [SelectionAnswerCollectionEntry], nullable: true, }), }), }) -export interface ISelectionQuestionOptions { - hasSampleSolution?: boolean - hasAnswerFeedbacks?: boolean - numberOfInputs?: number | null - answerCollection?: ISelectionQuestionOptionsCollection | null - answerCollectionSolutionIds?: number[] | null -} -export const SelectionQuestionOptions = builder - .objectRef('SelectionQuestionOptions') +export const SelectionElementOptions = builder + .objectRef('SelectionElementOptions') .implement({ fields: (t) => ({ hasSampleSolution: t.exposeBoolean('hasSampleSolution', { @@ -199,7 +161,7 @@ export const SelectionQuestionOptions = builder }), numberOfInputs: t.exposeInt('numberOfInputs', { nullable: true }), answerCollection: t.expose('answerCollection', { - type: SelectionQuestionOptionsCollection, + type: SelectionAnswerCollection, nullable: true, }), answerCollectionSolutionIds: t.exposeIntList( @@ -238,50 +200,50 @@ export const ElementInstanceOptions = builder }) export interface IChoicesElementData extends BaseElementData { - options: IChoiceQuestionOptions + options: ElementOptionsChoicesType } export const ChoicesElementData = builder .objectRef('ChoicesElementData') .implement({ fields: (t) => ({ ...sharedElementData(t), - options: t.expose('options', { type: ChoiceQuestionOptions }), + options: t.expose('options', { type: ChoiceElementOptions }), }), }) export interface INumericalElementData extends BaseElementData { - options: INumericalQuestionOptions + options: ElementOptionsNumericalType } export const NumericalElementData = builder .objectRef('NumericalElementData') .implement({ fields: (t) => ({ ...sharedElementData(t), - options: t.expose('options', { type: NumericalQuestionOptions }), + options: t.expose('options', { type: NumericalElementOptions }), }), }) export interface IFreeTextElementData extends BaseElementData { - options: IFreeTextQuestionOptions + options: ElementOptionsFreeTextType } export const FreeTextElementData = builder .objectRef('FreeTextElementData') .implement({ fields: (t) => ({ ...sharedElementData(t), - options: t.expose('options', { type: FreeTextQuestionOptions }), + options: t.expose('options', { type: FreeTextElementOptions }), }), }) export interface ISelectionElementData extends BaseElementData { - options: ISelectionQuestionOptions + options: ElementOptionsSelectionType } export const SelectionElementData = builder .objectRef('SelectionElementData') .implement({ fields: (t) => ({ ...sharedElementData(t), - options: t.expose('options', { type: SelectionQuestionOptions }), + options: t.expose('options', { type: SelectionElementOptions }), }), }) diff --git a/packages/graphql/src/schema/question.ts b/packages/graphql/src/schema/question.ts index 1c364ee587..70fcf9afe5 100644 --- a/packages/graphql/src/schema/question.ts +++ b/packages/graphql/src/schema/question.ts @@ -1,5 +1,9 @@ import * as DB from '@klicker-uzh/prisma' import type { + ElementOptionsChoices as ElementOptionsChoicesType, + ElementOptionsFreeText as ElementOptionsFreeTextType, + ElementOptionsNumerical as ElementOptionsNumericalType, + ElementOptionsSelection as ElementOptionsSelectionType, IInstanceEvaluationChoices, IInstanceEvaluationContent, IInstanceEvaluationFlashcard, @@ -20,21 +24,17 @@ import type { import builder from '../builder.js' import { ElementFeedbackRef } from './analytics.js' import { - ChoiceQuestionOptions, + ChoiceElementOptions, ElementData, ElementDisplayMode, ElementInstanceOptions, ElementInstanceType, ElementStatus, ElementType, - FreeTextQuestionOptions, - ISelectionQuestionOptions, - NumericalQuestionOptions, + FreeTextElementOptions, + NumericalElementOptions, NumericalSolutionRange, - SelectionQuestionOptions, - type IChoiceQuestionOptions, - type IFreeTextQuestionOptions, - type INumericalQuestionOptions, + SelectionElementOptions, } from './elementData.js' import { FlashcardCorrectness } from './evaluation.js' @@ -428,50 +428,50 @@ interface IBaseElementProps extends Omit { tags?: ITag[] | null } export interface IChoicesElement extends IBaseElementProps { - options: IChoiceQuestionOptions + options: ElementOptionsChoicesType } export const ChoicesElement = builder .objectRef('ChoicesElement') .implement({ fields: (t) => ({ ...sharedElementProps(t), - options: t.expose('options', { type: ChoiceQuestionOptions }), + options: t.expose('options', { type: ChoiceElementOptions }), }), }) export interface INumericalElement extends IBaseElementProps { - options: INumericalQuestionOptions + options: ElementOptionsNumericalType } export const NumericalElement = builder .objectRef('NumericalElement') .implement({ fields: (t) => ({ ...sharedElementProps(t), - options: t.expose('options', { type: NumericalQuestionOptions }), + options: t.expose('options', { type: NumericalElementOptions }), }), }) export interface IFreeTextElement extends IBaseElementProps { - options: IFreeTextQuestionOptions + options: ElementOptionsFreeTextType } export const FreeTextElement = builder .objectRef('FreeTextElement') .implement({ fields: (t) => ({ ...sharedElementProps(t), - options: t.expose('options', { type: FreeTextQuestionOptions }), + options: t.expose('options', { type: FreeTextElementOptions }), }), }) export interface ISelectionElement extends IBaseElementProps { - options: ISelectionQuestionOptions + options: ElementOptionsSelectionType } export const SelectionElement = builder .objectRef('SelectionElement') .implement({ fields: (t) => ({ ...sharedElementProps(t), - options: t.expose('options', { type: SelectionQuestionOptions }), + options: t.expose('options', { type: SelectionElementOptions }), }), }) diff --git a/packages/shared-components/src/ChoicesQuestion.tsx b/packages/shared-components/src/ChoicesQuestion.tsx index 7aa7ffa7b7..0308745410 100644 --- a/packages/shared-components/src/ChoicesQuestion.tsx +++ b/packages/shared-components/src/ChoicesQuestion.tsx @@ -1,5 +1,5 @@ import type { - ChoiceQuestionOptions, + ChoiceElementOptions, ChoicesInstanceEvaluation, } from '@klicker-uzh/graphql/dist/ops' import { ElementType } from '@klicker-uzh/graphql/dist/ops' @@ -22,7 +22,7 @@ import { interface ChoicesQuestionProps { content: string type: ElementType.Sc | ElementType.Mc | ElementType.Kprim - options: ChoiceQuestionOptions + options: ChoiceElementOptions response?: Record setResponse: (newValue: Record, valid: boolean) => void existingResponse?: Record diff --git a/packages/shared-components/src/FreeTextQuestion.tsx b/packages/shared-components/src/FreeTextQuestion.tsx index 083ec7ddd5..1995bbb5c4 100644 --- a/packages/shared-components/src/FreeTextQuestion.tsx +++ b/packages/shared-components/src/FreeTextQuestion.tsx @@ -1,6 +1,6 @@ import type { + FreeTextElementOptions, FreeTextInstanceEvaluation, - FreeTextQuestionOptions, } from '@klicker-uzh/graphql/dist/ops' import { Markdown } from '@klicker-uzh/markdown' import React from 'react' @@ -13,7 +13,7 @@ import { validateFreeTextResponse } from './utils/validateResponse' interface FreeTextQuestionProps { content: string - options: FreeTextQuestionOptions + options: FreeTextElementOptions response?: string valid: boolean setResponse: (newValue: string, valid: boolean) => void diff --git a/packages/shared-components/src/NumericalQuestion.tsx b/packages/shared-components/src/NumericalQuestion.tsx index 263f7a3ce7..a2858cf675 100644 --- a/packages/shared-components/src/NumericalQuestion.tsx +++ b/packages/shared-components/src/NumericalQuestion.tsx @@ -1,6 +1,6 @@ import type { + NumericalElementOptions, NumericalInstanceEvaluation, - NumericalQuestionOptions, } from '@klicker-uzh/graphql/dist/ops' import { Markdown } from '@klicker-uzh/markdown' import React from 'react' @@ -13,7 +13,7 @@ import { validateNumericalResponse } from './utils/validateResponse' interface NumericalQuestionProps { content: string - options: NumericalQuestionOptions + options: NumericalElementOptions response?: string valid: boolean setResponse: (newValue: string, valid: boolean) => void diff --git a/packages/shared-components/src/SelectionQuestion.tsx b/packages/shared-components/src/SelectionQuestion.tsx index f6fcbe238f..9ccf6d2bf2 100644 --- a/packages/shared-components/src/SelectionQuestion.tsx +++ b/packages/shared-components/src/SelectionQuestion.tsx @@ -1,6 +1,6 @@ import type { + SelectionElementOptions, SelectionInstanceEvaluation, - SelectionQuestionOptions, } from '@klicker-uzh/graphql/dist/ops' import { Markdown } from '@klicker-uzh/markdown' import React, { useMemo } from 'react' @@ -15,7 +15,7 @@ import { validateSelectionResponse } from './utils/validateResponse' interface SelectionQuestionProps { content: string - options: SelectionQuestionOptions + options: SelectionElementOptions response?: Record valid: boolean setResponse: (newValue: Record, valid: boolean) => void diff --git a/packages/shared-components/src/evaluation/FTEvaluation.tsx b/packages/shared-components/src/evaluation/FTEvaluation.tsx index 9d6370d68f..eed2524b0b 100644 --- a/packages/shared-components/src/evaluation/FTEvaluation.tsx +++ b/packages/shared-components/src/evaluation/FTEvaluation.tsx @@ -1,12 +1,12 @@ import type { + FreeTextElementOptions, FreeTextInstanceEvaluation, - FreeTextQuestionOptions, } from '@klicker-uzh/graphql/dist/ops' import { useTranslations } from 'next-intl' import React from 'react' interface FTEvaluationProps { - options: FreeTextQuestionOptions + options: FreeTextElementOptions evaluation: FreeTextInstanceEvaluation } diff --git a/packages/shared-components/src/evaluation/NREvaluation.tsx b/packages/shared-components/src/evaluation/NREvaluation.tsx index 423899bc7e..5745ea8614 100644 --- a/packages/shared-components/src/evaluation/NREvaluation.tsx +++ b/packages/shared-components/src/evaluation/NREvaluation.tsx @@ -1,14 +1,14 @@ import { ElementType, + type NumericalElementOptions, type NumericalInstanceEvaluation, - type NumericalQuestionOptions, } from '@klicker-uzh/graphql/dist/ops' import { useTranslations } from 'next-intl' import React from 'react' import ElementHistogram from '../charts/ElementHistogram' interface NREvaluationProps { - options: NumericalQuestionOptions + options: NumericalElementOptions evaluation: NumericalInstanceEvaluation reference?: string } diff --git a/packages/shared-components/src/evaluation/SEEvaluation.tsx b/packages/shared-components/src/evaluation/SEEvaluation.tsx index 1704600190..745fa5ae20 100644 --- a/packages/shared-components/src/evaluation/SEEvaluation.tsx +++ b/packages/shared-components/src/evaluation/SEEvaluation.tsx @@ -1,6 +1,6 @@ import type { + SelectionElementOptions, SelectionInstanceEvaluation, - SelectionQuestionOptions, } from '@klicker-uzh/graphql/dist/ops' import type { SingleSelectionResponse } from '@klicker-uzh/types' import { Progress } from '@uzh-bf/design-system' @@ -14,7 +14,7 @@ function SEEValuation({ options, }: { evaluation: SelectionInstanceEvaluation - options: SelectionQuestionOptions + options: SelectionElementOptions }) { const t = useTranslations() diff --git a/packages/shared-components/src/questions/SELECTIONAnswerOptions.tsx b/packages/shared-components/src/questions/SELECTIONAnswerOptions.tsx index 364f18981f..32558d6f10 100644 --- a/packages/shared-components/src/questions/SELECTIONAnswerOptions.tsx +++ b/packages/shared-components/src/questions/SELECTIONAnswerOptions.tsx @@ -1,4 +1,4 @@ -import type { SelectionQuestionOptions } from '@klicker-uzh/graphql/dist/ops' +import type { SelectionElementOptions } from '@klicker-uzh/graphql/dist/ops' import { FormLabel } from '@uzh-bf/design-system' import { useTranslations } from 'next-intl' import React, { useMemo } from 'react' @@ -8,7 +8,7 @@ import { twMerge } from 'tailwind-merge' interface SELECTIONAnswerOptionsProps { responses: Record onChange: (newValue: Record) => void - options: SelectionQuestionOptions + options: SelectionElementOptions elementIx: number disabled: boolean preview: boolean diff --git a/packages/shared-components/src/utils/validateResponse.ts b/packages/shared-components/src/utils/validateResponse.ts index ec601e8f47..1b272791d0 100644 --- a/packages/shared-components/src/utils/validateResponse.ts +++ b/packages/shared-components/src/utils/validateResponse.ts @@ -1,6 +1,6 @@ import type { - FreeTextQuestionOptions, - NumericalQuestionOptions, + FreeTextElementOptions, + NumericalElementOptions, } from '@klicker-uzh/graphql/dist/ops' export function validateScResponse(response?: Record) { @@ -33,7 +33,7 @@ export function validateNumericalResponse({ options, }: { response?: string - options: NumericalQuestionOptions + options: NumericalElementOptions }) { if (!response) return false @@ -67,7 +67,7 @@ export function validateFreeTextResponse({ options, }: { response?: string - options: FreeTextQuestionOptions + options: FreeTextElementOptions }) { if (!response || response.length == 0) { return false diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index 4abcfddeae..7fe370c58d 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -196,49 +196,55 @@ export type Choice = { feedback?: string } +export type NumericalRestrictions = { + min?: number | null + max?: number | null +} + export type NumericalSolutionRange = { min?: number | null max?: number | null } -interface BaseQuestionOptions { +interface BaseElementOptions { hasSampleSolution?: boolean hasAnswerFeedbacks?: boolean } -export interface ElementOptionsChoices extends BaseQuestionOptions { +export interface ElementOptionsChoices extends BaseElementOptions { choices: Choice[] displayMode: DisplayMode } -export interface ElementOptionsNumerical extends BaseQuestionOptions { +export interface ElementOptionsNumerical extends BaseElementOptions { unit?: string | null - accuracy?: number - placeholder?: string - restrictions?: { - min?: number - max?: number - } - solutionRanges?: NumericalSolutionRange[] - exactSolutions?: number[] + accuracy?: number | null + placeholder?: string | null + restrictions?: NumericalRestrictions | null + solutionRanges?: NumericalSolutionRange[] | null + exactSolutions?: number[] | null } -export interface ElementOptionsFreeText extends BaseQuestionOptions { - solutions?: string[] - restrictions?: { - maxLength?: number | null - } +export type FreeTextRestrictions = { + maxLength?: number | null +} + +export interface ElementOptionsFreeText extends BaseElementOptions { + restrictions?: FreeTextRestrictions | null + solutions?: string[] | null +} + +export type SelectionAnswerCollectionEntry = { + id: number + value: string } export interface SelectionAnswerCollection { id: number - entries: { - id: number - value: string - }[] + entries: SelectionAnswerCollectionEntry[] } -export interface ElementOptionsSelection extends BaseQuestionOptions { +export interface ElementOptionsSelection extends BaseElementOptions { numberOfInputs?: number answerCollection?: SelectionAnswerCollection answerCollectionSolutionIds?: number[] | null