mirror of
https://github.com/gristlabs/grist-core.git
synced 2026-03-02 04:09:24 +00:00
(core) Adds setSelectedRows to the grist api for custom view
Summary: This is needed to let custom widget driver filtering of other widget in the same page. Descripion here: - https://grist.quip.com/ctytAQJoFMsM/Hopefully-Small-Projects#temp:C:NNCfe2030b27647439886ca83595 Test Plan: New api tested in a new nbrowser test Reviewers: paulfitz Reviewed By: paulfitz Differential Revision: https://phab.getgrist.com/D3253
This commit is contained in:
@@ -7,8 +7,7 @@ import * as t from "ts-interface-checker";
|
||||
export const ComponentKind = t.union(t.lit("safeBrowser"), t.lit("safePython"), t.lit("unsafeNode"));
|
||||
|
||||
export const GristAPI = t.iface([], {
|
||||
"render": t.func("number", t.param("path", "string"), t.param("target", "RenderTarget"),
|
||||
t.param("options", "RenderOptions", true)),
|
||||
"render": t.func("number", t.param("path", "string"), t.param("target", "RenderTarget"), t.param("options", "RenderOptions", true)),
|
||||
"dispose": t.func("void", t.param("procId", "number")),
|
||||
"subscribe": t.func("void", t.param("tableId", "string")),
|
||||
"unsubscribe": t.func("void", t.param("tableId", "string")),
|
||||
@@ -24,6 +23,8 @@ export const GristDocAPI = t.iface([], {
|
||||
export const GristView = t.iface([], {
|
||||
"fetchSelectedTable": t.func("any"),
|
||||
"fetchSelectedRecord": t.func("any", t.param("rowId", "number")),
|
||||
"allowSelectBy": t.func("void"),
|
||||
"setSelectedRows": t.func("void", t.param("rowIds", t.array("number"))),
|
||||
});
|
||||
|
||||
const exportedTypeSuite: t.ITypeSuite = {
|
||||
|
||||
@@ -99,4 +99,10 @@ export interface GristView {
|
||||
|
||||
// Similar TODO to fetchSelectedTable for return type.
|
||||
fetchSelectedRecord(rowId: number): Promise<any>;
|
||||
|
||||
// Allow custom widget to be listed as a possible source for linking with SELECT BY.
|
||||
allowSelectBy(): Promise<void>;
|
||||
|
||||
// Set the list of selected rows to be used against any linked widget. Requires `allowSelectBy()`.
|
||||
setSelectedRows(rowIds: number[]): Promise<void>;
|
||||
}
|
||||
|
||||
@@ -47,6 +47,8 @@ export const coreDocApi = rpc.getStub<GristDocAPI>('GristDocAPI@grist', checkers
|
||||
export const viewApi = rpc.getStub<GristView>('GristView', checkers.GristView);
|
||||
export const widgetApi = rpc.getStub<WidgetAPI>('WidgetAPI', checkers.WidgetAPI);
|
||||
export const sectionApi = rpc.getStub<CustomSectionAPI>('CustomSectionAPI', checkers.CustomSectionAPI);
|
||||
export const allowSelectBy = viewApi.allowSelectBy;
|
||||
export const setSelectedRows = viewApi.setSelectedRows;
|
||||
|
||||
export const docApi: GristDocAPI & GristView = {
|
||||
...coreDocApi,
|
||||
|
||||
Reference in New Issue
Block a user