cloud-ide-element 1.0.66 → 1.0.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -4714,8 +4714,14 @@ class CideEleDataGridComponent {
|
|
|
4714
4714
|
let processedData = data;
|
|
4715
4715
|
// Transform to tree structure if tree config is enabled
|
|
4716
4716
|
if (this.mergedConfig().tree?.enabled) {
|
|
4717
|
+
// Preserve expansion state from current data before transforming
|
|
4718
|
+
const currentData = this.internalData();
|
|
4719
|
+
const expansionState = this.preserveTreeExpansionState(currentData);
|
|
4717
4720
|
processedData = this.transformToTree(data);
|
|
4718
4721
|
console.log('processedData', processedData);
|
|
4722
|
+
// Apply preserved expansion state to new tree data
|
|
4723
|
+
processedData = this.applyTreeExpansionState(processedData, expansionState);
|
|
4724
|
+
console.log('processedData with preserved expansion state', processedData);
|
|
4719
4725
|
}
|
|
4720
4726
|
this.internalData.set(processedData);
|
|
4721
4727
|
console.log('processedData', processedData);
|
|
@@ -4747,7 +4753,12 @@ class CideEleDataGridComponent {
|
|
|
4747
4753
|
let data = this.config?.data || [];
|
|
4748
4754
|
// Transform to tree structure if tree config is enabled
|
|
4749
4755
|
if (this.mergedConfig().tree?.enabled) {
|
|
4756
|
+
// Preserve expansion state from current data before transforming
|
|
4757
|
+
const currentData = this.internalData();
|
|
4758
|
+
const expansionState = this.preserveTreeExpansionState(currentData);
|
|
4750
4759
|
data = this.transformToTree(data);
|
|
4760
|
+
// Apply preserved expansion state to new tree data
|
|
4761
|
+
data = this.applyTreeExpansionState(data, expansionState);
|
|
4751
4762
|
}
|
|
4752
4763
|
this.internalData.set(data);
|
|
4753
4764
|
// Set pagination values based on mode
|
|
@@ -4878,6 +4889,59 @@ class CideEleDataGridComponent {
|
|
|
4878
4889
|
}
|
|
4879
4890
|
this.updatePaginationState();
|
|
4880
4891
|
}
|
|
4892
|
+
/**
|
|
4893
|
+
* Preserve tree expansion state from current data
|
|
4894
|
+
*/
|
|
4895
|
+
preserveTreeExpansionState(currentData) {
|
|
4896
|
+
const expansionState = new Map();
|
|
4897
|
+
const treeConfig = this.mergedConfig().tree;
|
|
4898
|
+
if (!treeConfig)
|
|
4899
|
+
return expansionState;
|
|
4900
|
+
const { expandedKey = 'isExpanded', primaryKey } = treeConfig;
|
|
4901
|
+
const extractExpansionState = (items) => {
|
|
4902
|
+
items.forEach(item => {
|
|
4903
|
+
const itemId = String(this.getNestedValue(item, primaryKey) || '');
|
|
4904
|
+
if (itemId) {
|
|
4905
|
+
const isExpanded = this.getNestedValue(item, expandedKey) || false;
|
|
4906
|
+
expansionState.set(itemId, isExpanded);
|
|
4907
|
+
}
|
|
4908
|
+
// Check for children recursively
|
|
4909
|
+
const children = this.getNestedValue(item, treeConfig.childrenKey || 'children') || [];
|
|
4910
|
+
if (children.length > 0) {
|
|
4911
|
+
extractExpansionState(children);
|
|
4912
|
+
}
|
|
4913
|
+
});
|
|
4914
|
+
};
|
|
4915
|
+
extractExpansionState(currentData);
|
|
4916
|
+
console.log('🔍 DataGrid: Preserved expansion state for', expansionState.size, 'items');
|
|
4917
|
+
return expansionState;
|
|
4918
|
+
}
|
|
4919
|
+
/**
|
|
4920
|
+
* Apply preserved tree expansion state to new data
|
|
4921
|
+
*/
|
|
4922
|
+
applyTreeExpansionState(data, expansionState) {
|
|
4923
|
+
const treeConfig = this.mergedConfig().tree;
|
|
4924
|
+
if (!treeConfig)
|
|
4925
|
+
return data;
|
|
4926
|
+
const { expandedKey = 'isExpanded', primaryKey, childrenKey = 'children' } = treeConfig;
|
|
4927
|
+
const applyToItems = (items) => {
|
|
4928
|
+
return items.map(item => {
|
|
4929
|
+
const itemId = String(this.getNestedValue(item, primaryKey) || '');
|
|
4930
|
+
const isExpanded = expansionState.get(itemId) || false;
|
|
4931
|
+
const updatedItem = {
|
|
4932
|
+
...item,
|
|
4933
|
+
[expandedKey]: isExpanded
|
|
4934
|
+
};
|
|
4935
|
+
// Apply to children recursively
|
|
4936
|
+
const children = this.getNestedValue(item, childrenKey) || [];
|
|
4937
|
+
if (children.length > 0) {
|
|
4938
|
+
this.setNestedValue(updatedItem, childrenKey, applyToItems(children));
|
|
4939
|
+
}
|
|
4940
|
+
return updatedItem;
|
|
4941
|
+
});
|
|
4942
|
+
};
|
|
4943
|
+
return applyToItems(data);
|
|
4944
|
+
}
|
|
4881
4945
|
/**
|
|
4882
4946
|
* Transform flat data to tree structure based on foreign key relationships
|
|
4883
4947
|
*/
|