Datatable select rows and columns ( with row multiselection )

Basically what i am trying to do is be able to select columns or select multiple rows in a datatable. Right now i already can select columns or select rows but i am struggling with the multiselection.
Here is my snippet. https://snippet.webix.com/toyjoryk
As you can see you can select columns and select rows, but when trying to multiselect rows it’s not selecting the entire row, just the cell where you clicked and the remaining cells but it ignores the cells before the one you clicked. How can i fix this? Is there an event for multiselection?

@Starling
the problem is that when you try to select second row, onBeforeSelect event is triggered with preserve=true and your handler does not process it.
you can try this workaround
https://snippet.webix.com/hw2cw2rc
you may need to implement own onBeforeUnselect handler logic because given one does not process all cases.