diff --git a/frontend/components/Calculator.vue b/frontend/components/Calculator.vue
new file mode 100644
index 0000000..3a91aa6
--- /dev/null
+++ b/frontend/components/Calculator.vue
@@ -0,0 +1,235 @@
+
+
+
+
+
+ Kalkulator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Speicher: {{ Number(store.memory).toFixed(2).replace('.', ',') }} €
+
+
{{ store.display }}
+
+
+
+ {{ copied ? 'Kopiert!' : 'Klicken zum Kopieren' }}
+
+
+
+
+
+ +19%
+ +7%
+ -19%
+ -7%
+
+ C
+ M+
+ MC
+ /
+
+ {{ n }}
+ ×
+
+ {{ n }}
+ -
+
+ {{ n }}
+ +
+
+ 0
+ ,
+ =
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/components/MainNav.vue b/frontend/components/MainNav.vue
index 1243b48..1556c7b 100644
--- a/frontend/components/MainNav.vue
+++ b/frontend/components/MainNav.vue
@@ -1,42 +1,39 @@
-
{{ item.label }}
-
-
+
+
+
>
:to="child.to"
:target="child.target"
:disabled="child.disabled"
+ @click="child.click ? child.click() : null"
>
{{ child.label }}
-
+
\ No newline at end of file
diff --git a/frontend/layouts/default.vue b/frontend/layouts/default.vue
index 6139269..af28f01 100644
--- a/frontend/layouts/default.vue
+++ b/frontend/layouts/default.vue
@@ -1,21 +1,20 @@
@@ -130,24 +146,24 @@ const footerLinks = [
v-else
/>
-
+
Wartungsarbeiten
- Dieser FEDEO Mandant wird derzeit gewartet. Bitte versuche es in einigen Minuten erneut oder verwende einen anderen Mandanten.
+ Dieser FEDEO Mandant wird derzeit gewartet. Bitte versuche es in einigen Minuten erneut oder verwende einen
+ anderen Mandanten.
- {{tenant.name}}
+ {{ tenant.name }}
Wählen
+ >Wählen
+
-
-
@@ -167,7 +183,7 @@ const footerLinks = [
v-else
/>
-
+
@@ -176,8 +192,6 @@ const footerLinks = [
FEDEO wird derzeit gewartet. Bitte versuche es in einigen Minuten erneut.
-
-
@@ -197,32 +211,33 @@ const footerLinks = [
v-else
/>
-
+
Kein Aktives Abonnement für diesen Mandant.
- Bitte wenden Sie sich an den FEDEO Support um ein Abonnement zu erhalten oder verwenden Sie einen anderen Mandanten.
+ Bitte wenden Sie sich an den FEDEO Support um ein Abonnement zu erhalten oder verwenden Sie einen anderen
+ Mandanten.
- {{tenant.name}}
+ {{ tenant.name }}
Wählen
+ >Wählen
+
-
-
-
+
-
+
-
+
@@ -230,24 +245,17 @@ const footerLinks = [
-
-
+
-
-
+
+
-
-
-
-
-
-
-
+
@@ -256,14 +264,14 @@ const footerLinks = [
-
+
-
-
+
+
@@ -278,37 +286,32 @@ const footerLinks = [
v-if="month === '12'"
/>
-
-
Kein Aktiver Mandant. Bitte wählen Sie ein Mandant.
-
- {{tenant.name}}
- Wählen
-
+
Kein Aktiver Mandant. Bitte wählen Sie ein Mandant.
+
+ {{ tenant.name }}
Wählen
+
+
+
Abmelden
-
-
+ >Abmelden
+
-
+
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/frontend/stores/calculator.ts b/frontend/stores/calculator.ts
new file mode 100644
index 0000000..ece9b51
--- /dev/null
+++ b/frontend/stores/calculator.ts
@@ -0,0 +1,40 @@
+import { defineStore } from 'pinia'
+
+export const useCalculatorStore = defineStore('calculator', () => {
+ const tempStore = useTempStore()
+
+ // Initialisierung aus dem TempStore
+ const isOpen = ref(false)
+ const display = computed({
+ get: () => tempStore.settings?.calculator?.display || '0',
+ set: (val) => tempStore.modifySettings('calculator', { ...tempStore.settings.calculator, display: val })
+ })
+
+ const memory = computed({
+ get: () => tempStore.settings?.calculator?.memory || 0,
+ set: (val) => tempStore.modifySettings('calculator', { ...tempStore.settings.calculator, memory: val })
+ })
+
+ const history = computed({
+ get: () => tempStore.filters?.calculator?.history || [],
+ set: (val) => tempStore.modifyFilter('calculator', 'history', val)
+ })
+
+ function toggle() {
+ isOpen.value = !isOpen.value
+ }
+
+ function addHistory(expression: string, result: string) {
+ const newHistory = [{ expression, result }, ...history.value].slice(0, 10)
+ history.value = newHistory
+ }
+
+ return {
+ isOpen,
+ display,
+ memory,
+ history,
+ toggle,
+ addHistory
+ }
+})
\ No newline at end of file