Skip to content

Commit 2422bfc

Browse files
committed
feat(tweakpane): accept optional container
1 parent fc0a6a7 commit 2422bfc

File tree

1 file changed

+23
-4
lines changed

1 file changed

+23
-4
lines changed

libs/tweakpane/src/lib/pane.ts

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
1-
import { afterNextRender, DestroyRef, Directive, effect, inject, input, isSignal, signal } from '@angular/core';
1+
import {
2+
afterNextRender,
3+
DestroyRef,
4+
Directive,
5+
effect,
6+
ElementRef,
7+
inject,
8+
input,
9+
isSignal,
10+
signal,
11+
} from '@angular/core';
212
import { Pane } from 'tweakpane';
13+
import { PaneConfig } from 'tweakpane/dist/types/pane/pane-config';
314
import { NgtTweakFolder } from './folder';
415
import { NgtTweakTitle } from './title';
516

@@ -13,6 +24,7 @@ export class NgtTweakPane {
1324
left = input<string | number>();
1425
bottom = input<string | number>();
1526
width = input<string | number>('256px');
27+
container = input<HTMLElement | ElementRef<HTMLElement | undefined> | undefined>();
1628

1729
private title = inject(NgtTweakTitle, { host: true });
1830
private folder = inject(NgtTweakFolder, { host: true });
@@ -22,10 +34,17 @@ export class NgtTweakPane {
2234
this.folder.isSelf = false;
2335

2436
afterNextRender(() => {
25-
const pane = new Pane({
37+
const container = this.container();
38+
const paneOptions: PaneConfig = {
2639
title: this.title.title(),
2740
expanded: this.folder.expanded(),
28-
});
41+
};
42+
43+
if (container) {
44+
paneOptions.container = 'nativeElement' in container ? container.nativeElement : container;
45+
}
46+
47+
const pane = new Pane(paneOptions);
2948

3049
this.pane.set(pane);
3150
this.folder.parentFolder.set(pane);
@@ -59,7 +78,7 @@ export class NgtTweakPane {
5978
});
6079
}
6180

62-
private updateStyleEffect(propertyName: Exclude<keyof NgtTweakPane, 'pane' | 'title' | 'expanded'>) {
81+
private updateStyleEffect(propertyName: Exclude<keyof NgtTweakPane, 'pane' | 'title' | 'expanded' | 'container'>) {
6382
const pane = this.pane();
6483
if (!pane) return;
6584

0 commit comments

Comments
 (0)