-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/shared/components/form/slide-toggle/slide-toggle.component.ts b/src/app/shared/components/form/slide-toggle/slide-toggle.component.ts
index f19eea9..2d2b1be 100644
--- a/src/app/shared/components/form/slide-toggle/slide-toggle.component.ts
+++ b/src/app/shared/components/form/slide-toggle/slide-toggle.component.ts
@@ -1,16 +1,13 @@
import { Component, Input, forwardRef } from '@angular/core';
-import { ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';
+import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
import { CommonModule } from '@angular/common';
@Component({
selector: 'app-slide-toggle',
standalone: true,
- imports: [
- CommonModule,
- FormsModule
- ],
+ imports: [ CommonModule ],
templateUrl: './slide-toggle.component.html',
- styleUrl: '../form.css',
+ styleUrl: './slide-toggle.component.css',
providers: [
{
provide: NG_VALUE_ACCESSOR,
@@ -20,9 +17,16 @@ import { CommonModule } from '@angular/common';
]
})
export class SlideToggleComponent implements ControlValueAccessor {
- @Input() id = `slide-toggle-${Math.random().toString(36).substring(2)}`;
+ // --- NEUE EINGABEWERTE ---
+ /** Der Text, der neben dem Schalter angezeigt wird. */
+ @Input() label: string = '';
+ /** Position des Labels: 'left' (Standard) oder 'right'. */
+ @Input() labelPosition: 'left' | 'right' = 'left';
+
+ // --- BESTEHENDE LOGIK ---
+ // Jede Instanz bekommt eine eindeutige ID für die for/id-Verknüpfung.
+ id = `slide-toggle-${Math.random().toString(36).substring(2)}`;
- // Interne Logik für ControlValueAccessor
value = false;
onChange: (value: any) => void = () => {};
onTouched: () => void = () => {};
@@ -33,11 +37,6 @@ export class SlideToggleComponent implements ControlValueAccessor {
registerOnTouched(fn: any): void { this.onTouched = fn; }
setDisabledState?(isDisabled: boolean): void { this.disabled = isDisabled; }
- // +++ HIER IST DIE FEHLENDE METHODE +++
- /**
- * Wird aufgerufen, wenn der Benutzer auf den Schalter klickt.
- * Aktualisiert den internen Wert und benachrichtigt Angular Forms.
- */
onToggle(): void {
if (!this.disabled) {
this.value = !this.value;
diff --git a/src/styles.css b/src/styles.css
index cdd3810..cb53ab2 100644
--- a/src/styles.css
+++ b/src/styles.css
@@ -43,6 +43,7 @@ body.dark-theme {
--color-text: #ecf0f1;
--color-text-light: #95a5a6;
--color-body-bg: #1a202c;
+ --color-body-bg-hover: rgb(34, 41, 56);
--color-surface: #2d3748;
--color-border: #4a5568;
}
@@ -68,16 +69,10 @@ body {
color var(--transition-speed);
}
-/* Globale Klasse, um das Scrollen zu unterbinden, wenn ein Overlay offen ist */
body.no-scroll {
overflow: hidden;
}
-/* =================================================================================
- * 3. GLOBALE HELFER- & UTILITY-KLASSEN
- * Diese Klassen können überall in der Anwendung verwendet werden.
- * ================================================================================= */
-
/* -- Textausrichtung -- */
.text-right {
text-align: right !important;
@@ -89,13 +84,18 @@ body.no-scroll {
text-align: center !important;
}
-/* -- Dashboard Grid Layout (da es ein grundlegendes Layout-Muster ist) -- */
.dashboard-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 1.5rem;
}
+main {
+ display: grid;
+ padding: 1rem;
+ gap: 1rem;
+}
+
.grid-col-span-1 {
grid-column: span 1;
}
@@ -112,7 +112,6 @@ body.no-scroll {
grid-column: span 4;
}
-/* -- Tooltip (muss global sein, da es auf jedes Element angewendet werden kann) -- */
[data-tooltip] {
position: relative;
}
@@ -140,9 +139,6 @@ body.no-scroll {
transform: translateX(-50%) translateY(-12px);
}
-/* =================================================================================
- * 4. GLOBALE RESPONSIVITÄT
- * ================================================================================= */
@media (max-width: 1200px) {
.dashboard-grid {
grid-template-columns: repeat(2, 1fr);
@@ -152,5 +148,7 @@ body.no-scroll {
.dashboard-grid {
grid-template-columns: 1fr;
}
- /* Stile für .main-content etc. gehören in die Layout-Komponente (z.B. demo2.component.css) */
}
+
+/* ========================================================================================== */
+/* ========================================================================================== */