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.