Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement a grid editor layout feature #49599

Merged
merged 493 commits into from
Jun 2, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
493 commits
Select commit Hold shift + click to select a range
63118b7
grid - simplify and polish
bpasero May 11, 2018
51242ba
grid - do not allow cross window DND for group when tabs enabled
bpasero May 11, 2018
efd80fa
grid - more dnd tweaks
bpasero May 11, 2018
5e27190
grid - allow to get groups in grid order
bpasero May 11, 2018
d3082d7
grid - reduce drop operations a bit
bpasero May 12, 2018
540a57e
grid - adopt IOpenEditorEvent
bpasero May 12, 2018
cf8014e
grid - adopt delegating editor service
bpasero May 12, 2018
ab3d507
grid - still allow copy operation when dropping onto same group
bpasero May 12, 2018
b0cd496
grid - some cleanup
bpasero May 12, 2018
01bf961
grid - towards GroupIdentifier over Position in IEditor
bpasero May 13, 2018
1e2e8fb
grid - drop editor group label
bpasero May 13, 2018
ebe9654
grid - use group identifier in IEditorIdentifier
bpasero May 13, 2018
61ad210
grid - per group editor view state
bpasero May 13, 2018
31e42aa
grid - fix issue with delegating editor service
bpasero May 13, 2018
7919b9d
grid - clarify active/visible text editor control to support diff as …
bpasero May 13, 2018
03f7fe7
grid - some :lipstick:
bpasero May 13, 2018
dfb6572
Added a setting for configuring open direction for "open to the side"…
alexr00 May 13, 2018
0f151ee
grid - openSideBySideDirection :lipstick:
bpasero May 13, 2018
c0f3c66
grid - add and adopt setInput() cancellation tokens
bpasero May 14, 2018
3133cbc
Merge branch 'master' into ben/editor
bpasero May 14, 2018
7c1d60c
grid - add a way to get a label for a group
bpasero May 14, 2018
1d5d624
grid - first cut workbench layout adoption
bpasero May 14, 2018
b171096
grid - towards a better layout
bpasero May 14, 2018
cd127d3
grid - introduce some next editor tests
bpasero May 14, 2018
5758340
grid - more tests scaffolding
bpasero May 14, 2018
46a1c8b
grid - more tests adoption
bpasero May 15, 2018
f3ec475
grid - finish tests adoption
bpasero May 15, 2018
a8b2576
Merge branch 'master' into ben/editor
bpasero May 15, 2018
0e23ce0
grid - fix compile
bpasero May 15, 2018
55daf35
grid - introduce and use preferredSize and events
bpasero May 15, 2018
330947c
grid - :lipstick:
bpasero May 15, 2018
69cc23a
grid - memento :lipstick:
bpasero May 15, 2018
b959478
grid - ensure group is always set
bpasero May 15, 2018
a865846
grid - simple solution to grid-neighbour issue
bpasero May 15, 2018
4787167
grid - change label to be creation time based
bpasero May 15, 2018
26ee938
grid - add and use closeEmptyGroups setting
bpasero May 16, 2018
1fc1a05
grid - follow up fixes from closeEmptyGroups setting
bpasero May 16, 2018
a584931
Merge branch 'master' into ben/editor
bpasero May 16, 2018
b892ded
grid - move opener service into editor
bpasero May 16, 2018
c460ac4
grid - make platform editor service specific for code editors
bpasero May 16, 2018
7a6f19c
grid - remove SimpleEditor
bpasero May 16, 2018
c952daf
grid - lift activeTextEditorControl to text editor service
bpasero May 16, 2018
2571a95
grid - back to TPromise for services to avoid toWinJsPromise() spam
bpasero May 16, 2018
08f1beb
bye bye old editorService and old groupService
isidorn May 16, 2018
2922697
do not open to the side
isidorn May 16, 2018
68521e3
grid - replaceEditors() on editor service
bpasero May 16, 2018
4d5dc60
to read nicer
isidorn May 16, 2018
e16a051
grid - cleanup
bpasero May 16, 2018
e9fa946
open editors: inital adoption to grid
isidorn May 16, 2018
0376a94
use editor group label
isidorn May 16, 2018
0448bd5
grid - remove closeEditor() from IEditorService
bpasero May 16, 2018
be8abde
grid - fix tests
bpasero May 16, 2018
cf77b6e
grid - fold texteditor service into codeeditor service
bpasero May 17, 2018
2001f6b
Merge branch 'master' into ben/editor
bpasero May 17, 2018
5aa43e5
grid - adopt some services in workbench core
bpasero May 17, 2018
e01a783
Merge branch 'master' into ben/editor
bpasero May 17, 2018
6a13b52
grid - make code editor service proper (standalone)
bpasero May 17, 2018
8c49b4b
fix tests
bpasero May 17, 2018
abc4b05
fileCommands: tackle todos
isidorn May 17, 2018
14aea85
grid - adopt some more services
bpasero May 17, 2018
78783be
grid - more service adoption
bpasero May 17, 2018
1419490
debug adopt to grid
isidorn May 17, 2018
51faf33
files leftovers adopt to using grid
isidorn May 17, 2018
732bd8d
grid - more service adoption
bpasero May 17, 2018
19a9898
configuratoin resover service fix build errors
isidorn May 17, 2018
1a78203
grid - more service adoption
bpasero May 17, 2018
f641365
grid - more service adoption
bpasero May 17, 2018
57b37b4
editor commands adopt to grid
isidorn May 17, 2018
918aa63
editorActions: adopt close actions
isidorn May 17, 2018
e4740f3
open editors view: react on group events
isidorn May 17, 2018
91635e8
grid - add onDidOpen event to groups
bpasero May 17, 2018
b828254
grid - fix compile
bpasero May 17, 2018
c200ab4
fix save all for untitiled
isidorn May 17, 2018
abe306c
Merge branch 'master' into ben/editor
bpasero May 17, 2018
f98b181
grid - introduce aggregated group change event
bpasero May 18, 2018
002972c
grid - :lipstick:
bpasero May 18, 2018
d2baa66
grid - let IEditor.group be INextEditorGroup
bpasero May 18, 2018
8bb9ce0
grid - some cleanup
bpasero May 18, 2018
8cb8c02
grid - cleanup getCodeEditor()
bpasero May 18, 2018
936b136
grid - remove onWillCloseEditor() from editor service
bpasero May 18, 2018
1c2ffea
grid - add and use overrideOpenEditor()
bpasero May 18, 2018
781b1b7
grid - remove "structural" from group change event
bpasero May 18, 2018
60e45db
grid - fix NPE in getControl() of status bar
bpasero May 18, 2018
dc65622
open editors view: react to events
isidorn May 18, 2018
ade1664
grid - fix pin event
bpasero May 18, 2018
2d6b237
grid - add editor index to group change event
bpasero May 18, 2018
65488b2
open editors better reaction to events
isidorn May 18, 2018
94094e2
grid - fix to set height: 100% on editor container
bpasero May 18, 2018
42e0dbe
grid - allow to split even editors that do not support splitting
bpasero May 18, 2018
c147158
grid - ensure group when saving view state
bpasero May 18, 2018
6bb20cb
Merge branch 'master' into ben/editor
bpasero May 18, 2018
1d30452
grid - add and use IEditorService.editors
bpasero May 18, 2018
ac114d6
grid - change EDGE_DISTANCE_THRESHOLD to 0.3
bpasero May 18, 2018
2ef61bf
fix issues with active group and closing of editors
isidorn May 18, 2018
5e5e4e3
grid - implement actions to navigate views up/down/left/right
bpasero May 18, 2018
cb5cfb8
grid - adopt editor picker
bpasero May 19, 2018
2a7d433
grid - adopt move editor commands
bpasero May 19, 2018
a40d803
grid - more editor actions adoption
bpasero May 19, 2018
05a2152
grid - finish action adoption
bpasero May 19, 2018
35cbb55
grid - bye bye editor part & editor groups control
bpasero May 19, 2018
91677a5
grid - move classes into editor namespace
bpasero May 19, 2018
4c8a495
grid - first cut nexteditor => editor
bpasero May 19, 2018
be4dc9a
Merge branch 'master' into ben/editor
bpasero May 19, 2018
629e5e3
grid - implement split action properly
bpasero May 19, 2018
e5fce1f
grid - fix state key
bpasero May 19, 2018
1a12ba5
grid - more editor service interfaces for editor types
bpasero May 20, 2018
3abb161
grid - polish some jsdoc
bpasero May 20, 2018
64d980d
grid - more cleanup
bpasero May 20, 2018
27cd58f
grid - allow alt+click on split
bpasero May 20, 2018
dd5afa5
grid - maintain ViewColumn API compatibility
bpasero May 20, 2018
abe0207
grid - maintain ViewColumn API compatibility (webview)
bpasero May 20, 2018
ef92f85
grid - remove old group/editor services
bpasero May 20, 2018
743cf48
grid - rename nexteditor => editor for imports
bpasero May 20, 2018
41d65ec
grid - more rename of nexteditor => editor
bpasero May 20, 2018
249da81
grid - move EditorPosition to exthost
bpasero May 20, 2018
fe55f06
grid - add action to close/join all groups
bpasero May 20, 2018
41b2fc3
grid - some cleanup
bpasero May 20, 2018
e901ae3
grid - track focus of editor properly
bpasero May 20, 2018
6c16c86
grid - some more tests
bpasero May 22, 2018
25173bf
grid - extract some methods into IEditorPartService to hide from usages
bpasero May 22, 2018
324dca4
grid - reduce event spam a bit
bpasero May 22, 2018
4210551
grid - :lipstick:
bpasero May 22, 2018
f0abfa3
Merge branch 'master' into ben/editor
bpasero May 22, 2018
2bfb276
grid - :lipstick: for viewcolumn conversion
bpasero May 22, 2018
6055390
grid - fix editor events to be proper
bpasero May 22, 2018
dbcf54c
grid - enable smoke and integration tests again
bpasero May 22, 2018
db3acf9
grid - add and use editorGroupToViewColumn
bpasero May 22, 2018
026fc29
grid - open editors in active group when no ViewColumn is provided
bpasero May 22, 2018
0f8ef8c
grid - fix api docs
bpasero May 22, 2018
00bdc45
grid - reduce active change events when closing last editor in group
bpasero May 22, 2018
0289324
Merge branch 'master' into ben/editor
bpasero May 22, 2018
a478972
grid - first cut of more actions for grid
bpasero May 22, 2018
411f644
grid - empty editor group context menu
bpasero May 22, 2018
cf17905
grid - fix touchbar update exception
bpasero May 23, 2018
8be7dce
grid - introduce and use command for predefined editor layouts
bpasero May 23, 2018
cc50e9a
grid - add editor layout menu
bpasero May 23, 2018
e309164
grid - menu wording
bpasero May 23, 2018
57b7538
Merge branch 'master' into ben/editor
bpasero May 23, 2018
8059647
grid - fix compile error
bpasero May 23, 2018
0d1810e
grid - fix commands context lookup
bpasero May 23, 2018
f913d93
smoke - more disablement for #50337
bpasero May 23, 2018
18b5307
grid - fix focus not restored when closing last editor of group
bpasero May 23, 2018
142ecdd
grid - more commands for empty group
bpasero May 24, 2018
709ff68
grid - restore focus properly when removing empty group
bpasero May 24, 2018
8e1e0b2
grid - try to restore editors when changing layout
bpasero May 24, 2018
2243f85
Merge branch 'master' into ben/editor
bpasero May 24, 2018
73249bb
grid - fix broken preferred height
bpasero May 24, 2018
58e9265
grid - apply editor layout in grid order
bpasero May 24, 2018
8fffee2
grid - let "open side by side" editor action be a command with altern…
bpasero May 24, 2018
4c741b0
grid - let "close" action be a command and support alternative execu…
bpasero May 24, 2018
bc57e56
grid - add actions to create empty groups
bpasero May 24, 2018
fd50f1f
grid - open empty group instead of artifically copying over editor fr…
bpasero May 24, 2018
b16ec92
Merge branch 'master' into ben/editor
bpasero May 25, 2018
0173e96
grid - improved implementation of applyLayout()
bpasero May 25, 2018
36ce4f6
diff - temporary console log to debug diff reveal issues
bpasero May 25, 2018
7cd6589
grid - fix close icon getting inlined by using a version that is not …
bpasero May 25, 2018
27ad10f
grid - let centered editor layout be a real grid layout
bpasero May 25, 2018
66e0b70
grid - fix miuse of title.active / title.inactive
bpasero May 25, 2018
fd7d510
grid - only draw border around tabs as needed
bpasero May 25, 2018
2a39301
grid - fix tab border when tab container has border
bpasero May 25, 2018
c386392
Merge branch 'master' into ben/editor
bpasero May 25, 2018
da22b14
grid - some cleanup
bpasero May 25, 2018
a576b76
grid - fix delegating editor service behaviour for diff editor
bpasero May 25, 2018
00259f2
grid - fix missing icon
bpasero May 25, 2018
871a9cb
grid - :lipstick: title bar
bpasero May 26, 2018
25a1117
grid -never instantiate child code editor service
bpasero May 26, 2018
963a04e
grid - fix isOpen() method to work with diff
bpasero May 26, 2018
e66065b
grid - fire active/visible editor change event on statup as before
bpasero May 26, 2018
31694f7
Merge branch 'master' into ben/editor
bpasero May 26, 2018
1349f0a
grid - fix npe when closing editor
bpasero May 27, 2018
e41acb7
Merge branch 'master' into ben/editor
bpasero May 27, 2018
ce6acc9
grid - fix some lifecycle issues
bpasero May 27, 2018
7a56b67
grid - some cleanup
bpasero May 27, 2018
97fbaff
grid - reduce flicker in openEditors call
bpasero May 27, 2018
435a938
grid - use correct service interfaces
bpasero May 28, 2018
178415c
grid - ensure to update context keys when editors are restored
bpasero May 28, 2018
4a0ab36
grid: export minimum and maximum width and height
joaomoreno May 28, 2018
40c0aba
Merge branch 'master' into ben/editor
bpasero May 28, 2018
fbac220
grid - log serialized state if restoring failed
bpasero May 28, 2018
cfc7d98
grid - drop outline as focus indication and rely on dimmed state
bpasero May 28, 2018
18b7169
grid - allow to close empty group when closing all editors of a group
bpasero May 28, 2018
2b41be7
grid - get preferredSize from grid
bpasero May 28, 2018
a76b402
grid - action wording tweaks
bpasero May 28, 2018
80ab371
grid - allow to close dirty diff editor if master is still opened in …
bpasero May 28, 2018
6f0255c
grid - log previous UI state upon error
bpasero May 28, 2018
5be33cb
grid - stronger border top color
bpasero May 28, 2018
f47ffed
return passed context if resourceOrContext is not useful
isidorn May 28, 2018
f5990e9
fix off by one issue
isidorn May 28, 2018
5feadf1
return context if it has a groupId
isidorn May 28, 2018
d3b46d0
polish
isidorn May 28, 2018
44168b0
fix index computing for editor close case
isidorn May 28, 2018
08aa435
Merge branch 'master' into ben/editor
bpasero May 28, 2018
4320ec9
Merge branch 'master' into ben/editor
bpasero May 29, 2018
41a7c49
grid - fix compile
bpasero May 29, 2018
fc0987a
fix #50672
bpasero May 29, 2018
3ca44f1
fix #50670
bpasero May 29, 2018
8511b47
Merge branch 'master' into ben/editor
bpasero May 30, 2018
7547750
fix #50742
bpasero May 30, 2018
119b223
fix #50691
bpasero May 30, 2018
f3e29b3
grid - allow to close empty groups via middle click (#50733)
bpasero May 30, 2018
c89d6be
fix #50710
bpasero May 30, 2018
23710a7
fix #50722
bpasero May 30, 2018
a32307e
fixes #50609
joaomoreno May 30, 2018
88aa6c4
fix #50773
bpasero May 30, 2018
3f895da
polish for #50667
bpasero May 30, 2018
d88d83a
grid keep sizing after branch node demotion
joaomoreno May 30, 2018
4d3174d
grid - for now remove editorGroup.activeEmptyBackground
bpasero May 30, 2018
e84e16c
grid: resize views when branch is demoted
joaomoreno May 30, 2018
04bde9b
splitview: dont propagate white-sapce property
joaomoreno May 30, 2018
fffe3d9
fix #50774
bpasero May 30, 2018
7acb20c
Merge branch 'master' into ben/editor
bpasero May 30, 2018
688f049
fix #50741
bpasero May 30, 2018
a41d4bd
fix #50711
bpasero May 30, 2018
958fb52
better fix for #50710
bpasero May 30, 2018
e61df19
wip: grid.getNeighborViews
joaomoreno May 30, 2018
62af395
Merge branch 'master' into ben/editor
bpasero May 31, 2018
13d44c5
fix #50678
bpasero May 31, 2018
bf97d62
open editors: clear focus when group without editors is active
isidorn May 31, 2018
37ddf5c
fixes #50737
isidorn May 31, 2018
1849398
Merge branch 'master' into grid
joaomoreno May 31, 2018
bd0e7a8
grid - todo@grid => todo@ben
bpasero May 31, 2018
7a86d33
grid - adopt new getNeighborViews() method
bpasero May 31, 2018
f50c8e9
grid - add workbench.action.closeEditorsAndGroup
bpasero May 31, 2018
91d3050
open editors: close group action
isidorn May 31, 2018
1815c1d
open editors: use actionRunner for contexts
isidorn May 31, 2018
30499c2
grid: getNeighborViews
joaomoreno May 31, 2018
035f2e8
grid - adopt wrapping
bpasero May 31, 2018
172309c
Some menu action clients (ActionBar) handle alternative actions on th…
isidorn May 31, 2018
d90b2db
fillInActionBarActions and fillInContextMenuActions for clarity
isidorn May 31, 2018
3a7a813
grid: fix neighbor npe issue
joaomoreno May 31, 2018
deebe17
grid: more getNeighborViews tests
joaomoreno May 31, 2018
a2471ef
grid: use boundaries for neighbor finding
joaomoreno May 31, 2018
c4551b7
grid: getNeighborViews perf
joaomoreno May 31, 2018
a655c72
grid: add todo
joaomoreno May 31, 2018
6b11235
Merge branch 'master' into ben/editor
bpasero Jun 1, 2018
b70c913
grid - fix issues with touchbar updating
bpasero Jun 1, 2018
ba8c0a8
grid - use viewColumnToEditorGroup in more places
bpasero Jun 1, 2018
69786b2
grid - close all groups should preserve first group
bpasero Jun 1, 2018
08cacfa
grid - assign some default keybindings for focus group
bpasero Jun 1, 2018
518e036
grid - :lipstick:
bpasero Jun 1, 2018
9af426f
fixes #50926
isidorn Jun 1, 2018
8dc5cec
show alternative actions when alt is pressed, not only on mouse over
isidorn Jun 1, 2018
b902036
open editors: click on groups should activate them
isidorn Jun 1, 2018
4ead366
update description (for #50677)
bpasero Jun 1, 2018
0f4cde3
grid - tweak some groups access order
bpasero Jun 1, 2018
bb74d93
grid - prevent multiple confirmation dialogs for the same editor to s…
bpasero Jun 1, 2018
533dc64
grid - fix bad === for editors
bpasero Jun 1, 2018
0bc81da
:lipstick: grid, cleanup getViews()
joaomoreno Jun 1, 2018
9a59948
Merge branch 'master' into grid
joaomoreno Jun 1, 2018
1a0ce2c
Merge branch 'master' into ben/editor
bpasero Jun 2, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 0 additions & 1 deletion extensions/theme-abyss/themes/abyss-color-theme.json
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,6 @@
// Workbench: Editors
// "editorGroupHeader.noTabsBackground": "",
"editorGroup.border": "#2b2b4a",
"editorGroup.background": "#1c1c2a",
"editorGroup.dropBackground": "#25375daa",
"editorGroupHeader.tabsBackground": "#1c1c2a",

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
"editorWidget.background": "#131510",
"editorHoverWidget.background": "#221a14",
"editorGroupHeader.tabsBackground": "#131510",
"editorGroup.background": "#0f0c08",
"editorLineNumber.activeForeground": "#adadad",
"tab.inactiveBackground": "#131510",
"titleBar.activeBackground": "#423523",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
"editorIndentGuide.background": "#505037",
"editorIndentGuide.activeBackground": "#707057",
"editorGroupHeader.tabsBackground": "#282828",
"editorGroup.background": "#1e1e1e",
"tab.inactiveBackground": "#404040",
"tab.border": "#303030",
"tab.inactiveForeground": "#d8d8d8",
Expand Down
1 change: 0 additions & 1 deletion extensions/theme-red/themes/Red-color-theme.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
// editor
"editor.background": "#390000",
"editorGroup.border": "#ff666633",
"editorGroup.background": "#1c0101",
"editorCursor.foreground": "#970000",
"editor.foreground": "#F8F8F8",
"editorWhitespace.foreground": "#c10000",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,6 @@
// Workbench: Editors
// "editorGroupHeader.noTabsBackground": "",
"editorGroup.border": "#00212B",
"editorGroup.background": "#011b23",
"editorGroup.dropBackground": "#2AA19844",
"editorGroupHeader.tabsBackground": "#004052",

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,6 @@
// Workbench: Editors
// "editorGroupHeader.noTabsBackground": "",
"editorGroup.border": "#DDD6C1",
"editorGroup.background": "#FFFBF2",
"editorGroup.dropBackground": "#DDD6C1AA",
"editorGroupHeader.tabsBackground": "#D9D2C2",

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
"editorHoverWidget.border": "#ffffff44",
"editorGroup.border": "#404f7d",
"editorGroupHeader.tabsBackground": "#001733",
"editorGroup.background": "#1c1c2a",
"editorGroup.dropBackground": "#25375daa",
"peekViewResult.background": "#001c40",
"tab.inactiveBackground": "#001c40",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ suite('window namespace tests', () => {
}
});

test('issue #25801 - default column when opening a file', async () => {
test('default column when opening a file', async () => {
const [docA, docB, docC] = await Promise.all([
workspace.openTextDocument(await createRandomFile()),
workspace.openTextDocument(await createRandomFile()),
Expand All @@ -153,7 +153,7 @@ suite('window namespace tests', () => {
`wanted fileName:${editor.document.fileName}/viewColumn:${editor.viewColumn} but got fileName:${window.activeTextEditor!.document.fileName}/viewColumn:${window.activeTextEditor!.viewColumn}. a:${docA.fileName}, b:${docB.fileName}, c:${docC.fileName}`
);
assert.ok(window.activeTextEditor!.document === docC);
assert.equal(window.activeTextEditor!.viewColumn, ViewColumn.One);
assert.equal(window.activeTextEditor!.viewColumn, ViewColumn.Two);
});

test('issue #27408 - showTextDocument & vscode.diff always default to ViewColumn.One', async () => {
Expand Down
12 changes: 12 additions & 0 deletions src/vs/base/browser/dnd.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,15 @@ export const DataTransfers = {
*/
TEXT: 'text/plain'
};

export function applyDragImage(event: DragEvent, label: string, clazz: string): void {
const dragImage = document.createElement('div');
dragImage.className = clazz;
dragImage.textContent = label;

document.body.appendChild(dragImage);
event.dataTransfer.setDragImage(dragImage, -10, -10);

// Removes the element when the DND operation is done
setTimeout(() => document.body.removeChild(dragImage), 0);
}
14 changes: 11 additions & 3 deletions src/vs/base/browser/dom.ts
Original file line number Diff line number Diff line change
Expand Up @@ -723,14 +723,22 @@ export function isAncestor(testChild: Node, testAncestor: Node): boolean {
return false;
}

export function findParentWithClass(node: HTMLElement, clazz: string, stopAtClazz?: string): HTMLElement {
export function findParentWithClass(node: HTMLElement, clazz: string, stopAtClazzOrNode?: string | HTMLElement): HTMLElement {
while (node) {
if (hasClass(node, clazz)) {
return node;
}

if (stopAtClazz && hasClass(node, stopAtClazz)) {
return null;
if (stopAtClazzOrNode) {
if (typeof stopAtClazzOrNode === 'string') {
if (hasClass(node, stopAtClazzOrNode)) {
return null;
}
} else {
if (node === stopAtClazzOrNode) {
return null;
}
}
}

node = <HTMLElement>node.parentNode;
Expand Down