in packages/tablesorter-powerbi/src/TableSorterVisual.ts [413:450]
private loadDataFromPowerBI(oldSettings: TSSettings, updateType: UpdateType) {
if (this.dataViewTable) {
const rankSettings = this.visualSettings.rankSettings;
const oldRankSettings = oldSettings.rankSettings;
const newData = converter(
this.dataView,
this.selectionManager.getSelectionIds(),
rankSettings as any,
() => this.host.createSelectionIdBuilder());
const config = buildConfig(
this.dataView,
newData.data,
rankSettings,
// We really only want to reset the rank columns IF the user is JUST toggling the reverse option,
// Otherwise, this can just be true if we are loading from a refresh
oldRankSettings.reverseBars !== rankSettings.reverseBars && updateType === UpdateType.Settings,
rankSettings.reverseBars);
const selectedRows = newData.data.filter(n => n.selected);
this.tableSorter.configuration = config;
this._data = newData;
if (this.loadResolver) {
log("Resolving additional data");
const resolver = this.loadResolver;
delete this.loadResolver;
resolver(newData.data);
} else {
log("Loading data into MyDataProvider");
const domainInfo = config.columns
.filter(n => !!n.domain)
.reduce((a, b) => { a[b.column] = b.domain; return a; }, {});
this.tableSorter.dataProvider = this.createDataProvider(newData, domainInfo);
}
this.tableSorter.selection = selectedRows;
}
}