@@ -23,6 +23,7 @@ window.onunload = function () { };
2323 var sidebar = document . getElementById ( "sidebar" ) ;
2424 var sidebarLinks = document . querySelectorAll ( '#sidebar a' ) ;
2525 var sidebarToggleButton = document . getElementById ( "sidebar-toggle" ) ;
26+ var sidebarResizeHandle = document . getElementById ( "sidebar-resize-handle" ) ;
2627 var firstContact = null ;
2728
2829 function showSidebar ( ) {
@@ -50,6 +51,11 @@ window.onunload = function () { };
5051 // Toggle sidebar
5152 sidebarToggleButton . addEventListener ( 'click' , function sidebarToggle ( ) {
5253 if ( body . classList . contains ( "sidebar-hidden" ) ) {
54+ var current_width = parseInt (
55+ document . documentElement . style . getPropertyValue ( '--sidebar-width' ) , 10 ) ;
56+ if ( current_width < 150 ) {
57+ document . documentElement . style . setProperty ( '--sidebar-width' , '150px' ) ;
58+ }
5359 showSidebar ( ) ;
5460 } else if ( body . classList . contains ( "sidebar-visible" ) ) {
5561 hideSidebar ( ) ;
@@ -62,6 +68,32 @@ window.onunload = function () { };
6268 }
6369 } ) ;
6470
71+ sidebarResizeHandle . addEventListener ( 'mousedown' , initResize , false ) ;
72+
73+ function initResize ( e ) {
74+ window . addEventListener ( 'mousemove' , resize , false ) ;
75+ window . addEventListener ( 'mouseup' , stopResize , false ) ;
76+ body . classList . add ( 'sidebar-resizing' ) ;
77+ }
78+ function resize ( e ) {
79+ var pos = ( e . clientX - sidebar . offsetLeft ) ;
80+ if ( pos < 20 ) {
81+ hideSidebar ( ) ;
82+ } else {
83+ if ( body . classList . contains ( "sidebar-hidden" ) ) {
84+ showSidebar ( ) ;
85+ }
86+ pos = Math . min ( pos , window . innerWidth - 100 ) ;
87+ document . documentElement . style . setProperty ( '--sidebar-width' , pos + 'px' ) ;
88+ }
89+ }
90+ //on mouseup remove windows functions mousemove & mouseup
91+ function stopResize ( e ) {
92+ body . classList . remove ( 'sidebar-resizing' ) ;
93+ window . removeEventListener ( 'mousemove' , resize , false ) ;
94+ window . removeEventListener ( 'mouseup' , stopResize , false ) ;
95+ }
96+
6597 document . addEventListener ( 'touchstart' , function ( e ) {
6698 firstContact = {
6799 x : e . touches [ 0 ] . clientX ,
0 commit comments