mirror of
https://github.com/mathuo/dockview
synced 2025-02-08 17:35:44 +00:00
Merge pull request #409 from mathuo/397-gready-rendering-mode
feat: rename rendering modes
This commit is contained in:
commit
343d42cb86
@ -60,7 +60,7 @@ describe('contentContainer', () => {
|
|||||||
|
|
||||||
const dockviewComponent = jest.fn<DockviewComponent, []>(() => {
|
const dockviewComponent = jest.fn<DockviewComponent, []>(() => {
|
||||||
return {
|
return {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as DockviewComponent;
|
} as DockviewComponent;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ describe('contentContainer', () => {
|
|||||||
view: {
|
view: {
|
||||||
content: contentRenderer,
|
content: contentRenderer,
|
||||||
} as Partial<IDockviewPanelModel>,
|
} as Partial<IDockviewPanelModel>,
|
||||||
api: { renderer: 'destructive' },
|
api: { renderer: 'onlyWhenVisibile' },
|
||||||
} as Partial<IDockviewPanel>;
|
} as Partial<IDockviewPanel>;
|
||||||
|
|
||||||
cut.openPanel(panel as IDockviewPanel);
|
cut.openPanel(panel as IDockviewPanel);
|
||||||
@ -116,7 +116,7 @@ describe('contentContainer', () => {
|
|||||||
view: {
|
view: {
|
||||||
content: contentRenderer2,
|
content: contentRenderer2,
|
||||||
} as Partial<IDockviewPanelModel>,
|
} as Partial<IDockviewPanelModel>,
|
||||||
api: { renderer: 'destructive' },
|
api: { renderer: 'onlyWhenVisibile' },
|
||||||
} as Partial<IDockviewPanel>;
|
} as Partial<IDockviewPanel>;
|
||||||
|
|
||||||
cut.openPanel(panel2 as IDockviewPanel);
|
cut.openPanel(panel2 as IDockviewPanel);
|
||||||
|
@ -258,13 +258,13 @@ describe('groupview', () => {
|
|||||||
|
|
||||||
test('panel events are captured during de-serialization', () => {
|
test('panel events are captured during de-serialization', () => {
|
||||||
const panel1 = new TestPanel('panel1', {
|
const panel1 = new TestPanel('panel1', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
const panel2 = new TestPanel('panel2', {
|
const panel2 = new TestPanel('panel2', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
const panel3 = new TestPanel('panel3', {
|
const panel3 = new TestPanel('panel3', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
|
|
||||||
const groupview2 = new DockviewGroupPanel(dockview, 'groupview-2', {
|
const groupview2 = new DockviewGroupPanel(dockview, 'groupview-2', {
|
||||||
@ -350,13 +350,13 @@ describe('groupview', () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
const panel1 = new TestPanel('panel1', {
|
const panel1 = new TestPanel('panel1', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
const panel2 = new TestPanel('panel2', {
|
const panel2 = new TestPanel('panel2', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
const panel3 = new TestPanel('panel3', {
|
const panel3 = new TestPanel('panel3', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
|
|
||||||
expect(events.length).toBe(0);
|
expect(events.length).toBe(0);
|
||||||
@ -436,13 +436,13 @@ describe('groupview', () => {
|
|||||||
|
|
||||||
test('moveToPrevious and moveToNext', () => {
|
test('moveToPrevious and moveToNext', () => {
|
||||||
const panel1 = new TestPanel('panel1', {
|
const panel1 = new TestPanel('panel1', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
const panel2 = new TestPanel('panel2', {
|
const panel2 = new TestPanel('panel2', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
const panel3 = new TestPanel('panel3', {
|
const panel3 = new TestPanel('panel3', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
|
|
||||||
groupview.model.openPanel(panel1);
|
groupview.model.openPanel(panel1);
|
||||||
@ -488,13 +488,13 @@ describe('groupview', () => {
|
|||||||
|
|
||||||
test('closeAllPanels with panels', () => {
|
test('closeAllPanels with panels', () => {
|
||||||
const panel1 = new TestPanel('panel1', {
|
const panel1 = new TestPanel('panel1', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
const panel2 = new TestPanel('panel2', {
|
const panel2 = new TestPanel('panel2', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
const panel3 = new TestPanel('panel3', {
|
const panel3 = new TestPanel('panel3', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
|
|
||||||
groupview.model.openPanel(panel1);
|
groupview.model.openPanel(panel1);
|
||||||
@ -601,7 +601,7 @@ describe('groupview', () => {
|
|||||||
.item(0)!.childNodes;
|
.item(0)!.childNodes;
|
||||||
|
|
||||||
const panel1 = new TestPanel('id_1', {
|
const panel1 = new TestPanel('id_1', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
|
|
||||||
cut.openPanel(panel1);
|
cut.openPanel(panel1);
|
||||||
@ -609,7 +609,7 @@ describe('groupview', () => {
|
|||||||
expect(contentContainer.item(0)).toBe(panel1.view.content.element);
|
expect(contentContainer.item(0)).toBe(panel1.view.content.element);
|
||||||
|
|
||||||
const panel2 = new TestPanel('id_2', {
|
const panel2 = new TestPanel('id_2', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
|
|
||||||
cut.openPanel(panel2);
|
cut.openPanel(panel2);
|
||||||
@ -617,7 +617,7 @@ describe('groupview', () => {
|
|||||||
expect(contentContainer.item(0)).toBe(panel2.view.content.element);
|
expect(contentContainer.item(0)).toBe(panel2.view.content.element);
|
||||||
|
|
||||||
const panel3 = new TestPanel('id_2', {
|
const panel3 = new TestPanel('id_2', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any);
|
} as any);
|
||||||
|
|
||||||
cut.openPanel(panel3, { skipSetPanelActive: true });
|
cut.openPanel(panel3, { skipSetPanelActive: true });
|
||||||
@ -822,7 +822,7 @@ describe('groupview', () => {
|
|||||||
|
|
||||||
cut.openPanel(
|
cut.openPanel(
|
||||||
new TestPanel('panel1', {
|
new TestPanel('panel1', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any)
|
} as any)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -892,12 +892,12 @@ describe('groupview', () => {
|
|||||||
|
|
||||||
cut.openPanel(
|
cut.openPanel(
|
||||||
new TestPanel('panel1', {
|
new TestPanel('panel1', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any)
|
} as any)
|
||||||
);
|
);
|
||||||
cut.openPanel(
|
cut.openPanel(
|
||||||
new TestPanel('panel2', {
|
new TestPanel('panel2', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any)
|
} as any)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -967,12 +967,12 @@ describe('groupview', () => {
|
|||||||
|
|
||||||
cut.openPanel(
|
cut.openPanel(
|
||||||
new TestPanel('panel1', {
|
new TestPanel('panel1', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any)
|
} as any)
|
||||||
);
|
);
|
||||||
cut.openPanel(
|
cut.openPanel(
|
||||||
new TestPanel('panel2', {
|
new TestPanel('panel2', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any)
|
} as any)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -1077,7 +1077,7 @@ describe('groupview', () => {
|
|||||||
|
|
||||||
cut.openPanel(
|
cut.openPanel(
|
||||||
new TestPanel('panel1', {
|
new TestPanel('panel1', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any)
|
} as any)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -1091,7 +1091,7 @@ describe('groupview', () => {
|
|||||||
|
|
||||||
cut.openPanel(
|
cut.openPanel(
|
||||||
new TestPanel('panel2', {
|
new TestPanel('panel2', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any)
|
} as any)
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -1113,7 +1113,7 @@ describe('groupview', () => {
|
|||||||
|
|
||||||
cut.openPanel(
|
cut.openPanel(
|
||||||
new TestPanel('panel1', {
|
new TestPanel('panel1', {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
} as any)
|
} as any)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ describe('dockviewPanel', () => {
|
|||||||
const model = <IDockviewPanelModel>new panelModelMock();
|
const model = <IDockviewPanelModel>new panelModelMock();
|
||||||
|
|
||||||
const cut = new DockviewPanel('fake-id', accessor, api, group, model, {
|
const cut = new DockviewPanel('fake-id', accessor, api, group, model, {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
});
|
});
|
||||||
|
|
||||||
let latestTitle: string | undefined = undefined;
|
let latestTitle: string | undefined = undefined;
|
||||||
@ -77,7 +77,7 @@ describe('dockviewPanel', () => {
|
|||||||
const model = <IDockviewPanelModel>new panelModelMock();
|
const model = <IDockviewPanelModel>new panelModelMock();
|
||||||
|
|
||||||
const cut = new DockviewPanel('fake-id', accessor, api, group, model, {
|
const cut = new DockviewPanel('fake-id', accessor, api, group, model, {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
});
|
});
|
||||||
|
|
||||||
cut.init({ title: 'myTitle', params: {} });
|
cut.init({ title: 'myTitle', params: {} });
|
||||||
@ -114,7 +114,7 @@ describe('dockviewPanel', () => {
|
|||||||
const model = <IDockviewPanelModel>new panelModelMock();
|
const model = <IDockviewPanelModel>new panelModelMock();
|
||||||
|
|
||||||
const cut = new DockviewPanel('fake-id', accessor, api, group, model, {
|
const cut = new DockviewPanel('fake-id', accessor, api, group, model, {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
});
|
});
|
||||||
|
|
||||||
cut.init({ params: {}, title: 'title' });
|
cut.init({ params: {}, title: 'title' });
|
||||||
@ -148,7 +148,7 @@ describe('dockviewPanel', () => {
|
|||||||
const model = <IDockviewPanelModel>new panelModelMock();
|
const model = <IDockviewPanelModel>new panelModelMock();
|
||||||
|
|
||||||
const cut = new DockviewPanel('fake-id', accessor, api, group, model, {
|
const cut = new DockviewPanel('fake-id', accessor, api, group, model, {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(cut.params).toEqual(undefined);
|
expect(cut.params).toEqual(undefined);
|
||||||
@ -186,7 +186,7 @@ describe('dockviewPanel', () => {
|
|||||||
const model = <IDockviewPanelModel>new panelModelMock();
|
const model = <IDockviewPanelModel>new panelModelMock();
|
||||||
|
|
||||||
const cut = new DockviewPanel('fake-id', accessor, api, group, model, {
|
const cut = new DockviewPanel('fake-id', accessor, api, group, model, {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
});
|
});
|
||||||
|
|
||||||
cut.api.setSize({ height: 123, width: 456 });
|
cut.api.setSize({ height: 123, width: 456 });
|
||||||
@ -219,7 +219,7 @@ describe('dockviewPanel', () => {
|
|||||||
const model = <IDockviewPanelModel>new panelModelMock();
|
const model = <IDockviewPanelModel>new panelModelMock();
|
||||||
|
|
||||||
const cut = new DockviewPanel('fake-id', accessor, api, group, model, {
|
const cut = new DockviewPanel('fake-id', accessor, api, group, model, {
|
||||||
renderer: 'destructive',
|
renderer: 'onlyWhenVisibile',
|
||||||
});
|
});
|
||||||
|
|
||||||
cut.init({ params: { a: '1', b: '2' }, title: 'A title' });
|
cut.init({ params: { a: '1', b: '2' }, title: 'A title' });
|
||||||
|
@ -4,7 +4,7 @@ import { getDomNodePagePosition, toggleClass } from '../../dom';
|
|||||||
import { CompositeDisposable, Disposable, IDisposable } from '../../lifecycle';
|
import { CompositeDisposable, Disposable, IDisposable } from '../../lifecycle';
|
||||||
import { IDockviewPanel } from '../dockviewPanel';
|
import { IDockviewPanel } from '../dockviewPanel';
|
||||||
|
|
||||||
export type DockviewPanelRenderer = 'destructive' | 'gready';
|
export type DockviewPanelRenderer = 'onlyWhenVisibile' | 'always';
|
||||||
|
|
||||||
export interface IRenderable {
|
export interface IRenderable {
|
||||||
readonly element: HTMLElement;
|
readonly element: HTMLElement;
|
||||||
|
@ -124,7 +124,7 @@ export class ContentContainer
|
|||||||
let container: HTMLElement;
|
let container: HTMLElement;
|
||||||
|
|
||||||
switch (panel.api.renderer) {
|
switch (panel.api.renderer) {
|
||||||
case 'destructive':
|
case 'onlyWhenVisibile':
|
||||||
this.accessor.greadyRenderContainer.remove(panel);
|
this.accessor.greadyRenderContainer.remove(panel);
|
||||||
if (isActive) {
|
if (isActive) {
|
||||||
if (this.panel) {
|
if (this.panel) {
|
||||||
@ -135,7 +135,7 @@ export class ContentContainer
|
|||||||
}
|
}
|
||||||
container = this._element;
|
container = this._element;
|
||||||
break;
|
break;
|
||||||
case 'gready':
|
case 'always':
|
||||||
if (
|
if (
|
||||||
panel.view.content.element.parentElement === this._element
|
panel.view.content.element.parentElement === this._element
|
||||||
) {
|
) {
|
||||||
@ -199,14 +199,14 @@ export class ContentContainer
|
|||||||
let container: HTMLElement;
|
let container: HTMLElement;
|
||||||
|
|
||||||
switch (renderer) {
|
switch (renderer) {
|
||||||
case 'gready':
|
case 'always':
|
||||||
container =
|
container =
|
||||||
this.accessor.greadyRenderContainer.setReferenceContentContainer(
|
this.accessor.greadyRenderContainer.setReferenceContentContainer(
|
||||||
panel,
|
panel,
|
||||||
this
|
this
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case 'destructive':
|
case 'onlyWhenVisibile':
|
||||||
this._element.appendChild(this.panel.view.content.element);
|
this._element.appendChild(this.panel.view.content.element);
|
||||||
container = this._element;
|
container = this._element;
|
||||||
break;
|
break;
|
||||||
@ -242,7 +242,7 @@ export class ContentContainer
|
|||||||
|
|
||||||
public closePanel(): void {
|
public closePanel(): void {
|
||||||
if (this.panel) {
|
if (this.panel) {
|
||||||
if (this.accessor.options.defaultRenderer === 'destructive') {
|
if (this.accessor.options.defaultRenderer === 'onlyWhenVisibile') {
|
||||||
this._element.removeChild(this.panel.view.content.element);
|
this._element.removeChild(this.panel.view.content.element);
|
||||||
}
|
}
|
||||||
this.panel = undefined;
|
this.panel = undefined;
|
||||||
|
@ -306,7 +306,7 @@ export class DockviewComponent
|
|||||||
}
|
}
|
||||||
|
|
||||||
get renderer(): DockviewPanelRenderer {
|
get renderer(): DockviewPanelRenderer {
|
||||||
return this.options.defaultRenderer ?? 'destructive';
|
return this.options.defaultRenderer ?? 'onlyWhenVisibile';
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(options: DockviewComponentOptions) {
|
constructor(options: DockviewComponentOptions) {
|
||||||
|
@ -58,9 +58,9 @@ const components = {
|
|||||||
<button
|
<button
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setMode(
|
setMode(
|
||||||
mode === 'destructive'
|
mode === 'onlyWhenVisibile'
|
||||||
? 'gready'
|
? 'always'
|
||||||
: 'destructive'
|
: 'onlyWhenVisibile'
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
@ -55,9 +55,9 @@ const components = {
|
|||||||
<button
|
<button
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setMode(
|
setMode(
|
||||||
mode === 'destructive'
|
mode === 'onlyWhenVisibile'
|
||||||
? 'gready'
|
? 'always'
|
||||||
: 'destructive'
|
: 'onlyWhenVisibile'
|
||||||
);
|
);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
Loading…
Reference in New Issue
Block a user