I believe you need to watch filters, so tabulator.param.filters and apply those same filters in the backend: [{'field': 'Director', 'type': '=', 'value': 'Steven Spielberg'}]
When a filter is applied client-side the `filters` parameter is synced with Python. The definition of `filters` looks something like this:
Don’t know how I missed that! It works fine now, however the selection from the points view breaks if I update the plot with the tabulator.current_view.
When filtered the selection doesn’t work. I think it has to do with the index on the points is on current viewable points while the index on the tabulator view is based on the entire original dataframe.
It works but it would be great if it worked with link_selections or via javascript directly.
See failing selection reel below
@ahuang11 Another issue is that the selection event gets triggered again via hv.Points(…, selected=…) and tabulator.selection=… So one has to have logic to figure out if the call is originating from one of these. Is there a better solution?
Also would like to throttle the selection and filters. I went down the rabbit hole with value_throttled being mentioned but that doesn’t have an application here as there is no filters_throttled or selection_throttled available.
Both operations are firing off a series of events as a user types in values in the header_filters for the tabulator and for lasso selection for points view. Is there a generic way to throttle pn.bind updates?
I don’t think there’s a value throttled for filter so maybe you can submit an issue.
Alternatively, workarounds include ensuring there are matching values before filtering, or manually adding an async countdown that resets after new input.
@ahuang11 The selection events gets triggered when creating the hv.Points(…, selected=) and tabulator.selection=… This usually stops reverberating between them because the selection becomes the same. However I have a usecase of many-to-one mapping (from points to Table) and l don’t want the selection made from either side to propagate.
Is there a way to avoid the selection event triggering the callbacks ? or in the callback know if the call originated because of a tap on the point or a click on the row of the table?