in src/visual.ts [90:117]
public enumerateSubTotalsOptions(enumeration, objects: DataViewObjects): void {
let instance = this.createVisualObjectInstance(SubtotalProperties.ObjectSubTotals);
let rowSubtotalsEnabled: boolean = Visual.setInstanceProperty(objects, SubtotalProperties.rowSubtotals, instance);
let columnSubtotalsEnabled: boolean = Visual.setInstanceProperty(objects, SubtotalProperties.columnSubtotals, instance);
enumeration.pushInstance(instance);
if (rowSubtotalsEnabled) {
// Per row level
instance = this.createVisualObjectInstance(SubtotalProperties.ObjectSubTotals);
let perLevel = Visual.setInstanceProperty(objects, SubtotalProperties.rowSubtotalsPerLevel, instance);
enumeration.pushInstance(instance, /* mergeInstances */ false);
if (perLevel)
this.enumeratePerLevelSubtotals(enumeration, this.dataView.matrix.rows.levels);
}
if (columnSubtotalsEnabled) {
// Per column level
instance = this.createVisualObjectInstance(SubtotalProperties.ObjectSubTotals);
let perLevel = Visual.setInstanceProperty(objects, SubtotalProperties.columnSubtotalsPerLevel, instance);
enumeration.pushInstance(instance, /* mergeInstances */ false);
if (perLevel)
this.enumeratePerLevelSubtotals(enumeration, this.dataView.matrix.columns.levels);
}
}