diff --git a/src/sql/workbench/browser/modelComponents/groupContainer.component.ts b/src/sql/workbench/browser/modelComponents/groupContainer.component.ts index 45063e5aec..814ae3f3ff 100644 --- a/src/sql/workbench/browser/modelComponents/groupContainer.component.ts +++ b/src/sql/workbench/browser/modelComponents/groupContainer.component.ts @@ -14,11 +14,14 @@ import { GroupLayout, GroupContainerProperties } from 'azdata'; import { ContainerBase } from 'sql/workbench/browser/modelComponents/componentBase'; import { endsWith } from 'vs/base/common/strings'; +import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; +import { KeyCode } from 'vs/base/common/keyCodes'; +import * as DOM from 'vs/base/browser/dom'; @Component({ selector: 'modelview-groupContainer', template: ` -
+
{{_containerLayout.header}}
@@ -48,6 +51,23 @@ export default class GroupContainer extends ContainerBase implement ngOnInit(): void { this.baseInit(); + this.onkeydown(this._el.nativeElement, (e: StandardKeyboardEvent) => { + if (e.keyCode === KeyCode.Enter || e.keyCode === KeyCode.Space) { + this.changeState(); + DOM.EventHelper.stop(e, true); + } + else if (e.keyCode === KeyCode.LeftArrow) { + if (!this.collapsed) { + this.changeState(); + } + DOM.EventHelper.stop(e, true); + } else if (e.keyCode === KeyCode.RightArrow) { + if (this.collapsed) { + this.changeState(); + } + DOM.EventHelper.stop(e, true); + } + }); } ngOnDestroy(): void {