diff --git a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/pie-chart/pie-chart.component.html b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/pie-chart/pie-chart.component.html
index 5fa8fc6..0e9c001 100644
--- a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/pie-chart/pie-chart.component.html
+++ b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/pie-chart/pie-chart.component.html
@@ -281,7 +281,7 @@
   
   
     
-    
+    
@@ -291,15 +291,15 @@
       
No chart data available
     
     
-    
+    
     
    0">
diff --git a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/pie-chart/pie-chart.component.ts b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/pie-chart/pie-chart.component.ts
index 4b735de..eabb63c 100644
--- a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/pie-chart/pie-chart.component.ts
+++ b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/pie-chart/pie-chart.component.ts
@@ -37,6 +37,12 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
 
   public pieChartLabels: string[] = ['Category A', 'Category B', 'Category C'];
   public pieChartData: number[] = [30, 50, 20];
+  public pieChartDatasets: any[] = [
+    {
+      data: [30, 50, 20],
+      label: 'Dataset 1'
+    }
+  ];
   public pieChartType: string = 'pie';
   public pieChartOptions: any = {
     responsive: true,
@@ -96,7 +102,7 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
   noDataAvailable: boolean = false;
   
   // Flag to prevent infinite loops
-  private isFetchingData: boolean = false;
+   isFetchingData: boolean = false;
   
   // Subscriptions to unsubscribe on destroy
   private subscriptions: Subscription[] = [];
@@ -132,7 +138,17 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
     console.log('PieChartComponent initialized with default data:', { labels: this.pieChartLabels, data: this.pieChartData });
     // Validate initial data
     this.validateChartData();
-    this.fetchChartData();
+    // Initialize datasets with default data
+    this.pieChartDatasets = [
+      {
+        data: this.pieChartData,
+        label: 'Dataset 1'
+      }
+    ];
+    // Only fetch data if we have the required inputs, otherwise show default data
+    if (this.table && this.xAxis && this.yAxis) {
+      this.fetchChartData();
+    }
   }
 
   ngOnChanges(changes: SimpleChanges): void {
@@ -165,6 +181,12 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
       console.log('Chart configuration changed, fetching new data');
       this.fetchChartData();
     }
+    
+    // If we have the required inputs and haven't fetched data yet, fetch it
+    if ((xAxisChanged || yAxisChanged || tableChanged) && this.table && this.xAxis && this.yAxis && !this.isFetchingData) {
+      console.log('Required inputs available, fetching data');
+      this.fetchChartData();
+    }
   }
 
   ngOnDestroy(): void {
@@ -576,8 +598,6 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
           if (data === null) {
             console.warn('API returned null data. Check if the API endpoint is working correctly.');
             this.noDataAvailable = true;
-            this.pieChartLabels = [];
-            this.pieChartData = [];
             // Reset flag after fetching
             this.isFetchingData = false;
             return;
@@ -588,9 +608,24 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
             // Backend has already filtered the data, just display it
             this.noDataAvailable = data.chartLabels.length === 0;
             this.pieChartLabels = data.chartLabels;
-            this.pieChartData = data.chartData;
+            
+            // Extract the actual data values from the chartData array
+            // chartData is an array with one object containing the data
+            if (data.chartData.length > 0 && data.chartData[0].data) {
+              this.pieChartData = data.chartData[0].data;
+            } else {
+              this.pieChartData = [];
+            }
+            
             // Trigger change detection
+            this.pieChartLabels = [...this.pieChartLabels];
             this.pieChartData = [...this.pieChartData];
+            this.pieChartDatasets = [
+              {
+                data: this.pieChartData,
+                label: 'Dataset 1'
+              }
+            ];
             console.log('Updated pie chart with data:', { labels: this.pieChartLabels, data: this.pieChartData });
           } else if (data && data.labels && data.datasets) {
             // Backend has already filtered the data, just display it
@@ -598,13 +633,29 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
             this.pieChartLabels = data.labels;
             this.pieChartData = data.datasets[0]?.data || [];
             // Trigger change detection
+            this.pieChartLabels = [...this.pieChartLabels];
             this.pieChartData = [...this.pieChartData];
+            this.pieChartDatasets = [
+              {
+                data: this.pieChartData,
+                label: 'Dataset 1'
+              }
+            ];
             console.log('Updated pie chart with legacy data format:', { labels: this.pieChartLabels, data: this.pieChartData });
           } else {
             console.warn('Received data does not have expected structure', data);
             this.noDataAvailable = true;
-            this.pieChartLabels = [];
-            this.pieChartData = [];
+            // Keep default data if no data is available
+            if (this.pieChartLabels.length === 0 && this.pieChartData.length === 0) {
+              this.pieChartLabels = ['Category A', 'Category B', 'Category C'];
+              this.pieChartData = [30, 50, 20];
+              this.pieChartDatasets = [
+                {
+                  data: this.pieChartData,
+                  label: 'Dataset 1'
+                }
+              ];
+            }
           }
           // Reset flag after fetching
           this.isFetchingData = false;
@@ -612,18 +663,13 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
         (error) => {
           console.error('Error fetching pie chart data:', error);
           this.noDataAvailable = true;
-          this.pieChartLabels = [];
-          this.pieChartData = [];
           // Reset flag after fetching
           this.isFetchingData = false;
-          // Keep default data in case of error
         }
       );
     } else {
       console.log('Missing required data for chart:', { table: this.table, xAxis: this.xAxis, yAxis: this.yAxis, connection: this.connection });
       this.noDataAvailable = true;
-      this.pieChartLabels = [];
-      this.pieChartData = [];
       // Reset flag after fetching
       this.isFetchingData = false;
     }
@@ -652,8 +698,6 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
       } else {
         console.warn('Invalid drilldown layer index:', layerIndex);
         this.noDataAvailable = true;
-        this.pieChartLabels = [];
-        this.pieChartData = [];
         return;
       }
     }
@@ -664,8 +708,6 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
     if (!drilldownConfig || !drilldownConfig.apiUrl || !drilldownConfig.xAxis || !drilldownConfig.yAxis) {
       console.warn('Missing drilldown configuration for level:', this.currentDrilldownLevel);
       this.noDataAvailable = true;
-      this.pieChartLabels = [];
-      this.pieChartData = [];
       return;
     }
     
@@ -762,8 +804,6 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
         if (data === null) {
           console.warn('Drilldown API returned null data. Check if the API endpoint is working correctly.');
           this.noDataAvailable = true;
-          this.pieChartLabels = [];
-          this.pieChartData = [];
           return;
         }
         
@@ -772,9 +812,24 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
           // Backend has already filtered the data, just display it
           this.noDataAvailable = data.chartLabels.length === 0;
           this.pieChartLabels = data.chartLabels;
-          this.pieChartData = data.chartData;
+          
+          // Extract the actual data values from the chartData array
+          // chartData is an array with one object containing the data
+          if (data.chartData.length > 0 && data.chartData[0].data) {
+            this.pieChartData = data.chartData[0].data;
+          } else {
+            this.pieChartData = [];
+          }
+          
           // Trigger change detection
+          this.pieChartLabels = [...this.pieChartLabels];
           this.pieChartData = [...this.pieChartData];
+          this.pieChartDatasets = [
+            {
+              data: this.pieChartData,
+              label: 'Dataset 1'
+            }
+          ];
           console.log('Updated pie chart with drilldown data:', { labels: this.pieChartLabels, data: this.pieChartData });
         } else if (data && data.labels && data.datasets) {
           // Backend has already filtered the data, just display it
@@ -782,21 +837,24 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
           this.pieChartLabels = data.labels;
           this.pieChartData = data.datasets[0]?.data || [];
           // Trigger change detection
+          this.pieChartLabels = [...this.pieChartLabels];
           this.pieChartData = [...this.pieChartData];
+          this.pieChartDatasets = [
+            {
+              data: this.pieChartData,
+              label: 'Dataset 1'
+            }
+          ];
           console.log('Updated pie chart with drilldown legacy data format:', { labels: this.pieChartLabels, data: this.pieChartData });
         } else {
           console.warn('Drilldown received data does not have expected structure', data);
           this.noDataAvailable = true;
-          this.pieChartLabels = [];
-          this.pieChartData = [];
+          // Keep current data if no data is available
         }
       },
       (error) => {
         console.error('Error fetching drilldown data:', error);
         this.noDataAvailable = true;
-        this.pieChartLabels = [];
-        this.pieChartData = [];
-        // Keep current data in case of error
       }
     );
   }
@@ -884,6 +942,26 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
   getLegendColor(index: number): string {
     return this.chartColors[index % this.chartColors.length];
   }
+  
+  // Method to determine if chart should be displayed
+  shouldShowChart(): boolean {
+    // Show chart if we have data
+    if (this.pieChartLabels.length > 0 && this.pieChartData.length > 0) {
+      return true;
+    }
+    
+    // Show chart if we're still fetching data
+    if (this.isFetchingData) {
+      return true;
+    }
+    
+    // Show chart if we have default data
+    if (this.pieChartLabels.length > 0 && this.originalPieChartLabels.length > 0) {
+      return true;
+    }
+    
+    return false;
+  }
 
   // events
   public chartClicked(e: any): void {
@@ -977,4 +1055,4 @@ export class PieChartComponent implements OnInit, OnChanges, AfterViewChecked, O
   ngAfterViewChecked(): void {
     // This lifecycle hook can be used if needed for post-render operations
   }
-}
\ No newline at end of file
+}    
\ No newline at end of file