private loadDataFromPowerBI()

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;
        }
    }