import 'dockview-angular/dist/styles/dockview.css';
import { Component, Input, NgModule, Type } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { DockviewAngularModule } from 'dockview-angular';
@Component({
selector: 'my-panel',
template: `<div style="padding: 16px">{{ api.title }}</div>`,
})
export class MyPanelComponent {
@Input() api: any;
}
@Component({
selector: 'app-root',
template: `
<dv-dockview
[components]="components"
class="dockview-theme-abyss"
(ready)="onReady($event)"
></dv-dockview>
`,
})
export class AppComponent {
components: Record<string, Type<any>> = { default: MyPanelComponent };
onReady(event: any) {
event.api.addPanel({ id: 'panel_1', component: 'default', title: 'Panel 1' });
event.api.addPanel({
id: 'panel_2',
component: 'default',
title: 'Panel 2',
position: { referencePanel: 'panel_1', direction: 'right' },
});
}
}
@NgModule({
declarations: [AppComponent, MyPanelComponent],
imports: [BrowserModule, DockviewAngularModule],
bootstrap: [AppComponent],
})
export class AppModule {}