in packages/tablesorter/src/conversion.ts [119:157]
export function convertConfiguration(lineupImpl: ILineupImpl, filteredColumn?: any): ITableSorterConfiguration {
"use strict";
// TODO: filteredColumn is not a great fix. The problem is when we filter a column, we reload lineup with new data/columns
// but the UI remains open, and has a reference to an old column. filteredColumn is that old column.
// full spec
const dataSpec: any = lineupImpl.spec.dataspec;
const s: ITableSorterConfiguration = $.extend(true, {}, {
columns: dataSpec.columns.map((n: any) => {
return merge({}, n, {
// domain: [0, 40000]
});
}),
primaryKey: dataSpec.primaryKey,
});
// create current layout
const descs = lineupImpl.storage.getColumnLayout()
.map((d: any) => {
let base = d.description();
if (filteredColumn) {
const fDesc = filteredColumn.description();
if (fDesc.column === base.column) {
base = fDesc;
d = filteredColumn;
}
}
const result = merge({}, base, {
domain: d.scale ? d.scale.domain() : undefined,
});
// If it is set to false or whatever, just remove it
if (!result.filter) {
delete result.filter;
}
return result;
});
// s.filters = this.getFiltersFromLineup();
s.layout = groupBy(descs, (d: any) => d.columnBundle || "primary");
s.sort = convertSort(lineupImpl);
return s;
}