diff --git a/dist.zip b/dist.zip
new file mode 100644
index 0000000..d0ebd0e
Binary files /dev/null and b/dist.zip differ
diff --git a/index.html b/index.html
index 4f58a3e..be19b64 100644
--- a/index.html
+++ b/index.html
@@ -3,6 +3,7 @@
+
ALADIN
+
+
diff --git a/src/components/taskComponents/Bild.vue b/src/components/taskComponents/Bild.vue
new file mode 100644
index 0000000..79b561f
--- /dev/null
+++ b/src/components/taskComponents/Bild.vue
@@ -0,0 +1,314 @@
+
+
+
![Bild konnte nicht hochgeladen werden!!!]()
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/taskComponents/Charts/Chart.vue b/src/components/taskComponents/Charts/Chart.vue
new file mode 100644
index 0000000..aba83da
--- /dev/null
+++ b/src/components/taskComponents/Charts/Chart.vue
@@ -0,0 +1,223 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/taskComponents/CheckboxGroup.vue b/src/components/taskComponents/CheckboxGroup.vue
new file mode 100644
index 0000000..40bb4c7
--- /dev/null
+++ b/src/components/taskComponents/CheckboxGroup.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/taskComponents/Diagramm/diagramm.vue b/src/components/taskComponents/Diagramm/diagramm.vue
new file mode 100644
index 0000000..4b6a3cc
--- /dev/null
+++ b/src/components/taskComponents/Diagramm/diagramm.vue
@@ -0,0 +1,168 @@
+
+
+
{{ title }}
+
+
+
+
No data available to display.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/taskComponents/EchtButton.vue b/src/components/taskComponents/EchtButton.vue
new file mode 100644
index 0000000..a40e615
--- /dev/null
+++ b/src/components/taskComponents/EchtButton.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/taskComponents/LatexFormula.vue b/src/components/taskComponents/LatexFormula.vue
new file mode 100644
index 0000000..b4f4dbb
--- /dev/null
+++ b/src/components/taskComponents/LatexFormula.vue
@@ -0,0 +1,497 @@
+
+
+
+
+
+
+
+
+
+
+
Formel-Eingabe:
+
+
+
+
LaTex-Vorschau:
+
+
+
+
+
+
+
+
LaTex-Eingabe:
+
+
+
+
Formel-Vorschau:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/taskComponents/LatexFormular2.vue b/src/components/taskComponents/LatexFormular2.vue
new file mode 100644
index 0000000..fbf87e3
--- /dev/null
+++ b/src/components/taskComponents/LatexFormular2.vue
@@ -0,0 +1,129 @@
+
+ MathLive with Vue
+
+
+
+
+
+ LaTeX: {{ formula }}
+
+
+ Gerenderte Formel:
+
+
+
+
+
+
+
diff --git a/src/components/taskComponents/TaskConfiguration.vue b/src/components/taskComponents/TaskConfiguration.vue
index 5aae054..ef3b7fc 100644
--- a/src/components/taskComponents/TaskConfiguration.vue
+++ b/src/components/taskComponents/TaskConfiguration.vue
@@ -10,6 +10,7 @@ import { computed, watch } from "vue";
import DifficultyPicker from "@/components/taskComponents/DifficultyPicker.vue";
import ParameterSelection from "@/components/taskComponents/ParameterSelection.vue";
+
export default {
props: {
componentID: Number,
@@ -17,7 +18,7 @@ export default {
},
components: {
DifficultyPicker,
- ParameterSelection
+ ParameterSelection,
},
setup(props) {
const { store, getProperty, setProperty } = props.storeObject;
@@ -25,12 +26,16 @@ export default {
const currentNode = computed(() => getProperty("currentNode"));
const taskData = computed(() => getProperty("taskData"));
-
+
+
+
watch(taskData, () => {
setProperty({ path: `nodes__${currentNode.value}__components__${props.componentID}__isValid`, value: true });
});
- return { isAdvancedUser, props };
+ return { isAdvancedUser,
+ props,
+ };
}
};
diff --git a/src/components/taskComponents/TaskViewer.vue b/src/components/taskComponents/TaskViewer.vue
new file mode 100644
index 0000000..09de04f
--- /dev/null
+++ b/src/components/taskComponents/TaskViewer.vue
@@ -0,0 +1,134 @@
+
+
+
+
{{ heading }}
+
+
+
+
+
+
{{ categoryKey }}
+
+ -
+
+ {{ key1 }}:
+ -
+ {{ key }}: {{ value }}
+
+
+
+ -
+ {{ key1 }}: {{ value1 }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/taskComponents/absolutInputsOnImage.vue b/src/components/taskComponents/absolutInputsOnImage.vue
new file mode 100644
index 0000000..27b591b
--- /dev/null
+++ b/src/components/taskComponents/absolutInputsOnImage.vue
@@ -0,0 +1,253 @@
+
+
+
![Bild konnte nicht hochgeladen werden!!!]()
+
+
+
+ {{ tooltipMessage }}
+
+
+
+
+
+
+
+
diff --git a/src/components/taskComponents/form/DropdownFormField.vue b/src/components/taskComponents/form/DropdownFormField.vue
index 88d3b66..fc35ecf 100644
--- a/src/components/taskComponents/form/DropdownFormField.vue
+++ b/src/components/taskComponents/form/DropdownFormField.vue
@@ -1,13 +1,16 @@
-
+
+
+
@@ -51,4 +114,5 @@ select {
text-align-last: center;
text-align: center;
}
+
diff --git a/src/components/taskComponents/form/DualSlider.vue b/src/components/taskComponents/form/DualSlider.vue
index 178c248..904c0c3 100644
--- a/src/components/taskComponents/form/DualSlider.vue
+++ b/src/components/taskComponents/form/DualSlider.vue
@@ -1,11 +1,28 @@
+
+
+
+
@@ -39,12 +111,13 @@ export default {
diff --git a/src/components/taskComponents/form/ValueFormField.vue b/src/components/taskComponents/form/ValueFormField.vue
index 1747cb4..111e271 100644
--- a/src/components/taskComponents/form/ValueFormField.vue
+++ b/src/components/taskComponents/form/ValueFormField.vue
@@ -6,11 +6,13 @@
:step="element.step"
oninput="this.reportValidity()"
@keyup="emitEvent"
+ @focus="selectText"
+ :readonly="isreadOnly === true ? true : false"
/>
diff --git a/src/components/taskComponents/form/validation.ts b/src/components/taskComponents/form/validation.ts
index 006b1a3..01cf966 100644
--- a/src/components/taskComponents/form/validation.ts
+++ b/src/components/taskComponents/form/validation.ts
@@ -28,6 +28,7 @@ export const evaluateValue = (props: { elementId: number; element: any }) => {
const input: HTMLInputElement = document.querySelector(`.${props.elementId}__value`);
const value = parseFloat(input.value.replace(",", "."));
const condition = value >= min && value <= max;
-
+ //console.error(min,max);
+ //console.error(input.value,value);
setValidity(input, condition);
};
diff --git a/src/components/taskComponents/math/LinearAlgebra/Matrix.vue b/src/components/taskComponents/math/LinearAlgebra/Matrix.vue
index ad4d099..ca98a40 100644
--- a/src/components/taskComponents/math/LinearAlgebra/Matrix.vue
+++ b/src/components/taskComponents/math/LinearAlgebra/Matrix.vue
@@ -1,48 +1,63 @@
-
-
-
-
- {{ label }}
- |
-
-
- |
- {{ rowLabel[i] }}
- |
-
-
- |
-
-
+
+
+
+
+
+ {{ label }}
+ {{ tooltipMessage }}
+ |
+
+
+ |
+ {{ rowLabel[0] +" "+(i+1)}}
+ {{ rowLabel[i] }}
+ |
+
+
+ |
+
+
+
diff --git a/src/components/taskComponents/math/LinearAlgebra/Matrix/Matrix.vue b/src/components/taskComponents/math/LinearAlgebra/Matrix/Matrix.vue
index 1515a6f..2e5f8f4 100644
--- a/src/components/taskComponents/math/LinearAlgebra/Matrix/Matrix.vue
+++ b/src/components/taskComponents/math/LinearAlgebra/Matrix/Matrix.vue
@@ -116,4 +116,4 @@ th {
input[disabled] {
background: lightgrey;
}
-
+
\ No newline at end of file
diff --git a/src/components/taskComponents/math/LinearAlgebra/Matrix/MatrixField.vue b/src/components/taskComponents/math/LinearAlgebra/Matrix/MatrixField.vue
index ec2885b..c21ead1 100644
--- a/src/components/taskComponents/math/LinearAlgebra/Matrix/MatrixField.vue
+++ b/src/components/taskComponents/math/LinearAlgebra/Matrix/MatrixField.vue
@@ -94,4 +94,4 @@ watch(
text-align: center;
padding: 5px;
}
-
+
\ No newline at end of file
diff --git a/src/components/taskComponents/math/LinearAlgebra/MatrixField.vue b/src/components/taskComponents/math/LinearAlgebra/MatrixField.vue
index 4635988..c98b708 100644
--- a/src/components/taskComponents/math/LinearAlgebra/MatrixField.vue
+++ b/src/components/taskComponents/math/LinearAlgebra/MatrixField.vue
@@ -2,11 +2,13 @@
@@ -18,10 +20,13 @@ export default {
rowIndex: Number,
columnIndex: Number,
isReadOnly: Boolean,
+ isFieldReadOnly: Boolean,
element: Number,
storeObject: Object,
componentID: Number,
- inputType: String
+ inputType: String,
+ min: Number,
+ max: Number
},
setup(props) {
const { store, getProperty, setProperty } = props.storeObject;
@@ -46,8 +51,24 @@ export default {
const element = event.target;
const { index } = <{ index: string }>element.dataset;
const [column, row] = index.split(",");
- let value = element.value === "" ? null : props.inputType === "number" ? parseInt(element.value) : element.value;
+ let value = element.value === "" ? null : props.inputType === "number" ? parseFloat(element.value) : element.value;
+ if (value !== null && props.inputType === "number") {
+ value = value.toString();
+ if (value.includes(",")) {
+ // Ersetze das Komma mit einem Punkt, um es in eine gültige Zahl umzuwandeln
+ value = value.replace(",", ".");
+ }
+ // Versuche nun, den Wert als Zahl zu parsen
+ value = parseFloat(value);
+ }
+ else {
+ element.value = element.min;
+ value = element.value;
+ }
+ //Zum Test
+ console.log("Test MatrixField: ",value);
setProperty({ path: `${componentPath}__userData__${column}__${row}`, value });
+ checkValidity(event);
};
const setVisualCorrectness = (isCorrect: boolean, isSet: boolean, rowIndex: number, columnIndex: number) => {
@@ -127,13 +148,37 @@ export default {
}
}
);
-
- return { updateField };
+ const checkValidity = (event: Event) => {
+ const element = event.target;
+ const value = element.value ? parseFloat(element.value) : null;
+
+ if (value < props.min || value > props.max) {
+ element.classList.add('out-of-range');
+ element.classList.remove('in-range');
+ let value:boolean = false;
+ setProperty({ path: `nodes__${currentNode.value}__components__${props.componentID}__isValid`, value });
+ } else {
+ element.classList.remove('out-of-range');
+ element.classList.add('in-range');
+ let value:boolean = true;
+ setProperty({ path: `nodes__${currentNode.value}__components__${props.componentID}__isValid`, value });
+ }
+ };
+
+
+ return { updateField , checkValidity };
}
};