@@ -5,42 +5,89 @@ function attachAllListeners() {
5
5
observer . disconnect ( )
6
6
}
7
7
8
- var elements = document . getElementsByClassName ( "documentableElement" )
8
+ var scrollPosition = sessionStorage . getItem ( "scroll_value" ) ;
9
+ console . log ( scrollPosition ) ;
10
+ if ( scrollPosition ) {
11
+ var sideMenu = document . querySelector ( ".side-menu" ) ;
12
+ sideMenu . scrollTo ( 0 , scrollPosition ) ;
13
+ }
14
+
15
+ var elements = document . getElementsByClassName ( "documentableElement" ) ;
9
16
if ( elements ) {
10
17
for ( i = 0 ; i < elements . length ; i ++ ) {
11
- var expanderChild = elements [ i ] . querySelector ( ".documentableElement-expander" )
12
- if ( elements [ i ] . querySelector ( ".show-content" ) !== null && expanderChild !== null ) {
18
+ var expanderChild = elements [ i ] . querySelector (
19
+ ".documentableElement-expander" ,
20
+ ) ;
21
+ if (
22
+ elements [ i ] . querySelector ( ".show-content" ) !== null &&
23
+ expanderChild !== null
24
+ ) {
13
25
expanderChild . onclick = function ( e ) {
14
26
if ( ! $ ( e . target ) . is ( "a" ) && e . fromSnippet !== true ) {
15
- this . parentElement . classList . toggle ( "expand" )
16
- this . querySelector ( ".show-content" ) . classList . toggle ( "expand" )
27
+ this . parentElement . classList . toggle ( "expand" ) ;
28
+ this . querySelector ( ".show-content" ) . classList . toggle ( "expand" ) ;
17
29
}
18
- }
30
+ } ;
19
31
}
20
32
}
21
33
}
22
34
23
- var documentableLists = document . getElementsByClassName ( "documentableList" )
35
+ var documentableLists = document . getElementsByClassName ( "documentableList" ) ;
24
36
if ( documentableLists ) {
25
37
for ( i = 0 ; i < documentableLists . length ; i ++ ) {
26
38
documentableLists [ i ] . children [ 0 ] . onclick = function ( e ) {
27
39
this . classList . toggle ( "expand" ) ;
28
40
this . parentElement . classList . toggle ( "expand" ) ;
29
- }
41
+ } ;
30
42
}
31
43
}
32
44
33
- var memberLists = document . getElementsByClassName ( "tab" )
45
+ var memberLists = document . getElementsByClassName ( "tab" ) ;
34
46
if ( memberLists ) {
35
47
for ( i = 0 ; i < memberLists . length ; i ++ ) {
36
48
if ( $ ( memberLists [ i ] . children [ 0 ] ) . is ( "button" ) ) {
37
49
memberLists [ i ] . children [ 0 ] . onclick = function ( e ) {
38
50
this . classList . toggle ( "expand" ) ;
39
51
this . parentElement . classList . toggle ( "expand" ) ;
40
- }
52
+ } ;
41
53
}
42
54
}
43
55
}
56
+ $ ( ".side-menu span" ) . on ( "click" , function ( ) {
57
+ $ ( this ) . parent ( ) . toggleClass ( "expanded" ) ;
58
+ } ) ;
59
+ document . querySelectorAll ( 'a' ) . forEach ( el => {
60
+ const href = el . href
61
+ if ( href === "" ) { return }
62
+ const url = new URL ( href )
63
+ el . addEventListener ( 'click' , e => {
64
+ if ( url . href . replace ( "#" , "" ) === window . location . href . replace ( "#" , "" ) ) { return }
65
+ if ( url . origin !== window . location . origin ) { return }
66
+ if ( e . metaKey || e . ctrlKey || e . shiftKey || e . altKey || e . button !== 0 ) { return }
67
+ e . preventDefault ( )
68
+ e . stopPropagation ( )
69
+ $ . get ( href , function ( data ) {
70
+ const html = $ . parseHTML ( data )
71
+ const title = html . find ( node => node . nodeName === "TITLE" ) . innerText
72
+ const bodyDiv = html . find ( node => node . nodeName === "DIV" )
73
+ const { children } = document . body . firstChild
74
+ if ( window . history . state === null ) {
75
+ window . history . replaceState ( {
76
+ leftColumn : children [ 3 ] . innerHTML ,
77
+ mainDiv : children [ 6 ] . innerHTML ,
78
+ title : document . title ,
79
+ } , '' )
80
+ }
81
+ document . title = title
82
+ const leftColumn = bodyDiv . children [ 3 ] . innerHTML
83
+ const mainDiv = bodyDiv . children [ 6 ] . innerHTML
84
+ window . history . pushState ( { leftColumn, mainDiv, title } , '' , href )
85
+ children [ 3 ] . innerHTML = leftColumn
86
+ children [ 6 ] . innerHTML = mainDiv
87
+ attachAllListeners ( )
88
+ } )
89
+ } )
90
+ } )
44
91
45
92
document . querySelectorAll ( 'a' ) . forEach ( el => {
46
93
const href = el . href
@@ -75,10 +122,10 @@ function attachAllListeners() {
75
122
} )
76
123
} )
77
124
78
- $ ( ".ar" ) . on ( ' click' , function ( e ) {
79
- $ ( this ) . parent ( ) . parent ( ) . toggleClass ( "expanded" )
80
- $ ( this ) . toggleClass ( "expanded" )
81
- e . stopPropagation ( )
125
+ $ ( ".ar" ) . on ( " click" , function ( e ) {
126
+ $ ( this ) . parent ( ) . parent ( ) . toggleClass ( "expanded" ) ;
127
+ $ ( this ) . toggleClass ( "expanded" ) ;
128
+ e . stopPropagation ( ) ;
82
129
} ) ;
83
130
84
131
document . querySelectorAll ( ".nh" ) . forEach ( el => el . addEventListener ( 'click' , ( ) => {
@@ -90,18 +137,38 @@ function attachAllListeners() {
90
137
}
91
138
} ) )
92
139
93
- document . querySelectorAll ( ".supertypes" ) . forEach ( el => el . firstChild . addEventListener ( 'click' , ( ) => {
94
- el . classList . toggle ( "collapsed" ) ;
95
- el . firstChild . classList . toggle ( "expand" ) ;
96
- } ) )
97
-
98
-
99
- document . querySelectorAll ( ".subtypes" ) . forEach ( el => el . firstChild . addEventListener ( 'click' , ( ) => {
100
- el . classList . toggle ( "collapsed" ) ;
101
- el . firstChild . classList . toggle ( "expand" ) ;
102
- } ) )
103
-
104
- observer = new IntersectionObserver ( entries => {
140
+ document . querySelectorAll ( ".supertypes" ) . forEach ( ( el ) =>
141
+ el . firstChild . addEventListener ( "click" , ( ) => {
142
+ el . classList . toggle ( "collapsed" ) ;
143
+ el . firstChild . classList . toggle ( "expand" ) ;
144
+ } ) ,
145
+ ) ;
146
+
147
+ document . querySelectorAll ( ".subtypes" ) . forEach ( ( el ) =>
148
+ el . firstChild . addEventListener ( "click" , ( ) => {
149
+ el . classList . toggle ( "collapsed" ) ;
150
+ el . firstChild . classList . toggle ( "expand" ) ;
151
+ } ) ,
152
+ ) ;
153
+
154
+ document . querySelectorAll ( ".nh" ) . forEach ( ( el ) =>
155
+ el . addEventListener ( "click" , ( ) => {
156
+ el . lastChild . click ( ) ;
157
+ el . first . addClass ( "expanded" ) ;
158
+ el . parent . addClass ( "expanded" ) ;
159
+ } ) ,
160
+ ) ;
161
+
162
+ document . querySelectorAll ( ".ni" ) . forEach ( ( link ) =>
163
+ link . addEventListener ( "mouseenter" , ( e ) => {
164
+ sessionStorage . setItem (
165
+ "scroll_value" ,
166
+ link . offsetTop - window . innerHeight / 2 ,
167
+ ) ;
168
+ } ) ,
169
+ ) ;
170
+
171
+ const observer = new IntersectionObserver ( entries => {
105
172
entries . forEach ( entry => {
106
173
const id = entry . target . getAttribute ( 'id' ) ;
107
174
if ( entry . intersectionRatio > 0 ) {
0 commit comments