tick().then(onMoveReferences)} class:scroll={settings?.allowScrollColumns}>
- {#each columns || [] as column}
+ {#each flatColumns || [] as column (column.columnName)}
settings?.isColumnExpandable(x))}
+ isExpandable={settings?.isColumnExpandable && settings?.isColumnExpandable(column)}
+ isExpanded={settings?.isColumnExpanded && settings?.isColumnExpanded(column)}
+ expandLevel={settings?.columnExpandLevel ? settings?.columnExpandLevel(column) : 0}
+ toggleExpanded={value => settings?.toggleExpandedColumn(column, value)}
{column}
{table}
{designer}
diff --git a/packages/web/src/designer/DomTableRef.ts b/packages/web/src/designer/DomTableRef.ts
index 85f6c7590..a592e34cd 100644
--- a/packages/web/src/designer/DomTableRef.ts
+++ b/packages/web/src/designer/DomTableRef.ts
@@ -6,13 +6,15 @@ export default class DomTableRef {
table: DesignerTableInfo;
designerId: string;
domRefs: { [column: string]: Element };
+ settings: any;
- constructor(table: DesignerTableInfo, domRefs, domWrapper: Element) {
+ constructor(table: DesignerTableInfo, domRefs, domWrapper: Element, settings) {
this.domTable = domRefs[''];
this.domWrapper = domWrapper;
this.table = table;
this.designerId = table.designerId;
this.domRefs = domRefs;
+ this.settings = settings;
}
getRect() {
@@ -31,6 +33,10 @@ export default class DomTableRef {
getColumnY(columnName: string) {
let col = this.domRefs[columnName];
+ while (col == null && this.settings?.getParentColumnName && this.settings?.getParentColumnName(columnName)) {
+ columnName = this.settings?.getParentColumnName(columnName);
+ col = this.domRefs[columnName];
+ }
if (!col) return null;
const rect = col.getBoundingClientRect();
const wrap = this.domWrapper.getBoundingClientRect();
diff --git a/packages/web/src/perspectives/PerspectiveDesigner.svelte b/packages/web/src/perspectives/PerspectiveDesigner.svelte
index 4731813f2..3b3a49ed5 100644
--- a/packages/web/src/perspectives/PerspectiveDesigner.svelte
+++ b/packages/web/src/perspectives/PerspectiveDesigner.svelte
@@ -1,6 +1,10 @@