diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WCodeMirror.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WCodeMirror.vue
index 40e8b6d0..8a9d65fd 100644
--- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WCodeMirror.vue
+++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WCodeMirror.vue
@@ -66,7 +66,7 @@ import { sql } from '@codemirror/lang-sql';
import { xml, xmlLanguage } from '@codemirror/lang-xml';
import PlaceholderPlugin from './w-code-mirror/PlaceholderPlugin';
-import Toolbar from '@/platform/components/expression/toolbar/Toolbar.vue';
+import Toolbar from '@/platform/components/math/toolbar/Toolbar.vue';
const modelValueRef = defineModel({ type: String, default: '' });
diff --git a/io.sc.platform.core.frontend/src/platform/components/index.ts b/io.sc.platform.core.frontend/src/platform/components/index.ts
index 8878a253..4389181a 100644
--- a/io.sc.platform.core.frontend/src/platform/components/index.ts
+++ b/io.sc.platform.core.frontend/src/platform/components/index.ts
@@ -50,6 +50,7 @@ import WSelectAssigneeDialog from './workflow/WSelectAssigneeDialog.vue';
import WEcharts from './echarts/WEcharts.vue';
import WExpression from './expression/WExpression.vue';
+import WMath from './math/WMath.vue';
import WHtmlA from './html/WHtmlA.vue';
@@ -105,6 +106,7 @@ export default {
app.component('WEcharts', WEcharts);
app.component('WExpression', WExpression);
+ app.component('WMath', WMath);
app.component('WHtmlA', WHtmlA);
},
};
@@ -147,6 +149,7 @@ export {
WSelectAssigneeDialog,
WEcharts,
WExpression,
+ WMath,
WHtmlA,
};
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/WMath.vue b/io.sc.platform.core.frontend/src/platform/components/math/WMath.vue
new file mode 100644
index 00000000..83714a90
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/WMath.vue
@@ -0,0 +1,282 @@
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/context-menu/ContextMenu.vue b/io.sc.platform.core.frontend/src/platform/components/math/context-menu/ContextMenu.vue
new file mode 100644
index 00000000..f81a5782
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/context-menu/ContextMenu.vue
@@ -0,0 +1,42 @@
+
+
+
+
+ {{ $t('delete') }}
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/dialog/NumberEditorDialog.vue b/io.sc.platform.core.frontend/src/platform/components/math/dialog/NumberEditorDialog.vue
new file mode 100644
index 00000000..60dde9af
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/dialog/NumberEditorDialog.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/dialog/VariableEditorDialog.vue b/io.sc.platform.core.frontend/src/platform/components/math/dialog/VariableEditorDialog.vue
new file mode 100644
index 00000000..658a6e2e
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/dialog/VariableEditorDialog.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/dialog/XmlDialog.vue b/io.sc.platform.core.frontend/src/platform/components/math/dialog/XmlDialog.vue
new file mode 100644
index 00000000..b785da51
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/dialog/XmlDialog.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/Toolbar.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/Toolbar.vue
new file mode 100644
index 00000000..e1217e08
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/Toolbar.vue
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/Clean.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/Clean.vue
new file mode 100644
index 00000000..4a7bd1e0
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/Clean.vue
@@ -0,0 +1,15 @@
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/Redo.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/Redo.vue
new file mode 100644
index 00000000..b066f1cd
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/Redo.vue
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/Undo.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/Undo.vue
new file mode 100644
index 00000000..3bae87f2
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/Undo.vue
@@ -0,0 +1,20 @@
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/Xml.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/Xml.vue
new file mode 100644
index 00000000..6e3b3355
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/Xml.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/ZoomIn.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/ZoomIn.vue
new file mode 100644
index 00000000..12644ad0
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/ZoomIn.vue
@@ -0,0 +1,19 @@
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/ZoomOut.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/ZoomOut.vue
new file mode 100644
index 00000000..e500519c
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/actions/ZoomOut.vue
@@ -0,0 +1,17 @@
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Addition.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Addition.vue
new file mode 100644
index 00000000..d0f62fe5
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Addition.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/And.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/And.vue
new file mode 100644
index 00000000..e0b816f3
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/And.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Comma.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Comma.vue
new file mode 100644
index 00000000..f42b3375
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Comma.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Division.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Division.vue
new file mode 100644
index 00000000..2c58bcc4
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Division.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Equals.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Equals.vue
new file mode 100644
index 00000000..f6fd5d49
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Equals.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Ge.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Ge.vue
new file mode 100644
index 00000000..83b33ca7
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Ge.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Gt.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Gt.vue
new file mode 100644
index 00000000..81c3d734
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Gt.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Le.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Le.vue
new file mode 100644
index 00000000..ae3902ff
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Le.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/LeftParenthesis.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/LeftParenthesis.vue
new file mode 100644
index 00000000..021b9c49
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/LeftParenthesis.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Lt.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Lt.vue
new file mode 100644
index 00000000..b8ad5edd
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Lt.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Multiply.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Multiply.vue
new file mode 100644
index 00000000..7f5c1752
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Multiply.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Not.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Not.vue
new file mode 100644
index 00000000..dd4d62be
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Not.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/NumberConst.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/NumberConst.vue
new file mode 100644
index 00000000..045b3df5
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/NumberConst.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Or.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Or.vue
new file mode 100644
index 00000000..6da314e5
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Or.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/RightParenthesis.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/RightParenthesis.vue
new file mode 100644
index 00000000..5bfa94e7
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/RightParenthesis.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Subtraction.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Subtraction.vue
new file mode 100644
index 00000000..eae29808
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Subtraction.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Variable.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Variable.vue
new file mode 100644
index 00000000..ed331078
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/base/Variable.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Date.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Date.vue
new file mode 100644
index 00000000..96cb8811
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Date.vue
@@ -0,0 +1,28 @@
+
+
+
+ {{ $t('math.toolbar.functions.date') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Digit.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Digit.vue
new file mode 100644
index 00000000..9639f43b
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Digit.vue
@@ -0,0 +1,171 @@
+
+
+
+ {{ $t('math.toolbar.functions.number') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Formater.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Formater.vue
new file mode 100644
index 00000000..5943ab60
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Formater.vue
@@ -0,0 +1,59 @@
+
+
+
+ {{ $t('math.toolbar.functions.formater') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Probability.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Probability.vue
new file mode 100644
index 00000000..b3883afa
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Probability.vue
@@ -0,0 +1,47 @@
+
+
+
+ {{ $t('math.toolbar.functions.probability') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/SpecialValue.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/SpecialValue.vue
new file mode 100644
index 00000000..939b13f7
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/SpecialValue.vue
@@ -0,0 +1,121 @@
+
+
+
+ {{ $t('math.toolbar.functions.specialValue') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/String.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/String.vue
new file mode 100644
index 00000000..2041b984
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/String.vue
@@ -0,0 +1,121 @@
+
+
+
+ {{ $t('math.toolbar.functions.string') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Trigonometric.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Trigonometric.vue
new file mode 100644
index 00000000..9fc27e04
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/Trigonometric.vue
@@ -0,0 +1,56 @@
+
+
+
+ {{ $t('math.toolbar.functions.trigonometric') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/date/Now.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/date/Now.vue
new file mode 100644
index 00000000..ecf45fb7
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/date/Now.vue
@@ -0,0 +1,40 @@
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Abs.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Abs.vue
new file mode 100644
index 00000000..4544ee13
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Abs.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Ceil.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Ceil.vue
new file mode 100644
index 00000000..2db80f79
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Ceil.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Floor.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Floor.vue
new file mode 100644
index 00000000..5d759a49
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Floor.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Max.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Max.vue
new file mode 100644
index 00000000..22a56d22
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Max.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Min.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Min.vue
new file mode 100644
index 00000000..ce1423fc
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Min.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Mod.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Mod.vue
new file mode 100644
index 00000000..175fff14
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Mod.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Random.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Random.vue
new file mode 100644
index 00000000..7c3c8de9
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Random.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/RandomInt.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/RandomInt.vue
new file mode 100644
index 00000000..b76a2d2b
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/RandomInt.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Remainder.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Remainder.vue
new file mode 100644
index 00000000..10fd93a4
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Remainder.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Rint.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Rint.vue
new file mode 100644
index 00000000..aa51dcf7
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Rint.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Round.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Round.vue
new file mode 100644
index 00000000..34785150
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Round.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Sum.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Sum.vue
new file mode 100644
index 00000000..0436237c
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/digit/Sum.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/formater/Comma.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/formater/Comma.vue
new file mode 100644
index 00000000..6d4ae7d9
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/formater/Comma.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/formater/Decimal.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/formater/Decimal.vue
new file mode 100644
index 00000000..c9c45f1e
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/formater/Decimal.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/formater/Percent.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/formater/Percent.vue
new file mode 100644
index 00000000..9a32621e
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/formater/Percent.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/probability/InverseNormal.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/probability/InverseNormal.vue
new file mode 100644
index 00000000..5ef5cf78
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/probability/InverseNormal.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/probability/Normal.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/probability/Normal.vue
new file mode 100644
index 00000000..8e724302
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/probability/Normal.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/Infinite.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/Infinite.vue
new file mode 100644
index 00000000..9dd9d81e
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/Infinite.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/IsInfinite.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/IsInfinite.vue
new file mode 100644
index 00000000..2ef95dc9
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/IsInfinite.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/IsNan.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/IsNan.vue
new file mode 100644
index 00000000..c30c1786
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/IsNan.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/IsNil.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/IsNil.vue
new file mode 100644
index 00000000..3b356529
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/IsNil.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/IsZero.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/IsZero.vue
new file mode 100644
index 00000000..a6e304a7
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/IsZero.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/Nan.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/Nan.vue
new file mode 100644
index 00000000..c5d35f4c
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/Nan.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/Nil.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/Nil.vue
new file mode 100644
index 00000000..1f2acd0f
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/Nil.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/Zero.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/Zero.vue
new file mode 100644
index 00000000..cf5ac2cc
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/specialValue/Zero.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/Contains.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/Contains.vue
new file mode 100644
index 00000000..e339856a
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/Contains.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/EndsWith.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/EndsWith.vue
new file mode 100644
index 00000000..2039bf33
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/EndsWith.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/Join.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/Join.vue
new file mode 100644
index 00000000..b5fa4041
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/Join.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/Length.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/Length.vue
new file mode 100644
index 00000000..26b39a04
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/Length.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/LowerCase.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/LowerCase.vue
new file mode 100644
index 00000000..da0309fc
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/LowerCase.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/StartsWith.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/StartsWith.vue
new file mode 100644
index 00000000..c71753ff
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/StartsWith.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/Trim.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/Trim.vue
new file mode 100644
index 00000000..9ec81ec2
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/Trim.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/UpperCase.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/UpperCase.vue
new file mode 100644
index 00000000..1c02b7cb
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/string/UpperCase.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/Degrees.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/Degrees.vue
new file mode 100644
index 00000000..cc12a9c0
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/Degrees.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/Radians.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/Radians.vue
new file mode 100644
index 00000000..4dd0beaa
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/Radians.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Cosh.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Cosh.vue
new file mode 100644
index 00000000..ed6ae407
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Cosh.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Coth.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Coth.vue
new file mode 100644
index 00000000..350e3efb
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Coth.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Csch.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Csch.vue
new file mode 100644
index 00000000..705b8832
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Csch.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Hyperbolic.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Hyperbolic.vue
new file mode 100644
index 00000000..8eacdbb7
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Hyperbolic.vue
@@ -0,0 +1,95 @@
+
+
+
+ {{ $t('math.toolbar.functions.trigonometric.hyperbolic') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Sech.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Sech.vue
new file mode 100644
index 00000000..a9536755
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Sech.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Sinh.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Sinh.vue
new file mode 100644
index 00000000..7a493419
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Sinh.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Tanh.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Tanh.vue
new file mode 100644
index 00000000..f8b32e86
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/hyperbolic/Tanh.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcCosh.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcCosh.vue
new file mode 100644
index 00000000..f75b403c
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcCosh.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcCoth.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcCoth.vue
new file mode 100644
index 00000000..170ba928
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcCoth.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcCsch.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcCsch.vue
new file mode 100644
index 00000000..46b0e422
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcCsch.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcSech.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcSech.vue
new file mode 100644
index 00000000..12ae63bb
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcSech.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcSinh.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcSinh.vue
new file mode 100644
index 00000000..4d10f3a5
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcSinh.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcTanh.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcTanh.vue
new file mode 100644
index 00000000..5d4efd4d
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/ArcTanh.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/InverseHyperbolic.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/InverseHyperbolic.vue
new file mode 100644
index 00000000..09c0eeb4
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseHyperbolic/InverseHyperbolic.vue
@@ -0,0 +1,95 @@
+
+
+
+ {{ $t('math.toolbar.functions.trigonometric.inverseHyperbolic') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcCos.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcCos.vue
new file mode 100644
index 00000000..d713a4ee
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcCos.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcCot.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcCot.vue
new file mode 100644
index 00000000..43e2ba06
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcCot.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcCsc.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcCsc.vue
new file mode 100644
index 00000000..90f1c12e
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcCsc.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcSec.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcSec.vue
new file mode 100644
index 00000000..0ef9b8b5
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcSec.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcSin.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcSin.vue
new file mode 100644
index 00000000..3f96a209
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcSin.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcTan.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcTan.vue
new file mode 100644
index 00000000..8f095055
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/ArcTan.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/InverseTrigonometric.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/InverseTrigonometric.vue
new file mode 100644
index 00000000..7b116cc5
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/inverseTrigonometric/InverseTrigonometric.vue
@@ -0,0 +1,95 @@
+
+
+
+ {{ $t('math.toolbar.functions.trigonometric.inverseTrigonometric') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Cos.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Cos.vue
new file mode 100644
index 00000000..ba7aed59
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Cos.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Cot.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Cot.vue
new file mode 100644
index 00000000..f49b07dd
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Cot.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Csc.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Csc.vue
new file mode 100644
index 00000000..d0df4406
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Csc.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Sec.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Sec.vue
new file mode 100644
index 00000000..0a46bd90
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Sec.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Sin.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Sin.vue
new file mode 100644
index 00000000..c2eb41a9
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Sin.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Tan.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Tan.vue
new file mode 100644
index 00000000..ec119d63
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Tan.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Trigonometric.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Trigonometric.vue
new file mode 100644
index 00000000..b2e526b1
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/functions/trigonometric/trigonometric/Trigonometric.vue
@@ -0,0 +1,96 @@
+
+
+
+ {{ $t('math.toolbar.functions.trigonometric.trigonometric') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/E.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/E.vue
new file mode 100644
index 00000000..ba53eecd
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/E.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Exp.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Exp.vue
new file mode 100644
index 00000000..00a8c7ba
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Exp.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Lg.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Lg.vue
new file mode 100644
index 00000000..df13c717
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Lg.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Ln.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Ln.vue
new file mode 100644
index 00000000..e9743b27
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Ln.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Log.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Log.vue
new file mode 100644
index 00000000..a579c972
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Log.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Pi.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Pi.vue
new file mode 100644
index 00000000..2d0acc8f
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Pi.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Power.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Power.vue
new file mode 100644
index 00000000..9eed97e0
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Power.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Power2.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Power2.vue
new file mode 100644
index 00000000..1004bb34
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Power2.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Root.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Root.vue
new file mode 100644
index 00000000..8c6da322
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Root.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Sqrt.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Sqrt.vue
new file mode 100644
index 00000000..89484bef
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/math/Sqrt.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/toolbar/tools/Tools.vue b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/tools/Tools.vue
new file mode 100644
index 00000000..4ddb2799
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/toolbar/tools/Tools.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/io.sc.platform.core.frontend/src/platform/components/math/utils/ZoomLevels.ts b/io.sc.platform.core.frontend/src/platform/components/math/utils/ZoomLevels.ts
new file mode 100644
index 00000000..070c3950
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/platform/components/math/utils/ZoomLevels.ts
@@ -0,0 +1,95 @@
+class ZoomLevels {
+ public static defaultLevel: number = 6;
+ public static levels: any[] = [
+ /*0*/ { 'font-size': '0.75rem', 'line-height': '1rem', pixels: [9, 6, 5, 4] }, //12px,16px
+ /*1*/ { 'font-size': '0.875rem', 'line-height': '1.25rem', pixels: [10, 7, 6, 4] }, //14px,20px
+ /*2*/ { 'font-size': '1rem', 'line-height': '1.5rem', pixels: [11, 8, 7, 5] }, //16px,24px
+ /*3*/ { 'font-size': '1.125rem', 'line-height': '1.75rem', pixels: [12, 9, 7, 5] }, //18px,28px
+ /*4*/ { 'font-size': '1.25rem', 'line-height': '1.75rem', pixels: [14, 10, 8, 6] }, //20px,28px
+ /*5*/ { 'font-size': '1.5rem', 'line-height': '2rem', pixels: [17, 12, 10, 7] }, //24px,32px
+ /*6*/ { 'font-size': '1.875rem', 'line-height': '2.25rem', pixels: [21, 15, 12, 9] }, //30px,36px
+ /*7*/ { 'font-size': '2.25rem', 'line-height': '2.5rem', pixels: [25, 18, 15, 11] }, //36px,40px
+ /*8*/ { 'font-size': '3rem', 'line-height': '1', pixels: [34, 24, 20, 14] }, //48px
+ /*9*/ { 'font-size': '3.75rem', 'line-height': '1', pixels: [42, 30, 25, 18] }, //60px
+ /*10*/ { 'font-size': '4.5rem', 'line-height': '1', pixels: [50, 37, 30, 21] }, //72px
+ /*11*/ { 'font-size': '6rem', 'line-height': '1', pixels: [67, 49, 41, 28] }, //96px
+ /*12*/ { 'font-size': '8rem', 'line-height': '1', pixels: [89, 66, 54, 38] }, //128px
+ ];
+
+ public static getLength(): number {
+ return ZoomLevels.levels.length;
+ }
+
+ public static getStyle(index: number): object {
+ return ZoomLevels.levels[index];
+ }
+
+ /*
+ public static defaultName: string = '3xl';
+ static #names = {
+ xs: 0,
+ sm: 1,
+ base: 2,
+ lg: 3,
+ xl: 4,
+ '2xl': 5,
+ '3xl': 6,
+ '4xl': 7,
+ '5xl': 8,
+ '6xl': 9,
+ '7xl': 10,
+ '8xl': 11,
+ '9xl': 12,
+ };
+ static #styles = [
+ { 'font-size': '0.75rem', 'line-height': '1rem' }, //12px,16px
+ { 'font-size': '0.875rem', 'line-height': '1.25rem' }, //14px,20px
+ { 'font-size': '1rem', 'line-height': '1.5rem' }, //16px,24px
+ { 'font-size': '1.125rem', 'line-height': '1.75rem' }, //18px,28px
+ { 'font-size': '1.25rem', 'line-height': '1.75rem' }, //20px,28px
+ { 'font-size': '1.5rem', 'line-height': '2rem' }, //24px,32px
+ { 'font-size': '1.875rem', 'line-height': '2.25rem' }, //30px,36px
+ { 'font-size': '2.25rem', 'line-height': '2.5rem' }, //36px,40px
+ { 'font-size': '3rem', 'line-height': '1' }, //48px
+ { 'font-size': '3.75rem', 'line-height': '1' }, //60px
+ { 'font-size': '4.5rem', 'line-height': '1' }, //72px
+ { 'font-size': '6rem', 'line-height': '1' }, //96px
+ { 'font-size': '8rem', 'line-height': '1' }, //128px
+ ];
+
+ public static getLength(): number {
+ return ZoomLevels.#styles.length;
+ }
+
+ public static getLevelByName(name: string): number {
+ let index = ZoomLevels.#names[name];
+ if (index === null || typeof index === 'undefined') {
+ index = ZoomLevels.defaultLevel;
+ }
+ return index;
+ }
+
+ public static getNameByIndex(index: number): string | null {
+ for (const name in ZoomLevels.#names) {
+ if (ZoomLevels.#names[name] === index) {
+ return name;
+ }
+ }
+ return null;
+ }
+
+ public static getStyleByName(name: string): object {
+ let index = ZoomLevels.#names[name];
+ if (index === null || typeof index === 'undefined') {
+ index = ZoomLevels.defaultLevel;
+ }
+ return ZoomLevels.#styles[index];
+ }
+
+ public static getStyleByIndex(index: number): object {
+ return ZoomLevels.#styles[index];
+ }
+ */
+}
+
+export { ZoomLevels };
diff --git a/io.sc.platform.core.frontend/src/platform/i18n/messages.json b/io.sc.platform.core.frontend/src/platform/i18n/messages.json
index 9f9bca02..01019022 100644
--- a/io.sc.platform.core.frontend/src/platform/i18n/messages.json
+++ b/io.sc.platform.core.frontend/src/platform/i18n/messages.json
@@ -159,7 +159,7 @@
"math.toolbar.actions.redo": "Redo",
"math.toolbar.base.variable": "Variable",
- "math.toolbar.base.const": "Const",
+ "math.toolbar.base.number": "Number",
"math.toolbar.base.addition": "Addition",
"math.toolbar.base.subtraction": "Subtraction",
"math.toolbar.base.multiply": "Multiply",
diff --git a/io.sc.platform.core.frontend/src/platform/i18n/messages_tw_CN.json b/io.sc.platform.core.frontend/src/platform/i18n/messages_tw_CN.json
index d515f3c2..a93bb83d 100644
--- a/io.sc.platform.core.frontend/src/platform/i18n/messages_tw_CN.json
+++ b/io.sc.platform.core.frontend/src/platform/i18n/messages_tw_CN.json
@@ -159,7 +159,7 @@
"math.toolbar.actions.redo": "重做",
"math.toolbar.base.variable": "變量",
- "math.toolbar.base.const": "常量",
+ "math.toolbar.base.number": "數字",
"math.toolbar.base.addition": "加法",
"math.toolbar.base.subtraction": "減法",
"math.toolbar.base.multiply": "乘法",
diff --git a/io.sc.platform.core.frontend/src/platform/i18n/messages_zh_CN.json b/io.sc.platform.core.frontend/src/platform/i18n/messages_zh_CN.json
index bda506bc..0d3b8240 100644
--- a/io.sc.platform.core.frontend/src/platform/i18n/messages_zh_CN.json
+++ b/io.sc.platform.core.frontend/src/platform/i18n/messages_zh_CN.json
@@ -159,7 +159,7 @@
"math.toolbar.actions.redo": "重做",
"math.toolbar.base.variable": "变量",
- "math.toolbar.base.const": "常量",
+ "math.toolbar.base.number": "数字",
"math.toolbar.base.addition": "加法",
"math.toolbar.base.subtraction": "减法",
"math.toolbar.base.multiply": "乘法",
diff --git a/io.sc.platform.core.frontend/src/platform/index.ts b/io.sc.platform.core.frontend/src/platform/index.ts
index 2fca4070..203f1f7a 100644
--- a/io.sc.platform.core.frontend/src/platform/index.ts
+++ b/io.sc.platform.core.frontend/src/platform/index.ts
@@ -155,6 +155,7 @@ export {
WSelectAssigneeDialog,
WEcharts,
WExpression,
+ WMath,
WHtmlA,
} from './components';
diff --git a/io.sc.platform.core.frontend/src/views/testcase/math/AutoCompletionManager.ts b/io.sc.platform.core.frontend/src/views/testcase/math/AutoCompletionManager.ts
new file mode 100644
index 00000000..8558fb90
--- /dev/null
+++ b/io.sc.platform.core.frontend/src/views/testcase/math/AutoCompletionManager.ts
@@ -0,0 +1,170 @@
+import { Tools } from '@/platform';
+
+class AutoCompletionManager {
+ parameters: object[];
+ valueTypes: object[];
+
+ public setParameters(parameters) {
+ this.parameters = parameters;
+ }
+ public setValueTypes(valueTypes) {
+ this.valueTypes = valueTypes;
+ }
+
+ public getOptions(path: string): any {
+ if (!path) {
+ return this.getParameterOptions();
+ }
+ if (path.endsWith('.')) {
+ path = path.substring(0, path.length - 1);
+ }
+ const names = path.split('.');
+ if (!names) {
+ return this.getParameterOptions();
+ }
+ //参数
+ const parameter = this.findParmeter(names[0]);
+ if (!parameter) {
+ return null;
+ }
+ const valueTypeString = parameter.valueType;
+ const valueTypeVersion = parameter.valueTypeVersion;
+ let valueType = this.findValueType(valueTypeString, valueTypeVersion);
+ if (!valueType || !valueType.properties || valueType.properties.length <= 0) {
+ return null;
+ }
+ let index = 1;
+ while (index < names.length) {
+ valueType = this.findValueTypeByProperty(valueType.code, valueType.version, names[index++]);
+ }
+
+ const options = [];
+ for (const property of valueType.properties) {
+ const propertyValueType = this.findValueType(property.valueType, property.valueTypeVersion);
+ if (!propertyValueType) {
+ continue;
+ }
+ const info = propertyValueType.version ? propertyValueType.name + '(V' + propertyValueType.version + ')' : propertyValueType.name;
+ options.push({ label: property.name, type: 'property', apply: '${' + property.name + '}', info: info });
+ }
+ return options;
+ }
+
+ public findParmeter(parameterName) {
+ for (const parameter of this.parameters) {
+ if (parameter.name === parameterName) {
+ return parameter;
+ }
+ }
+ return null;
+ }
+
+ public findValueType(valueTypeString, valueTypeVersion) {
+ for (const valueType of this.valueTypes) {
+ if (valueType.code === valueTypeString && valueType.version === valueTypeVersion) {
+ return valueType;
+ }
+ }
+ return null;
+ }
+
+ public findValueTypeByProperty(valueTypeString, valueTypeVersion, propertyName) {
+ const valueType = this.findValueType(valueTypeString, valueTypeVersion);
+ if (!valueType) {
+ return null;
+ }
+ for (const property of valueType.properties) {
+ if (property.name === propertyName) {
+ return this.findValueType(property.valueType, property.valueTypeVersion);
+ }
+ }
+ }
+
+ public getParameterOptions(): any {
+ const options = [];
+ for (const parameter of this.parameters) {
+ const valueType = this.findValueType(parameter.valueType, parameter.valueTypeVersion);
+ const info = valueType.version ? valueType.name + '(V' + valueType.version + ')' : valueType.name;
+ options.push({ label: parameter.name, type: 'variable', apply: '${' + parameter.name + '}', info: info });
+ }
+ return options;
+ }
+
+ public getPropertyOptions(parameterName: string): any {
+ let parameterType = undefined;
+ for (const parameter of this.parameters) {
+ if (parameter.name === parameterName) {
+ parameterType = parameter.valueType;
+ }
+ }
+ if (!parameterType) {
+ return null;
+ }
+ for (const type of this.valueTypes) {
+ if (type.code === parameterType) {
+ parameterType = type;
+ }
+ }
+ if (!parameterType) {
+ return null;
+ }
+
+ if (parameterType.properties && parameterType.properties.length > 0) {
+ const options = [];
+ for (const property of parameterType.properties) {
+ options.push({ label: property.name, type: 'property', apply: '${' + property.name + '}', detail: this.findValueTypeInfo(property.valueType) });
+ }
+ return options;
+ }
+ }
+
+ public autoCompletionParameters(to, matchedText): any {
+ return {
+ from: to,
+ options: this.getParameterOptions(),
+ validFor: /(.*)?/,
+ };
+ }
+
+ public autoCompletionProperties(to, matchedText): any {
+ const matchedTextReverse = Tools.reverseString(matchedText);
+ const regReverse = /(\.\}(.+?)\{\$)+/g; //匹配 '.}xxx{$' 模式
+ const matcheds = matchedTextReverse.match(regReverse);
+ if (Tools.isUndefinedOrNull(matcheds) || matcheds.length <= 0) {
+ return null;
+ }
+ const matched = Tools.reverseString(matcheds[0]);
+ const parameterName = matched.replace(/\$\{(.+?)\}/g, '$1');
+ if (Tools.isUndefinedOrNull(parameterName)) {
+ return null;
+ }
+ const options = this.getOptions(parameterName);
+ if (Tools.isUndefinedOrNull(options)) {
+ return null;
+ }
+ return {
+ from: to,
+ options: options,
+ validFor: /^(.*)?$/,
+ };
+ }
+
+ public autoCompletion(context): any {
+ const beforeMatched = context.matchBefore(/(.+?)/g);
+ if (Tools.isUndefinedOrNull(beforeMatched)) {
+ return null;
+ }
+ const beforeText = beforeMatched.text || '';
+ if (beforeText.endsWith('.')) {
+ //匹配属性
+ return this.autoCompletionProperties(beforeMatched.to, beforeText);
+ } else if (beforeText.endsWith(' ')) {
+ //匹配参数
+ return this.autoCompletionParameters(beforeMatched.to);
+ } else {
+ return null;
+ }
+ }
+}
+
+export { AutoCompletionManager };
diff --git a/io.sc.platform.core.frontend/src/views/testcase/math/MathEditor.vue b/io.sc.platform.core.frontend/src/views/testcase/math/MathEditor.vue
index c652f01d..9332d46b 100644
--- a/io.sc.platform.core.frontend/src/views/testcase/math/MathEditor.vue
+++ b/io.sc.platform.core.frontend/src/views/testcase/math/MathEditor.vue
@@ -1,11 +1,24 @@
-
+