Update to angular 21
All checks were successful
build / build (push) Successful in 4m45s

This commit is contained in:
2026-03-09 21:46:34 +10:30
parent b8bcb7f506
commit 0ac5ab3e42
4 changed files with 300 additions and 434 deletions

View File

@@ -2,7 +2,8 @@
"$schema": "./node_modules/@angular/cli/lib/config/schema.json", "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1, "version": 1,
"cli": { "cli": {
"packageManager": "bun" "packageManager": "bun",
"analytics": false
}, },
"newProjectRoot": "projects", "newProjectRoot": "projects",
"projects": { "projects": {

652
bun.lock

File diff suppressed because it is too large Load Diff

View File

@@ -10,14 +10,14 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "^21.0.5", "@angular/animations": "^21.2.1",
"@angular/common": "^21.0.5", "@angular/common": "^21.2.1",
"@angular/compiler": "^21.0.5", "@angular/compiler": "^21.2.1",
"@angular/core": "^21.0.5", "@angular/core": "^21.2.1",
"@angular/forms": "^21.0.5", "@angular/forms": "^21.2.1",
"@angular/platform-browser": "^21.0.5", "@angular/platform-browser": "^21.2.1",
"@angular/platform-browser-dynamic": "^21.0.5", "@angular/platform-browser-dynamic": "^21.2.1",
"@angular/router": "^21.0.5", "@angular/router": "^21.2.1",
"@duckdb/duckdb-wasm": "^1.30.0", "@duckdb/duckdb-wasm": "^1.30.0",
"@primeng/themes": "^21.0.0", "@primeng/themes": "^21.0.0",
"@tailwindcss/postcss": "^4.1.15", "@tailwindcss/postcss": "^4.1.15",
@@ -32,9 +32,9 @@
"zod": "^4.1.12" "zod": "^4.1.12"
}, },
"devDependencies": { "devDependencies": {
"@angular/build": "^21.0.3", "@angular/build": "^21.2.1",
"@angular/cli": "^21.0.3", "@angular/cli": "^21.2.1",
"@angular/compiler-cli": "^21.0.5", "@angular/compiler-cli": "^21.2.1",
"@tauri-apps/cli": "^2.9.0", "@tauri-apps/cli": "^2.9.0",
"@types/jasmine": "~5.1.12", "@types/jasmine": "~5.1.12",
"jasmine-core": "~5.12.0", "jasmine-core": "~5.12.0",

View File

@@ -14,7 +14,7 @@ import { Dialog } from 'primeng/dialog';
import { FloatLabel } from 'primeng/floatlabel'; import { FloatLabel } from 'primeng/floatlabel';
import { InputText } from 'primeng/inputtext'; import { InputText } from 'primeng/inputtext';
import { Select } from 'primeng/select'; import { Select } from 'primeng/select';
import { Field, form } from '@angular/forms/signals'; import { Field, form, FormField } from '@angular/forms/signals';
@Component({ @Component({
selector: 'app-column-editor', selector: 'app-column-editor',
@@ -29,7 +29,7 @@ import { Field, form } from '@angular/forms/signals';
FloatLabel, FloatLabel,
InputText, InputText,
Select, Select,
Field, FormField,
], ],
template: ` template: `
<p-accordion [value]="0"> <p-accordion [value]="0">
@@ -67,25 +67,34 @@ import { Field, form } from '@angular/forms/signals';
</p-accordion-panel> </p-accordion-panel>
</p-accordion> </p-accordion>
<p-dialog [(visible)]="editDialogVisible" header="Edit Column"> <p-dialog [(visible)]="editDialogVisible" header="Edit Column">
<div class="flex flex-col gap-2">
<p-float-label variant="in"> <p-float-label variant="in">
<input pInputText id="column-edit-name" [field]="editingColumn.name" /> <input
pInputText
id="column-edit-name"
[formField]="editingColumn.name"
/>
<label for="column-edit-name">Name</label> <label for="column-edit-name">Name</label>
</p-float-label> </p-float-label>
<p-float-label variant="in"> <p-float-label variant="in">
<p-select <p-select
fluid
inputId="column-edit-type" inputId="column-edit-type"
[field]="editingColumn.type" [formField]="$any(editingColumn.type)"
[options]="columnTypes"
appendTo="body"
></p-select> ></p-select>
<label for="column-edit-type">Type</label> <label for="column-edit-type">Type</label>
</p-float-label> </p-float-label>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<p-check-box <p-check-box
[field]="editingColumn.enabled" [formField]="editingColumn.enabled"
[binary]="true" [binary]="true"
inputId="column-edit-enabled" inputId="column-edit-enabled"
></p-check-box> ></p-check-box>
<label for="column-edit-enabled">Enabled</label> <label for="column-edit-enabled">Enabled</label>
</div> </div>
</div>
</p-dialog> </p-dialog>
`, `,
changeDetection: ChangeDetectionStrategy.OnPush, changeDetection: ChangeDetectionStrategy.OnPush,
@@ -93,15 +102,17 @@ import { Field, form } from '@angular/forms/signals';
export class ColumnEditorComponent { export class ColumnEditorComponent {
columns = model<Column[]>(); columns = model<Column[]>();
protected editDialogVisible = signal(false); protected readonly editDialogVisible = signal(false);
protected currentColumn = signal<Column>({ protected readonly columnTypes = ['string', 'number', 'boolean'];
protected readonly currentColumn = signal<Column>({
name: '', name: '',
enabled: true, enabled: true,
type: 'string', type: 'string',
}); });
protected editingColumn = form(this.currentColumn); protected readonly editingColumn = form(this.currentColumn);
protected checkboxChanged(index: number) { protected checkboxChanged(index: number) {
this.columns.update((columns) => { this.columns.update((columns) => {