gristlabs_grist-core/app/client/models/ClientColumnGetters.ts
Paul Fitzpatrick 1654a2681f (core) move client code to core
Summary:
This moves all client code to core, and makes minimal fix-ups to
get grist and grist-core to compile correctly.  The client works
in core, but I'm leaving clean-up around the build and bundles to
follow-up.

Test Plan: existing tests pass; server-dev bundle looks sane

Reviewers: dsagal

Reviewed By: dsagal

Differential Revision: https://phab.getgrist.com/D2627
2020-10-02 13:24:21 -04:00

29 lines
898 B
TypeScript

import {ColumnGetters} from 'app/common/ColumnGetters';
import * as gristTypes from 'app/common/gristTypes';
/**
*
* An implementation of ColumnGetters for the client, drawing
* on the observables and models available in that context.
*
*/
export class ClientColumnGetters implements ColumnGetters {
constructor(private _tableModel: any) {
}
public getColGetter(colRef: number): ((rowId: number) => any) | null {
const colId = this._tableModel.docModel.columns.getRowModel(Math.abs(colRef)).colId();
return this._tableModel.tableData.getRowPropFunc(colId);
}
public getManualSortGetter(): ((rowId: number) => any) | null {
const manualSortCol = this._tableModel.tableMetaRow.columns().peek().find(
(c: any) => c.colId() === gristTypes.MANUALSORT);
if (!manualSortCol) {
return null;
}
return this.getColGetter(manualSortCol.getRowId());
}
}