48 lines
1.4 KiB
HTML
48 lines
1.4 KiB
HTML
<div class="page">
|
||
<h1 class="page-title">Cerca attività</h1>
|
||
|
||
<div class="search-input-wrap">
|
||
<input
|
||
class="search-input"
|
||
type="text"
|
||
[value]="searchQuery()"
|
||
(input)="onQueryChange($event)"
|
||
(keydown)="onQueryKeyDown($event)"
|
||
placeholder="Cerca per nome, branca, categoria, materiale, periodo..."
|
||
/>
|
||
@if (showSuggestions()) {
|
||
<div class="suggestions">
|
||
@for (group of suggestionGroups(); track group.label) {
|
||
<div class="suggestion-group-label">{{ group.label }}</div>
|
||
@for (suggestion of group.objectsList; track suggestion.id) {
|
||
<div class="suggestion-item" (click)="selectSuggestion(suggestion)">
|
||
{{ suggestion.nome }}
|
||
</div>
|
||
}
|
||
}
|
||
</div>
|
||
}
|
||
</div>
|
||
|
||
<div class="active-filters">
|
||
@for (filtro of activeFilters(); track $index) {
|
||
<div class="filter-chip">
|
||
<span>{{ filtroLabel(filtro.gruppo) }}: {{ filtro.nome }}</span>
|
||
<span class="filter-remove" (click)="removeFiltro($index)">×</span>
|
||
</div>
|
||
}
|
||
</div>
|
||
|
||
<div class="results-label">{{ resultsLabel() }}</div>
|
||
|
||
@if (results().length > 0) {
|
||
<div class="grid">
|
||
@for (attivita of results(); track attivita.id) {
|
||
<app-activity-card [attivita]="attivita" />
|
||
}
|
||
</div>
|
||
} @else {
|
||
<div class="empty-state">Nessun risultato con questi filtri.</div>
|
||
}
|
||
</div>
|