diff --git a/src/app/column-editor/column-editor.component.ts b/src/app/column-editor/column-editor.component.ts index 242e34c..dce2ce9 100644 --- a/src/app/column-editor/column-editor.component.ts +++ b/src/app/column-editor/column-editor.component.ts @@ -1,15 +1,34 @@ -import { ChangeDetectionStrategy, Component, model } from '@angular/core'; +import { + ChangeDetectionStrategy, + Component, + model, + signal, +} from '@angular/core'; import { AccordionModule } from 'primeng/accordion'; import { Column } from '../duckdb.service'; -import { Checkbox, CheckboxChangeEvent } from 'primeng/checkbox'; +import { Checkbox } from 'primeng/checkbox'; import { FormsModule } from '@angular/forms'; import { Button } from 'primeng/button'; import { Tooltip } from 'primeng/tooltip'; +import { Dialog } from 'primeng/dialog'; +import { FloatLabel } from 'primeng/floatlabel'; +import { InputText } from 'primeng/inputtext'; +import { Select } from 'primeng/select'; @Component({ selector: 'app-column-editor', standalone: true, - imports: [AccordionModule, Checkbox, FormsModule, Button, Tooltip], + imports: [ + AccordionModule, + Checkbox, + FormsModule, + Button, + Tooltip, + Dialog, + FloatLabel, + InputText, + Select, + ], template: ` @@ -45,12 +64,40 @@ import { Tooltip } from 'primeng/tooltip'; + + @let editingColumn = this.editingColumn(); + @if (editingColumn) { + + + + + + + + +
+ + +
+ } +
`, changeDetection: ChangeDetectionStrategy.OnPush, }) export class ColumnEditorComponent { columns = model(); + protected editDialogVisible = signal(false); + protected editingColumn = signal(null); + protected checkboxChanged(index: number) { this.columns.update((columns) => { if (columns) { @@ -65,5 +112,11 @@ export class ColumnEditorComponent { }); } - protected editColumn(index: number) {} + protected editColumn(index: number) { + const columns = this.columns(); + if (columns) { + this.editingColumn.set(columns[index]); + this.editDialogVisible.set(true); + } + } }