node checked & column checked distuingish

This commit is contained in:
Jan Prochazka
2022-08-27 16:02:15 +02:00
parent 2b68a6e1de
commit b6a0fe6713
2 changed files with 46 additions and 28 deletions

View File

@@ -133,12 +133,16 @@ export abstract class PerspectiveTreeNode {
get isExpanded() {
return this.parentNodeConfig?.expandedColumns?.includes(this.codeName);
}
get isChecked() {
get isCheckedColumn() {
if (this.parentNodeConfig?.checkedColumns?.includes(this.codeName)) return true;
// if (this.parentNodeConfig?.uncheckedColumns?.includes(this.codeName)) return false;
// return this.defaultChecked;
return false;
}
get isChecked() {
return this.isCheckedColumn;
}
get isCheckedNode() {
return !!this.config.nodes?.find(x => x.designerId == this.designerId)?.isNodeChecked;
}
get isSecondaryChecked() {
return false;
}
@@ -198,6 +202,20 @@ export abstract class PerspectiveTreeNode {
// }
}
toggleCheckedNode(value?: boolean) {
this.setConfig(cfg => ({
...cfg,
nodes: cfg.nodes.map(node =>
node.designerId == this.designerId
? {
...node,
isNodeChecked: value == null ? !node.isNodeChecked : value,
}
: node
),
}));
}
toggleSecondaryChecked(value?: boolean) {}
createReferenceConfigColumns(): PerspectiveReferenceConfig['columns'] {
@@ -540,28 +558,18 @@ export class PerspectiveTableColumnNode extends PerspectiveTreeNode {
}
get isSecondaryChecked() {
return super.isChecked;
return super.isCheckedColumn;
}
get isChecked() {
if (this.foreignKey) return !!this.config.nodes?.find(x => x.designerId == this.designerId)?.isNodeChecked;
return super.isChecked;
if (this.foreignKey) return this.isCheckedNode;
return super.isCheckedColumn;
}
get secondaryCheckable() {
return !!this.foreignKey;
}
toggleChecked(value?: boolean) {
if (this.foreignKey) {
this.setConfig(cfg => ({
...cfg,
nodes: cfg.nodes.map(node =>
node.designerId == this.designerId
? {
...node,
isNodeChecked: value == null ? !node.isNodeChecked : value,
}
: node
),
}));
this.toggleCheckedNode(value);
} else {
super.toggleChecked(value);
}
@@ -855,6 +863,14 @@ export class PerspectiveTableReferenceNode extends PerspectiveTableNode {
return super.codeName;
}
get isChecked() {
return this.isCheckedNode;
}
toggleChecked(value?: boolean) {
this.toggleCheckedNode(value);
}
getParentJoinCondition(alias: string, parentAlias: string): Condition[] {
if (!this.foreignKey) return [];
return this.foreignKey.columns.map(column => {