diff --git a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/common-filter/compact-filter.component.ts b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/common-filter/compact-filter.component.ts
index 90d5bcf..7424e96 100644
--- a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/common-filter/compact-filter.component.ts
+++ b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/common-filter/compact-filter.component.ts
@@ -38,19 +38,6 @@ export class CompactFilterComponent implements OnInit, OnChanges {
   ) { }
 
   ngOnInit(): void {
-    // Subscribe to filter definitions to get available filters
-    this.filterService.filters$.subscribe(filters => {
-      this.availableFilters = filters;
-      this.updateSelectedFilter();
-    });
-    
-    // Subscribe to filter state changes
-    this.filterService.filterState$.subscribe(state => {
-      if (this.selectedFilter && state.hasOwnProperty(this.selectedFilter.id)) {
-        this.filterValue = state[this.selectedFilter.id];
-      }
-    });
-    
     // Initialize configuration from inputs
     this.configFilterKey = this.filterKey;
     this.configFilterType = this.filterType;
@@ -70,26 +57,53 @@ export class CompactFilterComponent implements OnInit, OnChanges {
     
     // Register this filter with the filter service
     this.registerFilter();
+    
+    // Subscribe to filter definitions to get available filters
+    this.filterService.filters$.subscribe(filters => {
+      this.availableFilters = filters;
+      this.updateSelectedFilter();
+    });
+    
+    // Subscribe to filter state changes
+    this.filterService.filterState$.subscribe(state => {
+      if (this.selectedFilter && state.hasOwnProperty(this.selectedFilter.id)) {
+        this.filterValue = state[this.selectedFilter.id];
+      }
+    });
   }
   
   ngOnChanges(changes: SimpleChanges): void {
     // If filterKey or filterType changes, re-register the filter
     if (changes.filterKey || changes.filterType) {
+      // Load available values for the current filter key if it's a dropdown or multiselect
+      if ((this.filterType === 'dropdown' || this.filterType === 'multiselect') && this.filterKey) {
+        this.loadAvailableValues(this.filterKey);
+      }
       this.registerFilter();
     }
+    
+    // Handle API URL changes
+    if (changes.apiUrl && !changes.apiUrl.firstChange) {
+      if (this.apiUrl) {
+        this.loadAvailableKeys();
+      }
+    }
   }
   
   // Register this filter with the filter service
   registerFilter(): void {
     if (this.filterKey) {
+      // Get current filter values from the service
+      const currentFilterValues = this.filterService.getFilterValues();
+      
       // Create a filter definition for this compact filter
       const filterDef: Filter = {
-        id: `compact-filter-${this.filterKey}`,
+        id: `${this.filterKey}`,
         field: this.filterKey,
         label: this.filterLabel || this.filterKey,
         type: this.filterType as any,
         options: this.filterOptions,
-        value: this.filterValue
+        value: this.filterValue // Use the current filter value
       };
       
       // Get current filters
@@ -99,9 +113,32 @@ export class CompactFilterComponent implements OnInit, OnChanges {
       const existingFilterIndex = currentFilters.findIndex(f => f.id === filterDef.id);
       
       if (existingFilterIndex >= 0) {
+        // Preserve the existing filter configuration
+        const existingFilter = currentFilters[existingFilterIndex];
+        
+        // Preserve the existing filter value if it exists in the service
+        if (currentFilterValues.hasOwnProperty(existingFilter.id)) {
+          filterDef.value = currentFilterValues[existingFilter.id];
+          this.filterValue = filterDef.value; // Update local value
+        } else if (existingFilter.value !== undefined) {
+          // Fallback to existing filter's value if no service value
+          filterDef.value = existingFilter.value;
+          this.filterValue = filterDef.value;
+        }
+        
+        // Preserve other configuration properties
+        filterDef.label = existingFilter.label;
+        filterDef.options = existingFilter.options || this.filterOptions;
+        
         // Update existing filter
         currentFilters[existingFilterIndex] = filterDef;
       } else {
+        // For new filters, check if there's already a value in the service
+        if (currentFilterValues.hasOwnProperty(filterDef.id)) {
+          filterDef.value = currentFilterValues[filterDef.id];
+          this.filterValue = filterDef.value; // Update local value
+        }
+        
         // Add new filter
         currentFilters.push(filterDef);
       }
@@ -118,9 +155,24 @@ export class CompactFilterComponent implements OnInit, OnChanges {
     if (this.filterKey && this.availableFilters.length > 0) {
       this.selectedFilter = this.availableFilters.find(f => f.field === this.filterKey) || null;
       if (this.selectedFilter) {
-        // Get current value for this filter
+        // Get current value for this filter from the service
         const currentState = this.filterService.getFilterValues();
-        this.filterValue = currentState[this.selectedFilter.id] || '';
+        const filterValue = currentState[this.selectedFilter.id];
+        if (filterValue !== undefined) {
+          this.filterValue = filterValue;
+        } else if (this.selectedFilter.value !== undefined) {
+          // Use the filter's default value if no service value
+          this.filterValue = this.selectedFilter.value;
+        } else {
+          // Use the current filter value as fallback
+          this.filterValue = this.filterValue || '';
+        }
+        
+        // Also update configuration properties from the selected filter
+        this.configFilterKey = this.selectedFilter.field;
+        this.configFilterType = this.selectedFilter.type;
+        this.configFilterLabel = this.selectedFilter.label;
+        this.configFilterOptions = (this.selectedFilter.options || []).join(',');
       }
     }
   }
@@ -130,6 +182,14 @@ export class CompactFilterComponent implements OnInit, OnChanges {
       this.filterValue = value;
       this.filterService.updateFilterValue(this.selectedFilter.id, value);
       this.filterChange.emit({ filterId: this.selectedFilter.id, value: value });
+      
+      // Update the filter definition in the service to reflect the new value
+      const currentFilters = this.filterService.getFilters();
+      const filterIndex = currentFilters.findIndex(f => f.id === this.selectedFilter.id);
+      if (filterIndex >= 0) {
+        currentFilters[filterIndex].value = value;
+        this.filterService.setFilters(currentFilters);
+      }
     }
   }
   
@@ -179,11 +239,19 @@ export class CompactFilterComponent implements OnInit, OnChanges {
   toggleConfigMode(): void {
     this.isConfigMode = !this.isConfigMode;
     if (this.isConfigMode) {
-      // Initialize config values
-      this.configFilterKey = this.filterKey;
-      this.configFilterType = this.filterType;
-      this.configFilterLabel = this.filterLabel;
-      this.configFilterOptions = this.filterOptions.join(',');
+      // Initialize config values from current filter if available
+      if (this.selectedFilter) {
+        this.configFilterKey = this.selectedFilter.field;
+        this.configFilterType = this.selectedFilter.type;
+        this.configFilterLabel = this.selectedFilter.label;
+        this.configFilterOptions = (this.selectedFilter.options || []).join(',');
+      } else {
+        // Fallback to current properties
+        this.configFilterKey = this.filterKey;
+        this.configFilterType = this.filterType;
+        this.configFilterLabel = this.filterLabel;
+        this.configFilterOptions = this.filterOptions.join(',');
+      }
       this.configApiUrl = this.apiUrl;
       this.configConnectionId = this.connectionId;
     }
@@ -216,8 +284,8 @@ export class CompactFilterComponent implements OnInit, OnChanges {
     }
     
     // Load available values for the selected key if it's a dropdown or multiselect
-    if ((this.filterType === 'dropdown' || this.filterType === 'multiselect') && this.filterKey) {
-      this.loadAvailableValues(this.filterKey);
+    if ((this.configFilterType === 'dropdown' || this.configFilterType === 'multiselect') && this.configFilterKey) {
+      this.loadAvailableValues(this.configFilterKey);
     }
     
     // Register the updated filter with the filter service
diff --git a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/editnewdash/editnewdash.component.ts b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/editnewdash/editnewdash.component.ts
index 3f0ce66..367d1a4 100644
--- a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/editnewdash/editnewdash.component.ts
+++ b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/editnewdash/editnewdash.component.ts
@@ -782,6 +782,8 @@ export class EditnewdashComponent implements OnInit {
           xyz.filterType = this.gadgetsEditdata.filterType || 'text';
           xyz.filterLabel = this.gadgetsEditdata.filterLabel || '';
           xyz.filterOptions = this.gadgetsEditdata.filterOptions || [];
+          xyz.table = this.gadgetsEditdata.table || '';
+          xyz.connection = this.gadgetsEditdata.connection || undefined;
         }
         
         console.log(xyz);
@@ -818,7 +820,97 @@ export class EditnewdashComponent implements OnInit {
    * This prevents errors when trying to set properties that don't exist on the components
    */
   getChartInputs(item: any): any {
-    // Only pass properties that are relevant to chart components
+    // For CompactFilterComponent, pass only filter configuration properties
+    if (item.component && item.component.name === 'CompactFilterComponent') {
+      const filterInputs = {
+        filterKey: item['filterKey'] || '',
+        filterType: item['filterType'] || 'text',
+        filterLabel: item['filterLabel'] || '',
+        filterOptions: item['filterOptions'] || [],
+        apiUrl: item['table'] || '', // Use table as API URL
+        connectionId: item['connection'] ? parseInt(item['connection'], 10) : undefined
+      };
+      
+      // Preserve configuration in the item itself
+      item['filterKey'] = filterInputs['filterKey'];
+      item['filterType'] = filterInputs['filterType'];
+      item['filterLabel'] = filterInputs['filterLabel'];
+      item['filterOptions'] = filterInputs['filterOptions'];
+      item['table'] = filterInputs['apiUrl'];
+      item['connection'] = item['connection'];
+      
+      // Remove undefined properties to avoid passing unnecessary data
+      Object.keys(filterInputs).forEach(key => {
+        if (filterInputs[key] === undefined) {
+          delete filterInputs[key];
+        }
+      });
+      
+      return filterInputs;
+    }
+    
+    // For CommonFilterComponent, pass only filter-related properties
+    if (item.component && item.component.name === 'CommonFilterComponent') {
+      const commonFilterInputs = {
+        baseFilters: item['baseFilters'] || [],
+        drilldownFilters: item['drilldownFilters'] || [],
+        drilldownLayers: item['drilldownLayers'] || [],
+        fieldName: item['name'] || '',
+        connection: item['connection'] || undefined
+      };
+      
+      // Remove undefined properties to avoid passing unnecessary data
+      Object.keys(commonFilterInputs).forEach(key => {
+        if (commonFilterInputs[key] === undefined) {
+          delete commonFilterInputs[key];
+        }
+      });
+      
+      return commonFilterInputs;
+    }
+    
+    // For GridViewComponent, pass chart properties with drilldown support
+    if (item.component && item.component.name === 'GridViewComponent') {
+      const gridInputs = {
+        xAxis: item.xAxis,
+        yAxis: item.yAxis,
+        table: item.table,
+        datastore: item.datastore,
+        charttitle: item.charttitle,
+        chartlegend: item.chartlegend,
+        showlabel: item.showlabel,
+        chartcolor: item.chartcolor,
+        slices: item.slices,
+        donut: item.donut,
+        charturl: item.charturl,
+        chartparameter: item.chartparameter,
+        datasource: item.datasource,
+        fieldName: item.name, // Using item.name as fieldName
+        connection: item['connection'], // Add connection field using bracket notation
+        // Base drilldown configuration properties
+        drilldownEnabled: item['drilldownEnabled'],
+        drilldownApiUrl: item['drilldownApiUrl'],
+        // Removed drilldownParameterKey since we're using URL templates
+        drilldownXAxis: item['drilldownXAxis'],
+        drilldownYAxis: item['drilldownYAxis'],
+        drilldownParameter: item['drilldownParameter'], // Add drilldown parameter
+        baseFilters: item['baseFilters'] || [], // Add base filters
+        drilldownFilters: item['drilldownFilters'] || [], // Add drilldown filters
+        // Multi-layer drilldown configurations
+        drilldownLayers: item['drilldownLayers'] || []
+      };
+      
+      // Remove undefined properties to avoid passing unnecessary data
+      Object.keys(gridInputs).forEach(key => {
+        if (gridInputs[key] === undefined) {
+          delete gridInputs[key];
+        }
+      });
+      
+      return gridInputs;
+    }
+    
+    // For all other chart components, pass chart-specific properties
     const chartInputs = {
       xAxis: item.xAxis,
       yAxis: item.yAxis,
@@ -848,25 +940,6 @@ export class EditnewdashComponent implements OnInit {
       drilldownLayers: item['drilldownLayers'] || []
     };
     
-    // For CommonFilterComponent, also pass baseFilters, drilldownFilters, drilldownLayers, fieldName, and connection
-    if (item.component && item.component.name === 'CommonFilterComponent') {
-      chartInputs['baseFilters'] = item['baseFilters'] || [];
-      chartInputs['drilldownFilters'] = item['drilldownFilters'] || [];
-      chartInputs['drilldownLayers'] = item['drilldownLayers'] || [];
-      chartInputs['fieldName'] = item['name'] || '';
-      chartInputs['connection'] = item['connection'] || undefined;
-    }
-    
-    // For CompactFilterComponent, pass filter configuration properties
-    if (item.component && item.component.name === 'CompactFilterComponent') {
-      chartInputs['filterKey'] = item['filterKey'] || '';
-      chartInputs['filterType'] = item['filterType'] || 'text';
-      chartInputs['filterLabel'] = item['filterLabel'] || '';
-      chartInputs['filterOptions'] = item['filterOptions'] || [];
-      chartInputs['apiUrl'] = item['table'] || ''; // Use table as API URL
-      chartInputs['connectionId'] = item['connection'] ? parseInt(item['connection'], 10) : undefined;
-    }
-    
     // Remove undefined properties to avoid passing unnecessary data
     Object.keys(chartInputs).forEach(key => {
       if (chartInputs[key] === undefined) {
@@ -929,6 +1002,12 @@ export class EditnewdashComponent implements OnInit {
           updatedItem.filterOptions = this.gadgetsEditdata.filterOptions || [];
           updatedItem.table = this.gadgetsEditdata.table || ''; // API URL
           updatedItem.connection = this.gadgetsEditdata.connection || undefined; // Connection ID
+          
+          // Also preserve these properties in gadgetsEditdata for consistency
+          this.gadgetsEditdata.filterKey = updatedItem.filterKey;
+          this.gadgetsEditdata.filterType = updatedItem.filterType;
+          this.gadgetsEditdata.filterLabel = updatedItem.filterLabel;
+          this.gadgetsEditdata.filterOptions = updatedItem.filterOptions;
         }
         
         console.log('Updated item:', updatedItem);
diff --git a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/bar-chart.zip b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/bar-chart.zip
new file mode 100644
index 0000000..bf020b9
Binary files /dev/null and b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/bar-chart.zip differ
diff --git a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/bar-chart/bar-chart.component.html b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/bar-chart/bar-chart.component.html
index 7a1bccb..83d155a 100644
--- a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/bar-chart/bar-chart.component.html
+++ b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/gadgets/bar-chart/bar-chart.component.html
@@ -1,50 +1,32 @@
-
-  
-  
+
+  
+  
   
   
-  
 0" class="drilldown-indicator">
-    
Drilldown Level: {{currentDrilldownLevel}}
-    
+          
+            Shield Dashboard
+          
           
             {{ 'dashboard_builder' | translate }}
           
@@ -111,7 +114,4 @@
           {{'DELETE' |translate}}
         
       
-    
-   
-  
-  
\ No newline at end of file
+    
\ No newline at end of file