checkedNodes => checkedColumns

This commit is contained in:
Jan Prochazka
2022-08-26 18:25:40 +02:00
parent 0ae7939f93
commit d2f18bc048
3 changed files with 17 additions and 17 deletions

View File

@@ -55,9 +55,9 @@ export interface PerspectiveNodeConfig {
isParentFilter?: true | undefined; isParentFilter?: true | undefined;
expandedNodes: string[]; expandedColumns: string[];
checkedNodes: string[]; checkedColumns: string[];
uncheckedNodes: string[]; uncheckedColumns: string[];
sort: { sort: {
columnName: string; columnName: string;
@@ -98,9 +98,9 @@ export function createPerspectiveNodeConfig(name: { schemaName?: string; pureNam
...name, ...name,
designerId: uuidv1(), designerId: uuidv1(),
expandedNodes: [], expandedColumns: [],
checkedNodes: [], checkedColumns: [],
uncheckedNodes: [], uncheckedColumns: [],
sort: [], sort: [],
filters: {}, filters: {},

View File

@@ -131,11 +131,11 @@ export abstract class PerspectiveTreeNode {
return 0; return 0;
} }
get isExpanded() { get isExpanded() {
return this.parentNodeConfig?.expandedNodes?.includes(this.codeName); return this.parentNodeConfig?.expandedColumns?.includes(this.codeName);
} }
get isChecked() { get isChecked() {
if (this.parentNodeConfig?.checkedNodes?.includes(this.codeName)) return true; if (this.parentNodeConfig?.checkedColumns?.includes(this.codeName)) return true;
if (this.parentNodeConfig?.uncheckedNodes?.includes(this.codeName)) return false; if (this.parentNodeConfig?.uncheckedColumns?.includes(this.codeName)) return false;
return this.defaultChecked; return this.defaultChecked;
} }
get columnTitle() { get columnTitle() {
@@ -179,14 +179,14 @@ export abstract class PerspectiveTreeNode {
} }
toggleExpanded(value?: boolean) { toggleExpanded(value?: boolean) {
this.includeInNodeSet('expandedNodes', value == null ? !this.isExpanded : value); this.includeInNodeSet('expandedColumns', value == null ? !this.isExpanded : value);
} }
toggleChecked(value?: boolean) { toggleChecked(value?: boolean) {
if (this.defaultChecked) { if (this.defaultChecked) {
this.includeInNodeSet('uncheckedNodes', value == null ? this.isChecked : value); this.includeInNodeSet('uncheckedColumns', value == null ? this.isChecked : value);
} else { } else {
this.includeInNodeSet('checkedNodes', value == null ? !this.isChecked : value); this.includeInNodeSet('checkedColumns', value == null ? !this.isChecked : value);
} }
} }
@@ -217,7 +217,7 @@ export abstract class PerspectiveTreeNode {
return cfg; return cfg;
} }
includeInNodeSet(field: 'expandedNodes' | 'uncheckedNodes' | 'checkedNodes', isIncluded: boolean) { includeInNodeSet(field: 'expandedColumns' | 'uncheckedColumns' | 'checkedColumns', isIncluded: boolean) {
this.setConfig(cfg => { this.setConfig(cfg => {
const changedFields = n => ({ const changedFields = n => ({
...n, ...n,
@@ -225,7 +225,7 @@ export abstract class PerspectiveTreeNode {
}); });
cfg = this.parentNode?.ensureNodeConfig(cfg); cfg = this.parentNode?.ensureNodeConfig(cfg);
if (isIncluded && field == 'expandedNodes') { if (isIncluded && field == 'expandedColumns') {
cfg = this.ensureNodeConfig(cfg); cfg = this.ensureNodeConfig(cfg);
} }

View File

@@ -37,7 +37,7 @@ test('test flat view', () => {
test('test one level nesting', () => { test('test one level nesting', () => {
const artistTable = chinookDbInfo.tables.find(x => x.pureName == 'Artist'); const artistTable = chinookDbInfo.tables.find(x => x.pureName == 'Artist');
const config = createPerspectiveConfig({ pureName: 'Artist' }); const config = createPerspectiveConfig({ pureName: 'Artist' });
config.nodes[0].checkedNodes = ['Album']; config.nodes[0].checkedColumns = ['Album'];
const root = new PerspectiveTableNode( const root = new PerspectiveTableNode(
artistTable, artistTable,
{ conid: { db: chinookDbInfo } }, { conid: { db: chinookDbInfo } },
@@ -98,8 +98,8 @@ test('test two level nesting', () => {
designerId: '1', designerId: '1',
columns: [{ source: 'ArtistId', target: 'ArtistId' }], columns: [{ source: 'ArtistId', target: 'ArtistId' }],
}); });
config.nodes[0].checkedNodes = ['Album']; config.nodes[0].checkedColumns = ['Album'];
config.nodes[1].checkedNodes = ['Track']; config.nodes[1].checkedColumns = ['Track'];
const root = new PerspectiveTableNode( const root = new PerspectiveTableNode(
artistTable, artistTable,