export function convertConfiguration()

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