If you create a checkbox via the html widget, or a button widget, you can create events on click. You could indeed overwrite selectedRowKeys on the Slate Table widget config with a variable holding the state, e.g. called v_selection, and:
update v_selection when the checkbox/button is clicked
update v_selection when a selection is made, e.g. on selectedRowKeys.changed event.
You may also need to handle the “selected page” state as updating the selected rows may some times redirect you to page 1.
This could yield a complex setup across functions, events and variables. A cleaner approach may be to use the Code Sandbox widget to create a custom table where you handle the selection logic.
For example, if your table widget is called w_table with key column called key and your button is w_select_all, you can set the following event-action pairs:
Thank you for the very detailed explanations! Would it be possible to have the currentOffset exposed to Slate. Currently, it’s not possible to access it