diff --git a/src/components/Properties/Nodes/CodingQuestionNodeProperties.tsx b/src/components/Properties/Nodes/CodingQuestionNodeProperties.tsx index 0d17e64..6a1a2b7 100644 --- a/src/components/Properties/Nodes/CodingQuestionNodeProperties.tsx +++ b/src/components/Properties/Nodes/CodingQuestionNodeProperties.tsx @@ -9,7 +9,7 @@ const CodingQuestionNodeProperties = () => { return ( <> @@ -24,8 +24,8 @@ const CodingQuestionNodeProperties = () => { constraints={{ onChange: (event) => setLanguage(event.target.value) }} options={ <> - - + + } /> diff --git a/src/types/polyglotElements/elementMapping.tsx b/src/types/polyglotElements/elementMapping.tsx index 8e79c9c..ddc78aa 100644 --- a/src/types/polyglotElements/elementMapping.tsx +++ b/src/types/polyglotElements/elementMapping.tsx @@ -21,6 +21,7 @@ type ElementToReactFlowComponentMapping = { }; type ElementToNameMapping = { [elementType: string]: string }; type ElementToIconMapping = { [elementType: string]: string | undefined }; +type ElementToPlatformMapping = { [elementType: string]: string | undefined }; type ElementToGroupMapping = { [elementType: string]: string | undefined }; type ElementToDefaultDataMapping = { [elementType: string]: T }; type ElementToTransformDataMapping = { @@ -33,6 +34,7 @@ type MappingType = { name: string; icon?: string; group?: string; + platform?: string; propertiesComponent: PropertiesComponent; elementComponent: ReactFlowComponent; defaultData: K['data'] & V['data']; @@ -44,6 +46,7 @@ class PolyglotComponentMapping { private _elementMapping: ElementToReactFlowComponentMapping = {}; private _nameMapping: ElementToNameMapping = {}; private _iconMapping: ElementToIconMapping = {}; + private _defaulPlatformMapping: ElementToPlatformMapping = {}; private _groupMapping: ElementToGroupMapping = {}; private _defaultDataMapping: ElementToDefaultDataMapping = {}; private _transformMapping: ElementToTransformDataMapping = {}; @@ -55,6 +58,7 @@ class PolyglotComponentMapping { name, icon, group, + platform, propertiesComponent, elementComponent, defaultData, @@ -69,6 +73,7 @@ class PolyglotComponentMapping { this._elementMapping[elementType] = elementComponent; this._nameMapping[elementType] = name; this._iconMapping[elementType] = icon; + this._defaulPlatformMapping[elementType] = platform; this._groupMapping[elementType] = group; this._defaultDataMapping[elementType] = defaultData; this._transformMapping[elementType] = transformData; @@ -90,6 +95,10 @@ class PolyglotComponentMapping { return this._iconMapping; } + get defaultPlatformMapping(): Readonly { + return this._defaulPlatformMapping; + } + get groupMapping(): Readonly { return this._groupMapping; } diff --git a/src/types/polyglotElements/nodes/AnalyzingPlottingDataNode.ts b/src/types/polyglotElements/nodes/AnalyzingPlottingDataNode.ts index 450557e..ac06448 100644 --- a/src/types/polyglotElements/nodes/AnalyzingPlottingDataNode.ts +++ b/src/types/polyglotElements/nodes/AnalyzingPlottingDataNode.ts @@ -18,6 +18,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Analyzing-Plotting Data', icon: icon.src, group: 'apply_assessment', + platform: 'WebApp', propertiesComponent: AnalyzingPlottingDataNodeProperties, elementComponent: ReactFlowAnalyzingPlottingDataNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/BrainstormingNode.ts b/src/types/polyglotElements/nodes/BrainstormingNode.ts index e1d7573..d44c3b1 100644 --- a/src/types/polyglotElements/nodes/BrainstormingNode.ts +++ b/src/types/polyglotElements/nodes/BrainstormingNode.ts @@ -21,6 +21,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Brainstorming', icon: icon.src, group: 'create_assessment', + platform: 'WebApp', propertiesComponent: BrainstormingNodeProperties, elementComponent: ReactFlowBrainstormingNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/CalculationNode.ts b/src/types/polyglotElements/nodes/CalculationNode.ts index a2169c0..d833cdf 100644 --- a/src/types/polyglotElements/nodes/CalculationNode.ts +++ b/src/types/polyglotElements/nodes/CalculationNode.ts @@ -19,6 +19,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Calculation', icon: icon.src, group: 'apply_assessment', + platform: 'WebApp', propertiesComponent: CalculationNodeProperties, elementComponent: ReactFlowCalculationNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/CasesEvaluationNode.ts b/src/types/polyglotElements/nodes/CasesEvaluationNode.ts index 80594b6..6c72c9d 100644 --- a/src/types/polyglotElements/nodes/CasesEvaluationNode.ts +++ b/src/types/polyglotElements/nodes/CasesEvaluationNode.ts @@ -21,6 +21,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Cases Evaluation', icon: icon.src, group: 'understand_assessment', + platform: 'WebApp', propertiesComponent: CasesEvaluationNodeProperties, elementComponent: ReactFlowCasesEvaluationNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/CloseEndedQuestionNode.ts b/src/types/polyglotElements/nodes/CloseEndedQuestionNode.ts index d76d76f..a569ac0 100644 --- a/src/types/polyglotElements/nodes/CloseEndedQuestionNode.ts +++ b/src/types/polyglotElements/nodes/CloseEndedQuestionNode.ts @@ -21,6 +21,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Close Ended Question', icon: icon.src, group: 'remember_assessment', + platform: 'WebApp', propertiesComponent: CloseEndedQuestionNodeProperties, elementComponent: ReactFlowCloseEndedQuestionNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/CodingQuestionNode.ts b/src/types/polyglotElements/nodes/CodingQuestionNode.ts index 2101859..449f939 100644 --- a/src/types/polyglotElements/nodes/CodingQuestionNode.ts +++ b/src/types/polyglotElements/nodes/CodingQuestionNode.ts @@ -20,6 +20,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Coding Question', icon: icon.src, group: 'create_assessment', + platform: 'CodingWebApp', propertiesComponent: CodingQuestionNodeProperties, elementComponent: ReactFlowCodingQuestionNode, defaultData: { @@ -30,7 +31,7 @@ int main() { Console.WriteLine("Hello World!"); return 0; }`, - language: 'csharp', + language: 'javascript', ...defaultPolyglotNodeData, }, }); diff --git a/src/types/polyglotElements/nodes/CollaborativeModelingNode.ts b/src/types/polyglotElements/nodes/CollaborativeModelingNode.ts index 6a13706..63a9f2f 100644 --- a/src/types/polyglotElements/nodes/CollaborativeModelingNode.ts +++ b/src/types/polyglotElements/nodes/CollaborativeModelingNode.ts @@ -19,6 +19,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Collaborative Modeling', icon: icon.src, group: 'understand_assessment', + platform: 'WebApp', propertiesComponent: CollaborativeModelingNodeProperties, elementComponent: ReactFlowCollaborativeModelingNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/CreateKeywordsListNode.ts b/src/types/polyglotElements/nodes/CreateKeywordsListNode.ts index 1a4bc52..c172bff 100644 --- a/src/types/polyglotElements/nodes/CreateKeywordsListNode.ts +++ b/src/types/polyglotElements/nodes/CreateKeywordsListNode.ts @@ -24,6 +24,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Create keywords list', icon: icon.src, group: 'remember_learning', + platform: 'WebApp', propertiesComponent: CreateKeywordsListNodeProperties, elementComponent: ReactFlowCreateKeywordsListNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/FindSolutionNode.ts b/src/types/polyglotElements/nodes/FindSolutionNode.ts index 4fd7f53..4cccf19 100644 --- a/src/types/polyglotElements/nodes/FindSolutionNode.ts +++ b/src/types/polyglotElements/nodes/FindSolutionNode.ts @@ -26,6 +26,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Find Solution', icon: icon.src, group: 'create_learning', + platform: 'WebApp', propertiesComponent: FindSolutionNodeProperties, elementComponent: ReactFlowFindSolutionNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/FlowChartNode.ts b/src/types/polyglotElements/nodes/FlowChartNode.ts index bfcc0e0..57434e3 100644 --- a/src/types/polyglotElements/nodes/FlowChartNode.ts +++ b/src/types/polyglotElements/nodes/FlowChartNode.ts @@ -19,6 +19,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Flow Chart', icon: icon.src, group: 'understand_assessment', + platform: 'WebApp', propertiesComponent: FlowChartNodeProperties, elementComponent: ReactFlowFlowChartNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/ImageEvaluationNode.ts b/src/types/polyglotElements/nodes/ImageEvaluationNode.ts index 4fbd066..84d496a 100644 --- a/src/types/polyglotElements/nodes/ImageEvaluationNode.ts +++ b/src/types/polyglotElements/nodes/ImageEvaluationNode.ts @@ -22,6 +22,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Image Evaluation', icon: icon.src, group: 'apply_assessment', + platform: 'WebApp', propertiesComponent: ImageEvaluationNodeProperties, elementComponent: ReactFlowImageEvaluationNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/InnovationPitchNode.ts b/src/types/polyglotElements/nodes/InnovationPitchNode.ts index b078e87..b482bab 100644 --- a/src/types/polyglotElements/nodes/InnovationPitchNode.ts +++ b/src/types/polyglotElements/nodes/InnovationPitchNode.ts @@ -21,6 +21,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Innovation Pitch', icon: icon.src, group: 'create_assessment', + platform: 'WebApp', propertiesComponent: InnovationPitchNodeProperties, elementComponent: ReactFlowInnovationPitchNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/LessonTextNode.ts b/src/types/polyglotElements/nodes/LessonTextNode.ts index 0f17a5a..e7a1725 100644 --- a/src/types/polyglotElements/nodes/LessonTextNode.ts +++ b/src/types/polyglotElements/nodes/LessonTextNode.ts @@ -18,6 +18,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Lesson (Text)', icon: icon.src, group: ' ', + platform: 'WebApp', propertiesComponent: LessonTextNodeProperties, elementComponent: ReactFlowLessonNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/MemoriseKeywordsListNode.ts b/src/types/polyglotElements/nodes/MemoriseKeywordsListNode.ts index 2e6b216..1a0010b 100644 --- a/src/types/polyglotElements/nodes/MemoriseKeywordsListNode.ts +++ b/src/types/polyglotElements/nodes/MemoriseKeywordsListNode.ts @@ -25,6 +25,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Memorise keywords list', icon: icon.src, group: 'remember_learning', + platform: 'WebApp', propertiesComponent: MemoriseKeywordsListNodeProperties, elementComponent: ReactFlowMemoriseKeywordsListNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/MindMapNode.ts b/src/types/polyglotElements/nodes/MindMapNode.ts index dc7015b..57cda58 100644 --- a/src/types/polyglotElements/nodes/MindMapNode.ts +++ b/src/types/polyglotElements/nodes/MindMapNode.ts @@ -26,6 +26,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'MindMap', icon: icon.src, group: 'understand_learning', + platform: 'WebApp', propertiesComponent: MindMapNodeProperties, elementComponent: ReactFlowMindMapNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/MultipleChoiceQuestionNode.ts b/src/types/polyglotElements/nodes/MultipleChoiceQuestionNode.ts index 10bbf6b..e802bc9 100644 --- a/src/types/polyglotElements/nodes/MultipleChoiceQuestionNode.ts +++ b/src/types/polyglotElements/nodes/MultipleChoiceQuestionNode.ts @@ -20,6 +20,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Multiple Choice Question', icon: icon.src, group: 'remember_assessment', + platform: 'WebApp', propertiesComponent: MultipleChoiceQuestionNodeProperties, elementComponent: ReactFlowMultipleChoiceQuestionNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/NewTypeNode.ts b/src/types/polyglotElements/nodes/NewTypeNode.ts index c2226d1..72bfcc6 100644 --- a/src/types/polyglotElements/nodes/NewTypeNode.ts +++ b/src/types/polyglotElements/nodes/NewTypeNode.ts @@ -21,6 +21,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'New Type xText', icon: icon.src, group: '', + platform: 'WebApp', propertiesComponent: NewTypeNodeProperties, elementComponent: ReactFlowNewTypeNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/OpenQuestionNode.ts b/src/types/polyglotElements/nodes/OpenQuestionNode.ts index 74a9fe2..d61a04a 100644 --- a/src/types/polyglotElements/nodes/OpenQuestionNode.ts +++ b/src/types/polyglotElements/nodes/OpenQuestionNode.ts @@ -20,6 +20,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Open Question', icon: icon.src, group: 'remember_assessment', + platform: 'WebApp', propertiesComponent: OpenQuestionNodeProperties, elementComponent: ReactFlowOpenQuestionNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/ProblemSolvingNode.ts b/src/types/polyglotElements/nodes/ProblemSolvingNode.ts index 02d2343..a1811ee 100644 --- a/src/types/polyglotElements/nodes/ProblemSolvingNode.ts +++ b/src/types/polyglotElements/nodes/ProblemSolvingNode.ts @@ -26,6 +26,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Problem Solving', icon: icon.src, group: 'apply_learning', + platform: 'WebApp', propertiesComponent: ProblemSolvingNodeProperties, elementComponent: ReactFlowProblemSolvingNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/PromptEngineeringNode.ts b/src/types/polyglotElements/nodes/PromptEngineeringNode.ts index 33c2801..2200958 100644 --- a/src/types/polyglotElements/nodes/PromptEngineeringNode.ts +++ b/src/types/polyglotElements/nodes/PromptEngineeringNode.ts @@ -26,6 +26,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Prompt Engineering', icon: icon.src, group: 'apply_learning', + platform: 'WebApp', propertiesComponent: PromptEngineeringNodeProperties, elementComponent: ReactFlowPromptEngineeringNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/ReadMaterialNode.ts b/src/types/polyglotElements/nodes/ReadMaterialNode.ts index 6a85739..ee6b5cb 100644 --- a/src/types/polyglotElements/nodes/ReadMaterialNode.ts +++ b/src/types/polyglotElements/nodes/ReadMaterialNode.ts @@ -19,6 +19,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Read material', icon: icon.src, group: 'remember_learning', + platform: 'WebApp', propertiesComponent: ReadMaterialNodeProperties, elementComponent: ReactFlowReadMaterialNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/ScanningNode.ts b/src/types/polyglotElements/nodes/ScanningNode.ts index 15295b6..b8591ea 100644 --- a/src/types/polyglotElements/nodes/ScanningNode.ts +++ b/src/types/polyglotElements/nodes/ScanningNode.ts @@ -18,6 +18,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'AR Scan', icon: icon.src, group: 'understand_learning', + platform: 'MuNDAR', propertiesComponent: ScanningNodeProperties, elementComponent: ReactFlowScanningNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/SimulationNode.ts b/src/types/polyglotElements/nodes/SimulationNode.ts index f76b18b..204a09f 100644 --- a/src/types/polyglotElements/nodes/SimulationNode.ts +++ b/src/types/polyglotElements/nodes/SimulationNode.ts @@ -19,6 +19,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Simulation', icon: icon.src, group: 'create_assessment', + platform: 'WebApp', propertiesComponent: SimulationNodeProperties, elementComponent: ReactFlowSimulationNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/SummaryNode.ts b/src/types/polyglotElements/nodes/SummaryNode.ts index 587c8ec..125b68a 100644 --- a/src/types/polyglotElements/nodes/SummaryNode.ts +++ b/src/types/polyglotElements/nodes/SummaryNode.ts @@ -20,6 +20,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Summary', icon: icon.src, group: 'understand_learning', + platform: 'WebApp', propertiesComponent: SummaryNodeProperties, elementComponent: ReactFlowSummaryNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/TrueFalseNode.ts b/src/types/polyglotElements/nodes/TrueFalseNode.ts index 472229f..c8b72de 100644 --- a/src/types/polyglotElements/nodes/TrueFalseNode.ts +++ b/src/types/polyglotElements/nodes/TrueFalseNode.ts @@ -22,6 +22,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'True False', icon: icon.src, group: 'remember_assessment', + platform: 'WebApp', propertiesComponent: TrueFalseNodeProperties, elementComponent: ReactFlowTrueFalseNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/UMLModelingNode.ts b/src/types/polyglotElements/nodes/UMLModelingNode.ts index aeee85f..06f51af 100644 --- a/src/types/polyglotElements/nodes/UMLModelingNode.ts +++ b/src/types/polyglotElements/nodes/UMLModelingNode.ts @@ -24,6 +24,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'UML Modeling', icon: icon.src, group: 'understand_assessment', + platform: 'PapyrusWeb', propertiesComponent: UMLModelingNodeProperties, elementComponent: ReactFlowUMLModelingNode, defaultData: { diff --git a/src/types/polyglotElements/nodes/WatchVideoNode.ts b/src/types/polyglotElements/nodes/WatchVideoNode.ts index ec6b76a..aa57df2 100644 --- a/src/types/polyglotElements/nodes/WatchVideoNode.ts +++ b/src/types/polyglotElements/nodes/WatchVideoNode.ts @@ -18,6 +18,7 @@ polyglotNodeComponentMapping.registerMapping({ name: 'Watch Video', icon: icon.src, group: 'remember_learning', + platform: 'WebApp', propertiesComponent: WatchVideoNodeProperties, elementComponent: ReactFlowWatchVideoNode, defaultData: { diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 30fb5c4..2958e84 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -79,6 +79,7 @@ export const createNewDefaultPolyglotNode: ( title: 'New Node', description: '', difficulty: 1, + platform: polyglotNodeComponentMapping.defaultPlatformMapping[nodeType], data: polyglotNodeComponentMapping.defaultDataMapping[nodeType], reactFlow: { id: id, @@ -101,6 +102,7 @@ const configUnconditionalEdge = [ 'MemoriseKeywordsListNode', 'PromptEngineeringNode', 'ProblemSolvingNode', + 'CodingQuestionNode', ]; export const createNewDefaultPolyglotEdge = (