Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | 24x 7x 7x 7x 7x 7x 7x 7x 7x 7x 6x 6x 1x 1x 1x 1x 1x 7x 2x 2x 7x 1x 2x 1x 1x 1x | import { Component, inject, signal, input, OnInit } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { LucideAngularModule, X } from 'lucide-angular';
import { TranslocoModule } from '@jsverse/transloco';
import { ModalService } from '../../services/modal.service';
import { Unit } from '../../models/shopping-list.model';
export interface EditFavouriteData {
name: string;
category: string;
unit: Unit;
size?: number;
}
export interface EditFavouriteResult {
name: string;
category: string;
unit: Unit;
size?: number;
}
@Component({
selector: 'app-edit-favourite-modal',
imports: [FormsModule, LucideAngularModule, TranslocoModule],
templateUrl: './edit-favourite-modal.html',
styleUrl: './edit-favourite-modal.scss',
})
export class EditFavouriteModal implements OnInit {
private readonly modalService = inject(ModalService);
readonly data = input<EditFavouriteData>();
readonly icons = { X };
readonly name = signal('');
readonly category = signal<string>('Sonstiges');
readonly unit = signal<Unit>('Einheit');
readonly size = signal<number | undefined>(undefined);
readonly categories = [
'Obst & Gemüse',
'Backwaren',
'Milchprodukte',
'Fleisch & Fisch',
'Getränke',
'Snacks',
'Tiefkühl',
'Konserven',
'Drogerie',
'Tierbedarf',
'Sonstiges'
];
readonly units: Unit[] = [
'Einheit',
'g',
'dag',
'kg',
'mL',
'L',
'Flasche',
'Kiste',
'Dose',
'Packung'
];
ngOnInit(): void {
const inputData = this.data();
if (inputData) {
this.name.set(inputData.name);
Eif (inputData.category) {
this.category.set(inputData.category);
}
this.unit.set(inputData.unit);
this.size.set(inputData.size);
}
}
setCategory(val: string): void {
this.category.set(val);
}
setSize(val: string): void {
const num = parseFloat(val);
this.size.set(Number.isNaN(num) ? undefined : num);
}
setUnit(val: string): void {
this.unit.set(val as Unit);
}
close(): void {
this.modalService.dismiss();
}
submit(): void {
if (!this.name().trim()) {
return;
}
const result: EditFavouriteResult = {
name: this.name().trim(),
category: this.category(),
unit: this.unit(),
size: this.size()
};
this.modalService.close(result);
}
}
|