import { CommonModule, CurrencyPipe, DatePipe } from '@angular/common'; import { Component, OnInit, computed, inject, signal } from '@angular/core'; import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms'; import { CategoriesService } from '../../core/services/categories.service'; import { ShoppingListIntegrationService } from '../../core/services/shopping-list-integration.service'; import { ToastService } from '../../core/services/toast.service'; import { UiService } from '../../core/services/ui.service'; import type { Category, ShoppingListExpenseItem, ShoppingListRef, ShoppingListSummary } from '../../shared/models'; const currentMonth = () => new Date().toISOString().slice(0, 7); const today = () => new Date().toISOString().slice(0, 10); const monthRange = (period: string) => { const safe = /^\d{4}-\d{2}$/.test(period) ? period : currentMonth(); const [yearText, monthText] = safe.split('-'); const year = Number(yearText); const month = Number(monthText); const nextMonth = month === 12 ? new Date(year + 1, 0, 1) : new Date(year, month, 1); const end = new Date(nextMonth.getTime() - 24 * 60 * 60 * 1000).toISOString().slice(0, 10); return { start: `${safe}-01`, end }; }; @Component({ selector: 'app-integrations', standalone: true, imports: [CommonModule, ReactiveFormsModule, CurrencyPipe, DatePipe], template: `
{{ summaryText() }}
} @else {
| {{ ui.t('table.title') }} | {{ ui.t('table.date') }} | {{ ui.t('table.amount') }} | {{ ui.t('table.actions') }} |
|---|---|---|---|
|
{{ itemTitle(item) }}
{{ listTitle(item.list) }} · {{ ownerName(item) || ui.t('common.none') }}
|
{{ itemDate(item) }} | {{ itemAmount(item) | number:'1.2-2' }} | |
| {{ ui.t('common.noData') }} | |||
| {{ ui.t('table.title') }} | {{ ui.t('table.date') }} | {{ ui.t('table.amount') }} | {{ ui.t('table.actions') }} |
|---|---|---|---|
|
{{ itemTitle(item) }}
{{ ownerName(item) || ui.t('common.none') }}
|
{{ itemDate(item) }} | {{ itemAmount(item) | number:'1.2-2' }} | |
| {{ ui.t('common.noData') }} | |||