proposed feature enhancement:
Current selection/RowModel.mjs onClick fires select or deselect for all clicks, that is both simple clicks and and keypress click combos.
This feature enhancement provides for additional distinct actions, for clicks with alt, ctrl, meta and shift key presses, by firing 'altSelect', 'ctrlSelect', 'metaSelect' and 'shiftSelect' signals.
Motivation: the immediate motivation is to trigger a dialog to edit table row values,
proposed code
src/selection/RowModel.mjs line 121 ff
onRowClick(data) {
let me = this,
node = RowModel.getRowNode(data.path),
id = node?.id,
view = me.view,
isSelected, record;
if (! id) { return };
record = view.store.getAt(VDomUtil.findVdomChild(view.vdom, id).index);
if (data.altKey) {
view.fire('altSelect', {data, record})
} else if (data.ctrlKey ) {
view.fire('ctrlSelect', {data, record})
} else if (data.metaKey ) {
view.fire('metaSelect', {data, record})
} else if (data.shiftKey ) {
view.fire('shiftSelect', {data, record})
} else {
me.toggleSelection(id);
isSelected = me.isSelected(id);
!isSelected && view.onDeselect?.(record);
view.fire(isSelected ? 'select' : 'deselect', {
record
});
}
}
comment
It is potentially useful to include both the click event data, and the record, in the fire signal payloads. However to avoid breaking things the above code does not change the payload of the original select and deselect signals.
proposed feature enhancement: Current selection/RowModel.mjs onClick fires select or deselect for all clicks, that is both simple clicks and and keypress click combos.
This feature enhancement provides for additional distinct actions, for clicks with alt, ctrl, meta and shift key presses, by firing 'altSelect', 'ctrlSelect', 'metaSelect' and 'shiftSelect' signals.
Motivation: the immediate motivation is to trigger a dialog to edit table row values,
proposed code
src/selection/RowModel.mjs line 121 ff
comment It is potentially useful to include both the click event data, and the record, in the fire signal payloads. However to avoid breaking things the above code does not change the payload of the original select and deselect signals.