@@ -23,6 +23,7 @@ window.onunload = function () { };
23
23
var sidebar = document . getElementById ( "sidebar" ) ;
24
24
var sidebarLinks = document . querySelectorAll ( '#sidebar a' ) ;
25
25
var sidebarToggleButton = document . getElementById ( "sidebar-toggle" ) ;
26
+ var sidebarResizeHandle = document . getElementById ( "sidebar-resize-handle" ) ;
26
27
var firstContact = null ;
27
28
28
29
function showSidebar ( ) {
@@ -50,6 +51,11 @@ window.onunload = function () { };
50
51
// Toggle sidebar
51
52
sidebarToggleButton . addEventListener ( 'click' , function sidebarToggle ( ) {
52
53
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
+ }
53
59
showSidebar ( ) ;
54
60
} else if ( body . classList . contains ( "sidebar-visible" ) ) {
55
61
hideSidebar ( ) ;
@@ -62,6 +68,32 @@ window.onunload = function () { };
62
68
}
63
69
} ) ;
64
70
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
+
65
97
document . addEventListener ( 'touchstart' , function ( e ) {
66
98
firstContact = {
67
99
x : e . touches [ 0 ] . clientX ,
0 commit comments