Start adding filters, migrate types to zod, update readme
All checks were successful
build / build (push) Successful in 1m22s

This commit is contained in:
2025-04-25 09:30:38 +09:30
parent d225ff9048
commit 7bc6ca8a39
3 changed files with 51 additions and 74 deletions

View File

@@ -1,16 +1,13 @@
import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
computed,
effect,
inject,
input,
signal,
viewChild,
} from '@angular/core';
import { Skeleton } from 'primeng/skeleton';
import { Table, TableLazyLoadEvent, TableModule } from 'primeng/table';
import { TableLazyLoadEvent, TableModule } from 'primeng/table';
import { Column, DuckdbService } from '../duckdb.service';
@Component({
@@ -34,6 +31,8 @@ import { Column, DuckdbService } from '../duckdb.service';
[virtualScrollItemSize]="46"
[lazy]="true"
(onLazyLoad)="onLazyLoad($event)"
[multiSortMeta]="[{ field: columns()[0].name, order: 1 }]"
stripedRows
>
<ng-template #header let-columns>
<tr>
@@ -43,7 +42,9 @@ import { Column, DuckdbService } from '../duckdb.service';
pResizableColumn
[pSortableColumn]="col.name"
>
{{ col.name }} <p-sortIcon [field]="col.name" />
{{ col.name }}
<p-columnFilter type="text" [field]="col.name" display="menu" />
<p-sortIcon [field]="col.name" />
</th>
}
</tr>
@@ -116,7 +117,15 @@ export class FileViewerComponent {
name: meta.field,
sortType: meta.order < 0 ? 'desc' : 'asc',
})) ?? [],
[],
Array.isArray(event.filters)
? Object.values(event.filters).map((filter) => ({
value: Array.isArray(filter.value)
? filter.value
: [filter.value],
matchType: filter.matchMode,
operator: filter.operator,
}))
: [],
[],
);
// First clear out existing data, don't want to risk loading entire file into memory