55 < button mat-icon-button (click) ="cancel() " matTooltip ="Back to list ">
66 < mat-icon > arrow_back</ mat-icon >
77 </ button >
8- < h1 class ="mat-h1 "> {{ isEditMode ? 'Edit Saved Query' : 'Create Saved Query' }}</ h1 >
8+ < h1 class ="mat-h1 "> {{ isEditMode() ? 'Edit Saved Query' : 'Create Saved Query' }}</ h1 >
99 </ div >
1010
11- < div *ngIf ="loading " class ="loading-container ">
11+ < div *ngIf ="loading() " class ="loading-container ">
1212 < mat-spinner diameter ="40 "> </ mat-spinner >
1313 </ div >
1414
15- < div *ngIf ="!loading " class ="chart-edit-content ">
15+ < div *ngIf ="!loading() " class ="chart-edit-content ">
1616 < div class ="query-details ">
1717 < mat-form-field appearance ="outline " class ="name-field ">
1818 < mat-label > Query Name</ mat-label >
1919 < input matInput
20- [(ngModel)] ="queryName "
20+ [ngModel] ="queryName() "
21+ (ngModelChange) ="queryName.set($event) "
2122 placeholder ="Enter a name for this query "
2223 data-testid ="query-name-input "
2324 required >
@@ -26,7 +27,8 @@ <h1 class="mat-h1">{{ isEditMode ? 'Edit Saved Query' : 'Create Saved Query' }}<
2627 < mat-form-field appearance ="outline " class ="description-field ">
2728 < mat-label > Description (optional)</ mat-label >
2829 < input matInput
29- [(ngModel)] ="queryDescription "
30+ [ngModel] ="queryDescription() "
31+ (ngModelChange) ="queryDescription.set($event) "
3032 placeholder ="Add a description "
3133 data-testid ="query-description-input ">
3234 </ mat-form-field >
@@ -38,35 +40,35 @@ <h1 class="mat-h1">{{ isEditMode ? 'Edit Saved Query' : 'Create Saved Query' }}<
3840 < h3 > SQL Query</ h3 >
3941 < button mat-stroked-button
4042 (click) ="testQuery() "
41- [disabled] ="!canTest "
43+ [disabled] ="!canTest() "
4244 data-testid ="test-query-button ">
43- < mat-icon *ngIf ="!testing "> play_arrow</ mat-icon >
44- < mat-spinner *ngIf ="testing " diameter ="18 "> </ mat-spinner >
45- {{ testing ? 'Testing...' : 'Test Query' }}
45+ < mat-icon *ngIf ="!testing() "> play_arrow</ mat-icon >
46+ < mat-spinner *ngIf ="testing() " diameter ="18 "> </ mat-spinner >
47+ {{ testing() ? 'Testing...' : 'Test Query' }}
4648 </ button >
4749 </ div >
4850 < div class ="code-editor-box " data-hj-suppress >
4951 < ngs-code-editor
5052 [theme] ="codeEditorTheme "
51- [codeModel] ="codeModel "
53+ [codeModel] ="codeModel() "
5254 [options] ="codeEditorOptions "
5355 (valueChanged) ="onCodeChange($event) ">
5456 </ ngs-code-editor >
5557 </ div >
5658 </ div >
5759
58- < div class ="preview-section " *ngIf ="showResults ">
60+ < div class ="preview-section " *ngIf ="showResults() ">
5961 < div class ="section-header ">
6062 < h3 > Chart Preview</ h3 >
61- < span class ="execution-time " *ngIf ="executionTime !== null ">
62- Executed in {{ executionTime }}ms
63+ < span class ="execution-time " *ngIf ="executionTime() !== null ">
64+ Executed in {{ executionTime() }}ms
6365 </ span >
6466 </ div >
6567
6668 < div class ="chart-config ">
6769 < mat-form-field appearance ="outline " class ="chart-config-field ">
6870 < mat-label > Chart Type</ mat-label >
69- < mat-select [( ngModel) ] ="chartType " data-testid ="chart-type-select ">
71+ < mat-select [ngModel] ="chartType() " (ngModelChange) =" chartType.set($event) " data-testid ="chart-type-select ">
7072 < mat-option *ngFor ="let type of chartTypes " [value] ="type.value ">
7173 {{ type.label }}
7274 </ mat-option >
@@ -75,56 +77,56 @@ <h3>Chart Preview</h3>
7577
7678 < mat-form-field appearance ="outline " class ="chart-config-field ">
7779 < mat-label > Label Column</ mat-label >
78- < mat-select [( ngModel) ] ="labelColumn " data-testid ="label-column-select ">
79- < mat-option *ngFor ="let col of resultColumns " [value] ="col ">
80+ < mat-select [ngModel] ="labelColumn() " (ngModelChange) =" labelColumn.set($event) " data-testid ="label-column-select ">
81+ < mat-option *ngFor ="let col of resultColumns() " [value] ="col ">
8082 {{ col }}
8183 </ mat-option >
8284 </ mat-select >
8385 </ mat-form-field >
8486
8587 < mat-form-field appearance ="outline " class ="chart-config-field ">
8688 < mat-label > Value Column</ mat-label >
87- < mat-select [( ngModel) ] ="valueColumn " data-testid ="value-column-select ">
88- < mat-option *ngFor ="let col of resultColumns " [value] ="col ">
89+ < mat-select [ngModel] ="valueColumn() " (ngModelChange) =" valueColumn.set($event) " data-testid ="value-column-select ">
90+ < mat-option *ngFor ="let col of resultColumns() " [value] ="col ">
8991 {{ col }}
9092 </ mat-option >
9193 </ mat-select >
9294 </ mat-form-field >
9395 </ div >
9496
95- < div class ="chart-container " *ngIf ="hasChartData ">
97+ < div class ="chart-container " *ngIf ="hasChartData() ">
9698 < app-chart-preview
97- [chartType] ="chartType "
98- [data] ="testResults "
99- [labelColumn] ="labelColumn "
100- [valueColumn] ="valueColumn ">
99+ [chartType] ="chartType() "
100+ [data] ="testResults() "
101+ [labelColumn] ="labelColumn() "
102+ [valueColumn] ="valueColumn() ">
101103 </ app-chart-preview >
102104 </ div >
103105
104- < div class ="no-chart-data " *ngIf ="!hasChartData && testResults.length > 0 ">
106+ < div class ="no-chart-data " *ngIf ="!hasChartData() && testResults() .length > 0 ">
105107 < p > Select label and value columns to display the chart</ p >
106108 </ div >
107109 </ div >
108110 </ div >
109111
110- < div class ="results-section " *ngIf ="showResults && testResults.length > 0 ">
112+ < div class ="results-section " *ngIf ="showResults() && testResults() .length > 0 ">
111113 < div class ="section-header ">
112- < h3 > Query Results ({{ testResults.length }} rows)</ h3 >
114+ < h3 > Query Results ({{ testResults() .length }} rows)</ h3 >
113115 </ div >
114116 < div class ="results-table-container ">
115- < table mat-table [dataSource] ="testResults " class ="results-table mat-elevation-z1 ">
116- < ng-container *ngFor ="let column of resultColumns " [matColumnDef] ="column ">
117+ < table mat-table [dataSource] ="testResults() " class ="results-table mat-elevation-z1 ">
118+ < ng-container *ngFor ="let column of resultColumns() " [matColumnDef] ="column ">
117119 < th mat-header-cell *matHeaderCellDef > {{ column }}</ th >
118120 < td mat-cell *matCellDef ="let row "> {{ row[column] }}</ td >
119121 </ ng-container >
120122
121- < tr mat-header-row *matHeaderRowDef ="resultColumns "> </ tr >
122- < tr mat-row *matRowDef ="let row; columns: resultColumns; "> </ tr >
123+ < tr mat-header-row *matHeaderRowDef ="resultColumns() "> </ tr >
124+ < tr mat-row *matRowDef ="let row; columns: resultColumns() ; "> </ tr >
123125 </ table >
124126 </ div >
125127 </ div >
126128
127- < div class ="no-results " *ngIf ="showResults && testResults.length === 0 ">
129+ < div class ="no-results " *ngIf ="showResults() && testResults() .length === 0 ">
128130 < mat-icon > info</ mat-icon >
129131 < p > Query executed successfully but returned no results.</ p >
130132 </ div >
@@ -135,10 +137,10 @@ <h3>Query Results ({{ testResults.length }} rows)</h3>
135137 </ button >
136138 < button mat-flat-button color ="primary "
137139 (click) ="saveQuery() "
138- [disabled] ="!canSave "
140+ [disabled] ="!canSave() "
139141 data-testid ="save-query-button ">
140- < mat-spinner *ngIf ="saving " diameter ="18 "> </ mat-spinner >
141- {{ saving ? 'Saving...' : (isEditMode ? 'Update Query' : 'Save Query') }}
142+ < mat-spinner *ngIf ="saving() " diameter ="18 "> </ mat-spinner >
143+ {{ saving() ? 'Saving...' : (isEditMode() ? 'Update Query' : 'Save Query') }}
142144 </ button >
143145 </ div >
144146 </ div >
0 commit comments