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 = (