The issue is that given the example Vue events integration code, the value that is returned from a listener function in Vue doesn't seem to be returning it's value back to the Bryntum grid. Here is where the bryntum events get translated to Vue events:
const config = {
// Listeners, will relay events using $emit
listeners : {
catchAll(event) {
// Uncomment this line to log events being emitted to console
//console.log(event.type);
this.$emit(event.type, event);
},
thisObj : this
},
};
I was hoping that I could just change the catchAll function to return and it would work, however it seems the this.$emit will always return a Vue component and not the result of the listener function for some reason.
// Doesn't work
catchAll(event) {
// Uncomment this line to log events being emitted to console
//console.log(event.type);
return this.$emit(event.type, event);
},
For this specific event example, I ended up populating the editorContext.finalize method and then altering the catchAll method to be something like this:
catchAll: function (event) {
console.log(event.type);
this.$emit(event.type, event);
if (event.type === 'beforecelleditstart') {
if (event.editorContext && event.editorContext.finalize) {
return event.editorContext.finalize();
}
}
},
And now it works but this seems pretty hacky. Hopefully there is something I'm misunderstanding?