Welcome to the JavaScript feedback portal. We’re happy you’re here! If you have feedback on how to improve the JavaScript, we’d love to hear it!>
Thanks for joining our community and helping improve Syncfusion products!
When a grid has a checkbox column and a rowSelected callback then in the default mode when a row is clicked on (rather than the checkbox) then the isInteracted prop of the event object passed into the call back is always true (as would be expected).
However if the checkboxMode of the grid's selectionSettings is set to "ResetOnRowClick" then clicking on a row (rather than the checkbox) seems to result in the event object passed into the rowSelected callback having an isInteracted prop with a value of false (which is incorrect - it should be true because it was selected as a result of the user interacting).
Having delved into your grid code I can see that in ResetOnRowClick mode the rowSelectingCallback function code calls _clearSelection prior to calling clearRow and it looks like _clearSelection is setting the "isInteracted" prop of the the Selection object ("this") to false, so when the rowSelected callback is triggered shortly after (from selectRowCallback which was in turn called from clearRow which was called from rowSelectingCallback) it creates the event arg to pass to the rowSelected callback with that now-false value of isInteracted.
To demonstrate I have forked and slightly modified your demo of checkbox select to have a rowSelect callback which logs to the console the value if isInteracted from the event:
StackBlitz demo
If you click on a row (not on a checkbox) in "Default" mode you'll see on the console that "Interacted: true" is always logged. If you change the mode to "ResetOnRowClick" and do the same you'll see that "Interacted: false" is always logged instead.