@@ -13,11 +13,11 @@ document.addEventListener('DOMContentLoaded', function() {
1313 let highlightUnused = false ;
1414
1515 // DOM Elements
16- const chartContainer = document . getElementById ( 'chart' ) ;
17- const detailPanel = document . getElementById ( 'detail-panel' ) ;
18- const loadingOverlay = document . getElementById ( 'loading-overlay' ) ;
19- const tooltip = document . getElementById ( 'tooltip' ) ;
20- const filterContainer = document . getElementById ( 'filters' ) ;
16+ let chartContainer = document . getElementById ( 'chart' ) ;
17+ let detailPanel = document . getElementById ( 'detail-panel' ) ;
18+ let loadingOverlay = document . getElementById ( 'loading-overlay' ) ;
19+ let tooltip = document . getElementById ( 'tooltip' ) ;
20+ let filterContainer = document . getElementById ( 'filters' ) ;
2121
2222 // Track current visualization state
2323 let unusedElements = new Set ( ) ;
@@ -276,9 +276,10 @@ document.addEventListener('DOMContentLoaded', function() {
276276 . enter ( )
277277 . append ( 'line' )
278278 . attr ( 'class' , 'link' )
279- . attr ( 'data-source' , d => d . source . id || d . source )
280- . attr ( 'data-target' , d => d . target . id || d . target )
281- . attr ( 'data-type' , d => d . type )
279+ . attr ( 'data-id' , ( d , i ) => `link-${ i } ` )
280+ . attr ( 'data-source' , d => typeof d . source === 'object' ? d . source . id : d . source )
281+ . attr ( 'data-target' , d => typeof d . target === 'object' ? d . target . id : d . target )
282+ . attr ( 'data-type' , d => d . type || 'default' )
282283 . style ( 'stroke' , d => getLinkColor ( d ) )
283284 . style ( 'stroke-width' , 1.5 ) ;
284285
@@ -287,15 +288,15 @@ document.addEventListener('DOMContentLoaded', function() {
287288 . data ( graph . nodes )
288289 . enter ( )
289290 . append ( 'g' )
290- . attr ( 'class' , ' node' )
291+ . attr ( 'class' , d => ` node ${ d . used ? 'used' : 'unused' } ` )
291292 . attr ( 'data-id' , d => d . id )
292293 . attr ( 'data-group' , d => d . group )
293- . attr ( 'data-used' , d => d . used )
294- . attr ( 'data-external' , d => d . isexternal )
294+ . attr ( 'data-used' , d => d . used ? 'true' : 'false' )
295+ . attr ( 'data-external' , d => d . isexternal ? 'true' : 'false' )
295296 . call ( d3 . drag ( )
296- . on ( 'start' , dragStarted )
297+ . on ( 'start' , dragstarted )
297298 . on ( 'drag' , dragged )
298- . on ( 'end' , dragEnded ) )
299+ . on ( 'end' , dragended ) )
299300 . on ( 'mouseover' , nodeMouseOver )
300301 . on ( 'mouseout' , nodeMouseOut )
301302 . on ( 'click' , nodeClicked ) ;
@@ -311,12 +312,15 @@ document.addEventListener('DOMContentLoaded', function() {
311312 nodes . append ( 'text' )
312313 . attr ( 'dy' , 4 )
313314 . attr ( 'text-anchor' , 'middle' )
314- . text ( d => d . name )
315+ . text ( d => d . name || d . label || d . id . split ( '.' ) . pop ( ) )
315316 . style ( 'font-size' , '10px' )
316317 . style ( 'fill' , '#fff' )
317318 . style ( 'pointer-events' , 'none' ) ;
318319
319320 console . log ( "Graph drawing complete" ) ;
321+
322+ // Apply initial filters
323+ setTimeout ( applyFilters , 100 ) ;
320324 }
321325
322326 // Function to get node color
@@ -875,10 +879,8 @@ document.addEventListener('DOMContentLoaded', function() {
875879
876880 function dragended ( event , d ) {
877881 if ( ! event . active ) simulation . alphaTarget ( 0 ) ;
878- if ( currentLayout === 'force' ) {
879- d . fx = null ;
880- d . fy = null ;
881- }
882+ d . fx = null ;
883+ d . fy = null ;
882884 }
883885
884886 // Hide loading overlay
0 commit comments