+
Rabatt-Rechner
+
+
+
+
+
+
+
+
+
+
+
+ @if (discountedPrice !== null) {
+
+ Endpreis: {{ formatPrice(discountedPrice) }} CHF
+
+ }
+
\ No newline at end of file
diff --git a/web/src/app/discount-calculator/discount-calculator.scss b/web/src/app/discount-calculator/discount-calculator.scss
new file mode 100644
index 0000000..560f55c
--- /dev/null
+++ b/web/src/app/discount-calculator/discount-calculator.scss
@@ -0,0 +1,47 @@
+:host {
+ display: block;
+ max-width: 400px;
+ margin: 2rem auto;
+ padding: 1.5rem;
+ border: 1px solid #ddd;
+ border-radius: 8px;
+ font-family: sans-serif;
+}
+
+.calculator {
+ h2 {
+ margin: 0 0 1rem;
+ font-size: 1.25rem;
+ }
+}
+
+.field {
+ margin-bottom: 1rem;
+
+ label {
+ display: block;
+ margin-bottom: 0.25rem;
+ font-weight: 500;
+ }
+
+ input {
+ width: 100%;
+ padding: 0.5rem;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ font-size: 1rem;
+ box-sizing: border-box;
+ }
+}
+
+.result {
+ margin-top: 1rem;
+ padding: 0.75rem;
+ background: #e8f5e9;
+ border-radius: 4px;
+ font-size: 1.1rem;
+
+ strong {
+ color: #2e7d32;
+ }
+}
\ No newline at end of file
diff --git a/web/src/app/discount-calculator/discount-calculator.spec.ts b/web/src/app/discount-calculator/discount-calculator.spec.ts
new file mode 100644
index 0000000..a788a7f
--- /dev/null
+++ b/web/src/app/discount-calculator/discount-calculator.spec.ts
@@ -0,0 +1,67 @@
+import { TestBed, type ComponentFixture } from '@angular/core/testing';
+import { DiscountCalculator } from './discount-calculator';
+
+describe('DiscountCalculator', () => {
+ async function createFixture(): Promise