Add collapse/expand functionality to notebook code cells. (#7481)

This commit is contained in:
Cory Rivera
2019-10-03 16:50:47 -07:00
committed by GitHub
parent 080d9bbaa6
commit 6b29fd05bd
29 changed files with 492 additions and 34 deletions

View File

@@ -268,6 +268,47 @@ export class RunAllCellsAction extends Action {
}
}
export class CollapseCellsAction extends ToggleableAction {
private static readonly collapseCells = localize('collapseAllCells', "Collapse Cells");
private static readonly expandCells = localize('expandAllCells', "Expand Cells");
private static readonly baseClass = 'notebook-button';
private static readonly collapseCssClass = 'icon-hide-cells';
private static readonly expandCssClass = 'icon-show-cells';
constructor(id: string) {
super(id, {
baseClass: CollapseCellsAction.baseClass,
toggleOnLabel: CollapseCellsAction.expandCells,
toggleOnClass: CollapseCellsAction.expandCssClass,
toggleOffLabel: CollapseCellsAction.collapseCells,
toggleOffClass: CollapseCellsAction.collapseCssClass,
isOn: false
});
}
public get isCollapsed(): boolean {
return this.state.isOn;
}
public set isCollapsed(value: boolean) {
this.toggle(value);
}
public run(context: NotebookComponent): Promise<boolean> {
let self = this;
return new Promise<boolean>((resolve, reject) => {
try {
self.isCollapsed = !self.isCollapsed;
context.cells.forEach(cell => {
cell.isCollapsed = self.isCollapsed;
});
resolve(true);
} catch (e) {
reject(e);
}
});
}
}
export class KernelsDropdown extends SelectBox {
private model: NotebookModel;
constructor(container: HTMLElement, contextViewProvider: IContextViewProvider, modelReady: Promise<INotebookModel>) {