File tree Expand file tree Collapse file tree 1 file changed +19
-6
lines changed
Expand file tree Collapse file tree 1 file changed +19
-6
lines changed Original file line number Diff line number Diff line change @@ -15,17 +15,28 @@ let root: INode | undefined;
1515let style : HTMLStyleElement ;
1616let active :
1717 | {
18- node : INode ;
19- el : Element ;
20- }
18+ node : INode ;
19+ el : Element ;
20+ }
2121 | undefined ;
22+ const activeNodeOptions : {
23+ placement ?: 'center' | 'visible' ;
24+ } = { } ;
2225
2326const handlers = {
24- async setData ( data : { root ?: INode ; jsonOptions ?: IMarkmapJSONOptions } ) {
27+ async setData ( data : {
28+ root ?: INode ;
29+ jsonOptions ?: IMarkmapJSONOptions & {
30+ activeNode ?: {
31+ placement ?: 'center' | 'visible' ;
32+ } ;
33+ } ;
34+ } ) {
2535 await mm . setData ( ( root = data . root ) , {
2636 ...defaultOptions ,
2737 ...deriveOptions ( data . jsonOptions ) ,
2838 } ) ;
39+ activeNodeOptions . placement = data . jsonOptions ?. activeNode ?. placement ;
2940 if ( firstTime ) {
3041 mm . fit ( ) ;
3142 firstTime = false ;
@@ -170,8 +181,10 @@ function findActiveNode({
170181 return best && { node : best , needRerender } ;
171182}
172183
173- function highlightNode ( node : INode ) {
174- mm . ensureView ( node , {
184+ async function highlightNode ( node : INode ) {
185+ await mm [
186+ activeNodeOptions . placement === 'center' ? 'centerNode' : 'ensureVisible'
187+ ] ( node , {
175188 bottom : 80 ,
176189 } ) ;
177190 const g = mm . findElement ( node ) ?. g ;
You can’t perform that action at this time.
0 commit comments