Skip to content

Commit 8f19587

Browse files
committed
working on typescript interface
1 parent d1482b6 commit 8f19587

File tree

2 files changed

+28
-29
lines changed

2 files changed

+28
-29
lines changed

packages/nbdime/src/diff/widget/linked-cells.ts

Lines changed: 21 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,42 +22,42 @@ export const foldIcon = new LabIcon({
2222
});
2323

2424
export interface ILinkedListCell {
25-
next: () => ILinkedListCell | null;
26-
prev: () => ILinkedListCell | null;
27-
displayed: () => boolean;
25+
_next: ILinkedListCell | null;
26+
_prev: ILinkedListCell | null;
27+
displayed: boolean;
2828
lazy: boolean;
2929
expandUp: () => void;
3030
expandDown: () => void;
3131
}
3232

33-
class LinkedListCell extends Panel {
34-
_next: LinkedListCell | LazyDisplayLinkedListCell | null;
35-
_prev: LinkedListCell | LazyDisplayLinkedListCell | null;
33+
class LinkedListCell extends Panel implements ILinkedListCell {
3634
renderFunc: () => CellDiffWidget;
37-
_displayed: boolean;
35+
displayed: boolean;
36+
_next: ILinkedListCell | null;
37+
_prev: ILinkedListCell | null;
3838
lazy: boolean;
3939

4040
constructor(renderFunc: () => CellDiffWidget) {
4141
super();
4242
this._next = null;
4343
this._prev = null;
4444
this.renderFunc = renderFunc;
45-
this._displayed = true;
45+
this.displayed = true;
4646
this.renderCell();
4747
this.addClass("linked-cell");
4848
this.lazy = false;
4949
}
5050

5151
protected renderCell() {
5252
this.addWidget(this.renderFunc());
53-
this._displayed = true;
53+
this.displayed = true;
5454
}
5555

56-
get next(): LinkedListCell | LazyDisplayLinkedListCell | null {
56+
get next() {
5757
return this._next;
5858
}
5959

60-
set next(nextCell: LinkedListCell | LazyDisplayLinkedListCell | null) {
60+
set next(nextCell) {
6161
this._next = nextCell;
6262
if (nextCell === null) {
6363
return;
@@ -68,25 +68,21 @@ class LinkedListCell extends Panel {
6868
}
6969
}
7070

71-
get prev(): LinkedListCell | LazyDisplayLinkedListCell | null {
71+
get prev() {
7272
return this._prev;
7373
}
7474

75-
set prev(prevCell: LinkedListCell | LazyDisplayLinkedListCell | null) {
75+
set prev(prevCell) {
7676
this._prev = prevCell;
7777
if (prevCell === null) {
7878
return;
7979
}
80-
prevCell.next = this;
80+
prevCell._next = this as ILinkedListCell;
8181
if (prevCell.lazy) {
8282
prevCell.expandUp();
8383
}
8484
}
8585

86-
get displayed(): boolean {
87-
return this._displayed;
88-
}
89-
9086
expandUp(): void {
9187
return;
9288
}
@@ -120,11 +116,11 @@ class LazyDisplayLinkedListCell extends LinkedListCell {
120116
}
121117

122118
protected renderCell() {
123-
this._displayed = false;
119+
this.displayed = false;
124120
}
125121

126122
expandUp(): void {
127-
if (this._displayed) {
123+
if (this.displayed) {
128124
return;
129125
}
130126
if (this.expandButtonDisplayed) {
@@ -135,7 +131,7 @@ class LazyDisplayLinkedListCell extends LinkedListCell {
135131
}
136132

137133
expandDown(): void {
138-
if (this._displayed) {
134+
if (this.displayed) {
139135
return;
140136
}
141137
if (this.expandButtonDisplayed) {
@@ -194,11 +190,11 @@ class LazyDisplayLinkedListCell extends LinkedListCell {
194190

195191
buttonSvg(direction: "Up" | "Down" | "Fold"): LabIcon {
196192
if (direction === "Up") {
197-
return foldUp;
193+
return foldUpIcon;
198194
} else if (direction === "Down") {
199-
return foldDown;
195+
return foldDownIcon;
200196
} else {
201-
return fold;
197+
return foldIcon;
202198
}
203199
}
204200

@@ -214,7 +210,7 @@ class LazyDisplayLinkedListCell extends LinkedListCell {
214210

215211
showLazyCell() {
216212
this.addWidget(this.renderFunc());
217-
this._displayed = true;
213+
this.displayed = true;
218214
this.expandButton.remove();
219215
}
220216
}

packages/nbdime/src/diff/widget/notebook.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,18 @@ import { NotebookDiffModel, CellDiffModel } from "../model";
1919

2020
const NBDIFF_CLASS = "jp-Notebook-diff";
2121

22+
type Command<T> = new (renderFunc: ()=> CellDiffWidget) => T
23+
24+
2225
/**
2326
* NotebookDiffWidget
2427
*/
2528
export class NotebookDiffWidget extends Panel {
2629
constructor(
2730
model: NotebookDiffModel,
2831
rendermime: IRenderMimeRegistry,
29-
displayedCellWrapper: ILinkedListCell = LinkedListCell,
30-
lazyDisplayWrapper: ILinkedListCell = LazyDisplayLinkedListCell
32+
displayedCellWrapper: Command<ILinkedListCell> = LinkedListCell,
33+
lazyDisplayWrapper: Command<LazyDisplayLinkedListCell> = LazyDisplayLinkedListCell
3134
) {
3235
super();
3336
this._model = model;
@@ -143,6 +146,6 @@ export class NotebookDiffWidget extends Panel {
143146
private _model: NotebookDiffModel;
144147
private _rendermime: IRenderMimeRegistry;
145148
private previousCell: LinkedListCell | null;
146-
private displayedCellWrapper: LinkedListCell;
147-
private lazyDisplayWrapper: LazyDisplayLinkedListCell;
149+
private displayedCellWrapper: Command<ILinkedListCell>;
150+
private lazyDisplayWrapper: Command<ILinkedListCell>;
148151
}

0 commit comments

Comments
 (0)