-
- Date:
-
+
-
- Merchant (optional):
-
-
+
+
+ Tags
+
+ @for (tag of tags(); track tag.id) {
+ {{ tag.name }}
+ }
+
+
-
- Note (optional):
-
-
-
Tags
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/app/components/add-expense/add-expense.component.scss b/src/app/components/add-expense/add-expense.component.scss
index 9bf429e..a524941 100644
--- a/src/app/components/add-expense/add-expense.component.scss
+++ b/src/app/components/add-expense/add-expense.component.scss
@@ -1,5 +1,23 @@
-//.add-expense-body {
-// display: flex;
-// justify-content: flex-start;
-// gap: 0.5rem;
-//}
+.add-expense-header {
+ padding-bottom: 1rem;
+}
+
+.add-expense-footer {
+ padding: 0 0 1rem 0.5rem;
+}
+
+.add-expense-dropdowns {
+ display: flex;
+ gap: 0.5rem;
+ justify-content: space-between;
+}
+
+.add-expense-additional {
+ display: flex;
+ gap: 0.5rem;
+ justify-content: space-between;
+}
+
+.add-expense-note {
+ width: 100%;
+}
diff --git a/src/app/components/add-expense/add-expense.component.ts b/src/app/components/add-expense/add-expense.component.ts
index b0d0ccb..0cde81e 100644
--- a/src/app/components/add-expense/add-expense.component.ts
+++ b/src/app/components/add-expense/add-expense.component.ts
@@ -1,9 +1,16 @@
-import {Component, computed, signal} from '@angular/core';
-import {Category, CategoryService} from '../../services/category.service';
-import {Merchant, MerchantService} from '../../services/merchant.service';
-import { Tag } from '../../services/tag.service';
-import {form, FormField} from '@angular/forms/signals';
-import {MatCard, MatCardContent, MatCardHeader, MatCardTitle} from '@angular/material/card';
+import { Component, computed, signal } from '@angular/core';
+import { CategoryService } from '../../services/category.service';
+import { MerchantService } from '../../services/merchant.service';
+import { Tag, TagService } from '../../services/tag.service';
+import { form, FormField } from '@angular/forms/signals';
+import { MatCardModule } from '@angular/material/card';
+import { MatInputModule } from '@angular/material/input';
+import { MatDatepickerModule } from '@angular/material/datepicker';
+import { MatFormFieldModule } from '@angular/material/form-field';
+import { MatAutocompleteModule } from '@angular/material/autocomplete';
+import { MatSelectModule } from '@angular/material/select';
+import { MatButtonModule } from '@angular/material/button';
+import { provideNativeDateAdapter } from '@angular/material/core';
interface AddExpenseForm {
date: Date,
@@ -16,19 +23,15 @@ interface AddExpenseForm {
@Component({
selector: 'app-add-expense',
- imports: [
- FormField,
- MatCard,
- MatCardHeader,
- MatCardTitle,
- MatCardContent
- ],
+ imports: [MatDatepickerModule, MatFormFieldModule, MatInputModule, MatCardModule, MatAutocompleteModule, MatSelectModule, MatButtonModule, FormField],
+ providers: [provideNativeDateAdapter()],
templateUrl: './add-expense.component.html',
styleUrl: './add-expense.component.scss',
})
export class AddExpenseComponent {
protected categories = computed(() => this.categoryService.categories());
protected merchants = computed(() => this.merchantService.merchants());
+ protected tags = computed(() => this.tagService.tags());
private addExpenseModel = signal
({
date: new Date(),
amount: '',
@@ -40,5 +43,6 @@ export class AddExpenseComponent {
public expenseForm = form(this.addExpenseModel);
public constructor(private readonly categoryService: CategoryService,
- private readonly merchantService: MerchantService) { }
+ private readonly merchantService: MerchantService,
+ private readonly tagService: TagService) { }
}
diff --git a/src/app/components/expense-list/expense-list.component.ts b/src/app/components/expense-list/expense-list.component.ts
index 5a7d57d..08864c8 100644
--- a/src/app/components/expense-list/expense-list.component.ts
+++ b/src/app/components/expense-list/expense-list.component.ts
@@ -1,37 +1,12 @@
import { Component, computed } from '@angular/core';
import { ExpenseService } from '../../services/expense.service';
-import {
- MatCell,
- MatCellDef,
- MatColumnDef,
- MatHeaderCell,
- MatHeaderCellDef,
- MatHeaderRow, MatHeaderRowDef, MatRow, MatRowDef,
- MatTable
-} from '@angular/material/table';
-import {CurrencyPipe, DatePipe} from '@angular/common';
-import {MatCard, MatCardContent, MatCardHeader, MatCardTitle} from '@angular/material/card';
+import { MatTableModule } from '@angular/material/table';
+import { CurrencyPipe, DatePipe } from '@angular/common';
+import { MatCardModule } from '@angular/material/card';
@Component({
selector: 'app-expense-list',
- imports: [
- MatTable,
- MatColumnDef,
- MatHeaderCell,
- MatHeaderCellDef,
- DatePipe,
- MatCell,
- MatCellDef,
- CurrencyPipe,
- MatHeaderRow,
- MatHeaderRowDef,
- MatRow,
- MatRowDef,
- MatCard,
- MatCardHeader,
- MatCardTitle,
- MatCardContent
- ],
+ imports: [MatTableModule, MatCardModule, DatePipe, CurrencyPipe],
templateUrl: './expense-list.component.html',
styleUrl: './expense-list.component.scss',
})